Redirects mit HAProxy

HAProxy ist mein persönliches Schweizer Taschenmesser, wenn es um HTTP-Routing geht. Wenn man ganze Verzeichnisse umleiten möchte, dann ist das mitunter etwas kompliziert, gerade wenn man eine alte Version benutzen muss. Im folgenden gibt es zwei Beispiele, wie man alle Requests, welche mit /foo/ beginnen zu /bar/ umleitet. HAProxy 1.5 In HAProxy 1.5 funktioniert dieser Redirect nur mit einem kleinen Hack: Man kopiert den Inhalt der internen Variable url1 in einen eigenen Header. [weiter lesen...]

Sicherheitslücke in CDNs

Auf golem.de habe ich heute den Beitrag Caches von CDN-Netzwerken führen zu Datenleck gelesen. Ich finde diesen Beitrag oberflächlich und falsch. Das CDN-Anbieter, wie Akamei die Cache-Header ignorieren ist ein Feature. Wenn man ein CDN einsetzt, dann möchte man in der Regel keinen transparenten Cache haben. Ein transparenter Cache muss die Cache-Header beachten. Beipiele Die folgenden Beispiele sind etwas an konstruiert, aber ich kenne alle aufgeführten Beispiele (und noch mehr) aus meiner beruflichen Praxis. [weiter lesen...]

Kernel Bauen

Auf meinen Arbeitslaptop und auf meinen privaten Desktop nutze ich Ubuntu 16.04. Da die Ubuntu-Kernel etwas staubig sind, habe ich angefangen selbst einen aktuellen Kernel (4.12.3) zu bauen. Abhänigkeiten Zum bauen des Kernels unter Ubuntu benötigt man build-essential und libssl-dev. Mit ccache kann man das bauen beschleunigen1 aus diesem Grund nutze ich es. Auf kernel.org findet man die neusten Kernel als tarball zum download. Kernel bauen Wenn man die alte Konfiguration beibehalten möchte, dann muss man vorher die laufende Konfiguration in das aktuelle Verzeichnis vom entpackten Kernel kopieren: [weiter lesen...]

SSH Authentifizierung

Man kann sich bei SSH mit Nutzername und Passwort authentifizieren oder man nutzt ein Public Key-Verfahren, statt Passwort. In den meisten Fällen ist die Authentifizierung mit einem Schlüssel zu bevorzugen. Wenn man sich oft anmeldet, dann kann es nervig sein jedes mal das Passwort einzugeben. Ein entsperrter Schlüssel vereinfacht die Arbeit erheblich. Außerdem tuen sich viele Leute schwer ein starken Passwort zu merken. Authentifizierung mit Schlüssel Als erstes muss man einen Schlüssel erzeugen. [weiter lesen...]

Blacklisten mit Shorewall

Was ist Shorewall? Man kann mit shorewall einfach netfilter, aus dem Linux-Kernel, nutzen. Shorewall an sich keine Firewall. Es werden iptables-Regeln generiert. Backlisten von Spamhaus und DShield nutzen Spamhaus und DShield veröffentlichen Blacklisten mit IP-Blöcken, welche von Spammern und Cyberkriminellen verwendet werden. Mit dem folgenden Skript kann man sie sehr einfach in shorewall als statische Blacklist nutzen. #!/bin/sh cat << EOF > /tmp/blrules #ACTION SOURCE DEST PROTO DEST # PORTS(S) EOF wget -q -O - http://feeds. [weiter lesen...]

SSH Angriffe abwehren

Ich habe geschrieben, wie ich meinen SSH-Server gehärtet habe. Nun habe ich mir das auth.log genauer angesehen. Dabei habe ich festgestellt, dass mein gehärteter SSH Server alle Angriffe im Keim erstickt: fatal: Unable to negotiate with 116.31.116.41 port 16229: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 [preauth] Das ist Angreifer “stirbt” schon beim Schlüsselaustausch mit dem Server und kann somit keinen Login-Versuch unternehmen. Wenn man aktiv sein SSH-Zugang schützen möchte, dann sollte man auch über fail2ban nachdenken. [weiter lesen...]

ppm zu jpeg Bilder konvertieren

Heute musste ich viele Bilder vom ppm in das jpeg-Format umwandeln. Mit dem folgenden kleinen Bash-Skript ging das ganz schnell: for pic in *.ppm do pnmtojpeg "${pic}" > "${pic/%ppm/jpg}" done pnmtojpeg befindet sich bei Debian und Ubuntu im Paket netpbm.

SSH absichern

SSH gilt als sichere Möglichkeit, um sich auf einen entfernten Server zu verbinden. Man sollte aber wissen, dass bei es SSH, wie bei HTTPS, verschiedene Algorithmen für die Verschlüsselung gibt. Einige davon gelten sicherer als andere. Ich bin in Sachen Sicherheit etwas vorsichtiger, aus diesem Grund härte ich auch den SSH-Server. Mit Hilfe von nmap kann man schnell sehen welche Algorithmen erlaubt sind: nmap --script ssh2-enum-algos -p 22 127.0.0.1 Starting Nmap 7. [weiter lesen...]

debian-sys-maint MySQL user wiederherstellen

Wenn man MySQL unter Ubuntu oder Debian per Hand komplett neu installiert, dann muss man den User debian-sys-maint anlegen, sonst gibt es Probleme den orginalen Start-Skripen und bei Updates. Zuerst muss man das Passwort auslesen bzw. neu setzen. Man findet es in der Datei /etc/mysql/debian.cnf. # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GEHEIMES_PASSWORT socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GEHEIMES_PASSWORT socket = /var/run/mysqld/mysqld. [weiter lesen...]

Mysql installieren

Ich wollte auf meinen neuen Server MySQL installieren und die Verzeichnisstruktur ändern. Das ganze ist normal in 5 Minuten erledigt. Aber ich habe nicht daran gedacht, dass bei Ubuntu 16.04 für MySQL aktiv ist. Apparmor ist ein Sicherheitsframework, welches Netzwerk- und Dateizugriffe für Prozesse bzw. Anwendungen überwacht. So wurde aktiv verhindert, dass MySQL seine Dateien an die neue Stelle schreiben konnte. Zum Schluss bin ich mit dmesg -T Apparmor auf die Schliche gekommen. [weiter lesen...]