Weak SSH/SSL protocols and ciphers & hardening

Sammlung aller SSH/SSL relevanten und meist genutzten Dienste und deren optimale SSH/SSL Konfiguration. Apache / Nginx apache 2.4.18 | modern profile | OpenSSL 1.0.1e Oldest compatible clients: Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8 <VirtualHost *:443> … SSLEngine on SSLCertificateFile /path/to/signed_certificate_followed_by_intermediate_certs SSLCertificateKeyFile /path/to/private/key … Weiterlesen

Patch für automysqlbackup: mysqldump: [Warning] Using a password on the command line interface can be insecure.

In der aktuellen Version von automysqlbackup kommt es auf Ubuntu 16.04 LTS wieder zu der Fehlermeldung: mysqldump: [Warning] Using a password on the command line interface can be insecure. Es gab vor einiger Zeit bereits einen Patch für das Problem allerdings hat sich der Code geändert dementsprechend waren anpassungen nötig. Orginalpatch zu finden unter: http://wiki.nkosi.org/Automysqlbackup / https://www.redeo.nl/2013/11/automysqlbackup-warning-using-password-command-line-interface-can-insecure/ Hier … Weiterlesen

Python: Snippet – Python Code aus Textdateien ausführen/importieren

Check_MK speichert alle Daten in einfachen Dateien direkt als ausführbaren Python Code. Um die abgelegten Dictionarys etc. in seinen eigenen Skripten weiterverwenden zu können kann man sich die mit eval() oder exec() laden. eval() kann verwendet werden um z.B.  ein Dictionary in eine Variable zu laden, exec() kann auch ganze Funktionen etc. laden. Beispiel eval(): dict.txt … Weiterlesen

Python: Snippet – Speichern und weiterverwenden von Objekten

Mit dem Modul pickle (deutsch pökeln, konservieren) bietet Funktionen für das Speichern von Objekten. Die gespeicherten Objekte können wiederhergestellt werden. Die Daten werden als Byte Stream gespeichert. Folgende Datentypen werden unterstützt: int, long, complex, float unicode, str list, tuple, dict uvm. siehe Dokumentation (https://docs.python.org/2/library/pickle.html / https://docs.python.org/3/library/pickle.html ) Hier ein kleines Beispiel: dict_to_file.py #!/usr/bin/env python import pickle t = … Weiterlesen

debian-sys-maint Zugangsdaten verwenden für MySQL Login in der Bash

Für Wartungszwecke gibt es einen User „debian-sys-maint“ der auf jedem Debian verwandten System automatisch angelegt wird. Die Zugangsdaten sind unter /etc/mysql/debain.cnf zu finden. Der User hat die gleichen Rechte wie der DB root User. Da die Zugangsdaten eh schon auf dem System sind kann man sich ein kleines Helferlein bauen welches den User und das … Weiterlesen

Python: Snippet – Suchen und ersetzen in Dateien

Der Titel des Posts sagt eigentlich schon alles 😉 Python 3: #!/usr/bin/env python3 import fileinput import re file = fileinput.FileInput(„/etc/ssh/sshd_config“, inplace=True, backup=“.bak“) for line in file: line = re.sub(r“.*Banner.*“,“Banner /etc/issue.net“, line) print(line, end=“) file.close() Python 2: #!/usr/bin/env python import fileinput import re import sys file = fileinput.FileInput(„/etc/ssh/sshd_config“, inplace=True, backup=“.bak“) for line in file: line = … Weiterlesen

Python: Snippet – Threading mit Result

Code-Snippet: #!/usr/bin/env python import socket from multiprocessing.pool import ThreadPool import pprint jobs = („www.heise.de“,“www.google.com“,“www.golem.de“,“www.google.de“,“www.lanbugs.de“,“www.microsoft.com“) def worker(domain): print socket.gethostbyname(domain) return socket.gethostbyname(domain) pool = ThreadPool(processes=3) result_buffer = {} for d in jobs: print „start “ + d async_result = pool.apply_async(worker, args=(d,)) result_buffer[d]=async_result.get() pprint.pprint(result_buffer) Ausgabe: >python thread_with_result.py start www.heise.de 193.99.144.85 start www.google.com 172.217.20.68 start www.golem.de 109.68.230.138 start www.google.de … Weiterlesen

Unattended Installation von APT Paketen (Debian/Ubuntu)

Um Pakete ohne manuelle Eingaben zu Installieren müssen die Antworten für die Assistenten bereits vorliegen. Als Beispiel eine unattended Installation von Postfix auf einem Ubuntu 16.04 LTS System. Um die möglichen Parameter zu erfahren verwendet man das „debconf-show“ Tool, Postfix muss auf dem Testsystem bereits installiert sein. max@cmkdevel:/opt$ sudo debconf-show postfix postfix/procmail: false postfix/chattr: false … Weiterlesen

TMUX die Screen Alternative

TMUX ist eine nette Alternative zu Screen, es unterstützt per Default das Teilen eines Fensters horizontal oder/und vertikal. Installation von TMUX #Für Ubuntu / Debian: apt install tmux #Für Fedora / RedHat / CentOS: yum install tmux Tastenkürzel (Hotkeys) per SSH direkt in tmux Sitzung starten Praktisches Feature wenn man seine Sitzung nicht verlieren möchte … Weiterlesen

Checkpoint: ClusterXL critical required interfaces in bond (LACP) configuration

Wenn man auf Checkpoint ClusterXL Gateways Bondings baut muss man aufpassen das man den „critical required interfaces“ Parameter unter Umständen anpassen muss, besonders wenn man mehr als 2 Interfaces hat. Das Standardverhalten von Checkpoint ist das bei n Interfaces bei n-1 ClusterXL davon ausgeht das der Link tot ist und ein HA Failover eingeleitet wird. … Weiterlesen

Check_MK: Inventory erweitern mit SNMP Daten

Check_MK hat seit Version 1.2.5i1 das Feature Inventory an Board. Per Default werden von Systemen CPU, Memory, Harddisks, Softwarepakete und vieles mehr eingesammelt. Die Anleitung dient dazu das Inventory zu erweitern und eigene Informationen per SNMP einzusammeln und per View durchsuchbar zu machen. Ich habe mittlerweile mehrere eigene Ergänzungen gemacht, darunter CDP Neighbors, Dot1X Authentications, … Weiterlesen

Python: Oracle DB Modul für Python für CentOS6

Quelle: https://gist.github.com/hangtwenty/5547377 #!/bin/bash # INSTALL ORACLE INSTANT CLIENT # ################################# # NOTE: Oracle requires at least 1176 MB of swap (or something around there). # If you are using CentOS in a VMWare VM, there’s a good chance that you don’t have enough by default. # If this describes you and you need to add more … Weiterlesen

Check_MK: Werte simulieren in einem SNMPwalk

Wer in Check_MK mittels gespeicherter SNMP Walks Checks entwickelt möchte unter umständen auch gerne sich ändernde Werte haben und keine statischen aus dem Dump. Check_MK hat 3 eingebaute Funktionen um steigende Counter etc. zu simulieren. Ausschnitt aus dem Check_MK Code lib/python/cmk_base/agent_simulator.py (GPLv2): def agentsim_uptime(rate = 1.0, period = None): # period = sinus wave if period … Weiterlesen

Python: Snippet IPv4 address validator

Quelle: https://github.com/certtools/intelmq/issues/756    /   https://github.com/certtools/intelmq def is_valid_ip(ip): m = re.match(r“^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$“, ip) return bool(m) and all(map(lambda n: 0 <= int(n) <= 255, m.groups())) Test: >>> is_valid_ip(„1.2.3.4“) True >>> is_valid_ip(„255.255.255.2555“) False  

Python: Snippet Argumente für Command Line Tools mit getopt oder argparse

Mein persönlicher Favorit ist argparse, der Vollständigkeit halber aber beide Lösungen. getopt und argpase sind beide bei Python dabei und müssen nicht nachinstalliert werden. GETOPT Ansatz: #!/usr/bin/env python import getopt import sys def usage(): print „test1.py – A test script.\n“ \ “ -p, –print Return a string \n“ \ “ -h, –help Help“ def main(): … Weiterlesen

Python: Snippet Multiprocessing

Wenn es möglich ist Jobs zu parallelisieren kann man Multiprocessing unter Python verwenden. #!/usr/bin/env python import os from multiprocessing import Pool def worker(job): x, y = job result = x ** y if hasattr(os, ‚getppid‘): print „parent process pid:“, os.getppid() print „process pid:“, os.getpid() print „result is: „, result print „—“ if __name__ == ‚__main__‘: … Weiterlesen

Python: Snippet – In einer Datei suchen und Zeilennummern zurückgeben

test.txt in der Gesucht wird nach foobar: wer w erw erwer foobar sfsdfhsdkjfhkjsdf sdf sdf sdf sdf sdf sdflskdjflsdjflksjflksjf sdfkjsdfjkhskjhffoobardjskfhskdjhfkjsdhfkjshdf sflksdjfjklsdfjs dfs dfs df sdf sdf dsf Testscript zum Suchen: #!/usr/bin/env python filename = ‚test.txt‘ search = ‚foobar‘ with open(filename) as f: for num, line in enumerate(f, 1): if search in line: print ‚%s – … Weiterlesen

Check_MK: Cisco MLS QoS Check

Cisco MLS QoS Check ist ein Check_MK kompatibler Check zum Überwachen der der Hardware Queues auf Cisco Switches. Per Default werden keine Queues / Thresholds überwacht, diese müssen durch eine WATO Rule definiert werden. Für jedes Interfaces wird ein Service angelegt, mehrere Queues auf einem Interface werden in einem Service dargestellt. Die Queues werden einzeln … Weiterlesen

Check_MK: Livestatus Schnittstelle

Check_MK stellt alle Informationen per Livestatus Schnittstelle bereit. So gut wie alles was man auf der Webseite des Monitorings sehen kann kommt aus Livestatus. Der Sprachsyntax für Abfragen ist LQL -> Livestatus Query Language. Per Default ist die Livestatus Schnittstelle nur auf dem Host selbst über einen Socket abrufbar. Es gibt aber die Möglichkeit per … Weiterlesen