Poodle Angriff – SSLv3 im Apache deaktivieren

Vor der kürzlich aufgetauchten „Poodle Attacke“ kann man sich relativ einfach schützen. Denn dieser Angriff auf die Internet-Verschlüsselung kommt über die veraltete Protokollversion SSLv3.

Um den Apache gegen Poodle fit zu machen, muss die SSL Konfiguration verändert werden. Im Beispiel in der Site default-ssl.

$ sudo nano /etc/apache2/sites-available/default-ssl

Die folgende Zeile hinzufügen bzw. auf folgendes ändern.

SSLProtocol All -SSLv2 -SSLv3

Im Anschluß den Server neu starten.

$ sudo service apache2 restart

Testen kann man das Ergebnis auf der Seite von Qualys SSL Labs

Server Signatur des Apache Webserver deaktivieren

Bei einer unveränderten Standardinstallation des Apache2 Webserver wird bei der Ausgabe einer Apache Fehlerseite immer auch eine Signatur angezeigt. Die in der Signatur enthaltenen Informationen können einem potentiellen Angreifer nützliche Informationen zur eingesetzten Webserver Version und dem OS preisgeben.
403 Fehlerseite mit Signatur
Diese Informationen sollte möglichst auch deaktiviert werden. Hierzu muss die Datei apache2.conf bearbeitet werden.

$ sudo nano /etc/apache2/apache2.conf

Folgende Werte hinzufügen bzw. ändern:

ServerSignature Off
ServerTokens Prod

Im Anschluss den Server neu starten, damit die Änderungen aktiv werden.

$ sudo service apache restart

Jetzt sollte auf den Fehlerseiten des Apache keine Signatur mehr angezeigt werden.
403 Fehlerseite ohne Signatur

Weitere Informationen zu den Parametern:
Informationen zur ServerSignature.
Informationen zur ServerTokens.

pcregrep gegen grep

Um mit reguläre Ausdrücken auf der Linux-Konsole zu suchen, verwendete ich meist das Programm grep. Zufällig bin ich jetzt auf pcregrep gestoßen. Das kleine Tool befindet sich in den Paketquellen von Ubuntu und kann wie folgt installiert werden.

$ sudo apt-get install pcregrep

Im direkten Vergleich zeigt sich, das pcregrep deutlich schneller bei der Verarbeitung von Perl Kompatiblen Ausdrücken ist als grep -E.

$ time grep -o -E ‚^[0-9.]+\s‘ access.log > /dev/null
real 0m1.526s
user 0m1.508s
sys 0m0.012s

im Vergleich zu ….

$ time pcregrep -o ‚^[0-9.]+(?=\s)‘ access.log > /dev/null
real 0m0.036s
user 0m0.032s
sys 0m0.000s

Die Grundlage des Vergleichs ist die Suche nach IP Adressen in einer ca. 7 MB großen access.log Datei eines Apache. Wenn man das Ergebnis mal hochrechnet auf eine GB große Datei, macht sich der Unterschied schon ganz schön bemerkbar.

Weitere Informationen zum Thema:
http://manpages.ubuntu.com/manpages/precise/man1/pcregrep.1.html
http://manpages.ubuntu.com/manpages/precise/man1/grep.1.html

Inhalt mehrerer Dateien in einer Datei Zusammenführen

Heute mal ein kleiner Schnipsel der sicherlich für den ein oder anderen hilfreich sein kann. Es geht um das Zusammenführen des Inhalts von zwei oder mehr Dateien. Hierfür kann z.B. der Befehl cat verwendet werden.

$ cat datei1.txt datei2.txt > datei12.txt

Selbstverständlich lässt sich der Befehl auch prima mit einem find oder ls kombinieren. Damit lassen sich dann auch ganze Order oder nur bestimmte Dateien in einem Verzeichnis zusammenführen.