Loadbalancer und Webserver härten

Im Artikel Cracking the Lens: Targeting HTTP’s Hidden Attack-Surface wird unter anderem gezeigt, welche Auswirkungen nicht valider Host-Header auf die eigene Infrastruktur haben können. Man kann sich vor derartigen Angriffen relativ leicht schützen. Als erstes muss man entscheiden, ob man pfad- oder hostbasiert Routingentscheidungen trifft. Man sollte pro Loadbalancer/Reverseproxy/Webserver nur ein Unterscheidungsmerkmal nutzen. Wenn man beides zulässt, dann muss festlegen und auch sicherstellen, dass z.B. immer zuerst der Pfad /. [weiter lesen...]

Let's Encrypt mit ECC

Wenn man nichts angibt, dann generiert der Let’s Encrypt-Client einen RSA Schüssel, welcher von Let’s Encrypt signiert wird. Die RSA Schlüssel sind in der Regel 2048 Bit lang. Man kann auch längere Schlüssel generieren, diese erhöhen die Sicherheit. Es ist auch möglich ECC für Zertifikate zu nutzen. Der offensichtlichtlichste Vorteil ist, dass ECC Schlüssel viel kürzer als RSA Schlüssel sind - bei einem gleichwertigen Sicherheitsnivieau. Auf leistungsschwachen Geräten ist ECC, in meinen Augen, auch schneller als RSA. [weiter lesen...]

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...]