Weitere Absicherung des Servers mit mod_security
Posted: Wed 27. Apr 2016, 11:00
modsecurity schützt den Apache, ist einem IPS ähnlich und kann einen entdeckten Angriff abwehren (z.B. SQL Injection).
Hier ein Tutorial, um den Webserver mit Keyhelp und Ubuntu 14.04. zusätzlich abzusichern. Anwendung - wie immer - auf eigene Gefahr.
Bevor ein Produktivsystem aufgerüstet wird, wird der Test in einer Testumgebung empfohlen.
1.) Vorbereitung: mod_security arbeitet mit Regeln, so genannte Rules. Diese kann man sich qualvoll selbst erarbeiten oder man nutzt
fertige Regeln. Diese gibt es z.B. von Atomiccorp (kostenpflichtig), OWASP (kostenfrei) oder Comodo (kostenfrei). Ich habe mich für
die Comodos entschieden, da OWASP sehr hart regelt und selbst einfache Webseiten nicht mehr aufrufbar waren. Zudem werden auch schon
Regeln für bekannte Webanwendungen (Wordpress etc.) mitgeliefert.
Hier bitte kostenfrei registrieren https://modsecurity.comodo.com/ und im Anschluß bitte hier https://waf.comodo.com/ die Regeln als Komplettdownload in der neuesten Version downloaden. Diese werden bald benötigt.
2.) Login via Putty (o.a.)
3.) modsecurity installieren, Kommando eingeben und ausführen
Anschließend sollte modsecurity aktiviert werden und der Apache neu starten -> weiter mit 4.). Falls nicht, gehts hier weiter...
3a) modsecurity aktivieren
3b) Apache neu starten mit
4.) Zur Sicherheit (sollte eiegentlich schon seit der Keyhelp-Installation aktiv sein) bitte mod_headers aktivieren
5.) Jetzt kann geprüft werden, ob mod_security läuft: , das Modul sollte in der Liste auftauchen
6.) Jetzt befindet sich modsecurity im Erkennungsmodus, ohne das aktiv eingegriffen wird. Damit geht es jetzt weiter...
7.) Wir kopieren die Konfiguration, da in Kürze Änderungen vorgenommen werden:
8.) Jetzt nutzen wir den midnight commander (ok, es geht auch per Befehlszeile) und starten diesen mit , suchen uns anschließend im linken Fenster die Datei modsecurity.conf - diese befindet sich in /etc/modsecurity/ . Und auf der rechten Seite werden die bereits mitinstallierten Regeln gesucht - zu finden unter: /usr/share/modsecurity-crs/
9.) Nun wird IM Verzeichnis /usr/share/modsecurity-crs/ ein neues Verzeichnis erstellt: Also Taste F7 - und bennen dieses mit "comodo_rules", allerdings ohne die Anführungszeichen.
10.) Anschließend ladet ihr die Comodo-Regeln aus 1.) (vorher die Datei bitte entpacken) in das neu erstellte Verzeichnis. Ob ihr dafür FileZilla,
Totalcommander, Win SCP oder was auch immer nutzt, bleibt euch überlassen. Jetzt sollten sich alle Comodo-Regeln im Verzeichnis comodo_rules befinden.
11.) Weiter geht es mit der Bearbeitung der Datei modsecurity.conf (Taste F4). Beim ersten Aufruf wird abgefragt, mit welchem Editor gearbeitet werden soll, da wir bereits nano haben, nutzen wir diesen auch.
12.) Die Zeile (der Erkennungsmodus) wird nun angeschaltet (ersetzt ) mit
13.) Unter die Zeile "SecRuleEngine On" fügt ihr bitte folgende 4 Zeilen ein:
Dieses sind die Regeln, aktiv wären jetzt nur die Comodo-Rules, der Rest ist mit # inaktiv. Hier ist testen angesagt, mit den Comodo-Rules ist aber schon Schutz vorhanden. Speichern mit Alt+X, Yes, Enter.
14.) Den Apachen neu starten mit
Fertig. Bei Problemen bitte Regeln nachbearbeiten, aus- oder einkommentieren mit # in der modsecurity.conf, notfalls wieder SecRuleEngine auf DetectionOnly setzen. Geloggt wird die Arbeit von modsecurity in /var/log/apache2/modsec_audit.log ,die Datei gibt klare Aufschlüsse darüber, welche Regel angeschlagen hat. Das ist wichtig für die Suche nach Falsch-Positiven Abweisungen (Sperren), also die nicht geschehen sollten.
Abschließend nocht der Livetest: hier bitte auf http oder https achten, der Link zu eurer Keyhelp Oberfläche. https://meinedomain.de/index.php?SELECT ... ysql.users ist eine simulierte SQL Gefahr, dieser Befehl sollte nicht ausführbar sein. Anschließend sollte sich im Logfile (also in /var/log/apache2/modsec_audit.log) ein Eintrag befinden.
Hier ein Tutorial, um den Webserver mit Keyhelp und Ubuntu 14.04. zusätzlich abzusichern. Anwendung - wie immer - auf eigene Gefahr.
Bevor ein Produktivsystem aufgerüstet wird, wird der Test in einer Testumgebung empfohlen.
1.) Vorbereitung: mod_security arbeitet mit Regeln, so genannte Rules. Diese kann man sich qualvoll selbst erarbeiten oder man nutzt
fertige Regeln. Diese gibt es z.B. von Atomiccorp (kostenpflichtig), OWASP (kostenfrei) oder Comodo (kostenfrei). Ich habe mich für
die Comodos entschieden, da OWASP sehr hart regelt und selbst einfache Webseiten nicht mehr aufrufbar waren. Zudem werden auch schon
Regeln für bekannte Webanwendungen (Wordpress etc.) mitgeliefert.
Hier bitte kostenfrei registrieren https://modsecurity.comodo.com/ und im Anschluß bitte hier https://waf.comodo.com/ die Regeln als Komplettdownload in der neuesten Version downloaden. Diese werden bald benötigt.
2.) Login via Putty (o.a.)
3.) modsecurity installieren, Kommando eingeben und ausführen
Code: Select all
sudo apt-get install libapache2-mod-security2
3a) modsecurity aktivieren
Code: Select all
sudo a2enmod security2
3b) Apache neu starten mit
Code: Select all
sudo service apache2 restart
Code: Select all
sudo a2enmod headers
Code: Select all
apache2ctl -M
6.) Jetzt befindet sich modsecurity im Erkennungsmodus, ohne das aktiv eingegriffen wird. Damit geht es jetzt weiter...
7.) Wir kopieren die Konfiguration, da in Kürze Änderungen vorgenommen werden:
Code: Select all
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Code: Select all
mc
9.) Nun wird IM Verzeichnis /usr/share/modsecurity-crs/ ein neues Verzeichnis erstellt: Also Taste F7 - und bennen dieses mit "comodo_rules", allerdings ohne die Anführungszeichen.
10.) Anschließend ladet ihr die Comodo-Regeln aus 1.) (vorher die Datei bitte entpacken) in das neu erstellte Verzeichnis. Ob ihr dafür FileZilla,
Totalcommander, Win SCP oder was auch immer nutzt, bleibt euch überlassen. Jetzt sollten sich alle Comodo-Regeln im Verzeichnis comodo_rules befinden.
11.) Weiter geht es mit der Bearbeitung der Datei modsecurity.conf (Taste F4). Beim ersten Aufruf wird abgefragt, mit welchem Editor gearbeitet werden soll, da wir bereits nano haben, nutzen wir diesen auch.
12.) Die Zeile
Code: Select all
SecRuleEngine DetectionOnly
Code: Select all
SecRuleEngine On
Code: Select all
#Include /usr/share/modsecurity-crs/*.conf
#Include /usr/share/modsecurity-crs/base_rules/*.conf
#Include /usr/share/modsecurity-crs/optional_rules/*.conf
Include /usr/share/modsecurity-crs/comodo_rules/*.conf
14.) Den Apachen neu starten mit
Code: Select all
sudo service apache2 restart
Abschließend nocht der Livetest:
Code: Select all
https://meinedomain.de/index.php?SELECT%20*%20FROM%20mysql.users