PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Webserver absichern


Tempo
2019-02-10, 22:48:54
Ich habe hier einen Raspberry Pi als Webserver (Apache2) laufen um für meine Familie Bilder online zu stellen (Directory Listing). Ich habe soweit den Webserver nach besten Wissen und Gewissen eingerichtet. Geht man auf die Domain wird man erst einmal nach Benutzername und Passwort gefragt. Ich habe auch Fail2Ban installiert und eingerichtet. Habe im Router nur Port 80 und 443 freigegeben. http wird automatisch auf https (Let's Encrypt Zertifikat) umgeleitet. Der Port für SSH ist nicht geöffnet im Router. Auch habe ich den Raspberry Pi so eingerichtet, dass er mir eine E-Mail schickt, sobald sich jemand erfolgreich auf dem Raspberry Pi per SSH anmeldet.
Vor ein paar Tagen habe ich dann mal den Apache2 access.log näher angeschaut und folgende Zeilen gesehen:


54.39.182.83 - - [08/Feb/2019:07:40:02 +0100] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:02 +0100] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:02 +0100] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:03 +0100] "GET /pma/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:03 +0100] "GET /myadmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:04 +0100] "GET /MyAdmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:04 +0100] "GET /mysql/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:04 +0100] "GET /admin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:05 +0100] "GET /dbadmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:05 +0100] "GET /PMA/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:05 +0100] "GET /sqladmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:06 +0100] "GET /db/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:06 +0100] "GET /cpadmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:07 +0100] "GET /sqladm/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:07 +0100] "GET /phpMyAdmin2/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:07 +0100] "GET /my/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:08 +0100] "GET /cpadmindb/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:08 +0100] "GET /cpanelphpmyadmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:08 +0100] "GET /phpadmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:09 +0100] "GET /_phpMyAdmin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:09 +0100] "GET /phpMyAdmin-2/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:10 +0100] "GET /phpMyAdmin-2.10.0.0/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:10 +0100] "GET /phpMyAdmin-2.10.0.1/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:10 +0100] "GET /phpMyAdmin-2.10.0.2/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:11 +0100] "GET /php-my-admin/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:11 +0100] "GET /websql/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:11 +0100] "GET /phpMyAdmin-2.9.0/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:12 +0100] "GET /phpMyAdmin-2.11.1-all-languages/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:12 +0100] "GET /phpMyAdmin-2.6.1-pl2/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:12 +0100] "GET /phpMyAdmin-2.6.1-pl3/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:13 +0100] "GET /phpMyAdmin-2.7.5/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:13 +0100] "GET /phpMyAdmin-2.8.9/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"
54.39.182.83 - - [08/Feb/2019:07:40:14 +0100] "GET /phpMyAdmin3/scripts/setup.php HTTP/1.1" 401 748 "-" "ZmEu"


Jemand versucht auf .php Dateien zuzugreifen. Wahrscheinlich irgendein böses Scan-Programm. Habe auf dem Server weder PHP noch phpMyAdmin oder sonstiges installiert. Die Anfrage verläuft also ins nix. Außerdem habe ich den Server so konfiguriert, dass wenn man auf die Adresse https://Domain.de/Unterordner geht automatisch eine Fehlerseite erscheint. Muss ich mir jetzt um die Sicherheit meines kleinen Servers Gedanken machen bzw. um die Sicherheit meines ganzen Heimnetzwerkes und was kann ich noch unternehmen um ihn sicherer zu machen?
Was bedeuten im Log eigentlich die Nummer 401 748 "-" "ZmEu"?

lumines
2019-02-10, 23:04:56
Generell: Egal ob freigegeben oder nicht, man will Public-Key-Authentifizierung per SSH. Dann kann man sich auch Fail2Ban sparen.

Das 401 ist ein HTTP Statuscode und besagt einfach nur, dass derjenige keinen Zugriff bekommen hat wegen deiner Passwortabfrage.

Du wirst immer irgendwelche Anfragen bekommen. Der IPv4-Adressraum wird regelmäßig von Bots abgegrast und dagegen kann man nicht wirklich etwas machen. Sollte dich aber auch nicht interessieren.

Tempo
2019-02-10, 23:09:41
Habe vergessen zu erwähnen, dass ich Public-key-Authentifizierung per SSH eingerichtet habe.

lumines
2019-02-11, 00:01:15
Dann würde ich mir ehrlich gesagt keine Sorgen machen. Man könnte einmal über die Ordnerfreigaben im Apache gucken, aber außer Updates einspielen sollte da nicht viel zu verbessern sein.

qiller
2019-02-11, 11:02:12
Wenn deine Webseite einfach nurn directory listing ist, brauchst dir da keine so großen Sorgen machen. Das ist nen Standardscanner, was du da oben siehst. Mit nem IDS könnte man das noch blocken, aber wenn du eh kein php/cgi etc. aktiv hast, ist das wurst. Wenn der ssh-Port nicht forwarded wird und du Pubkey-Auth machst, gibts da auch keine größeren Probleme.

sei laut
2019-02-11, 15:36:34
[..]
Was bedeuten im Log eigentlich die Nummer 401 748 "-" "ZmEu"?
https://en.wikipedia.org/wiki/ZmEu_(vulnerability_scanner)
ZmEu ist der User Agent (sprich, Browser)

Edit: Und deine Aufrufe sind "normal", die bots scannen alles ab und versuchen ungeschützte Systeme zu finden.

Simon
2019-02-11, 17:32:48
Du kannst noch inkrementelle Timeouts und Wartezeiten bei zu vielen Zugriffen von einer IP-Addresse hinzufuegen. Je nach Distribution, "ufw limit https" reicht bei Ubuntu.

Und geoip-Filterung: Alles, was keine deutsche (?) IP hat, wird von der Firewall geblockt.

sei laut
2019-02-12, 11:58:58
Du kannst noch inkrementelle Timeouts und Wartezeiten bei zu vielen Zugriffen von einer IP-Addresse hinzufuegen. Je nach Distribution, "ufw limit https" reicht bei Ubuntu.

Und geoip-Filterung: Alles, was keine deutsche (?) IP hat, wird von der Firewall geblockt.
a) er hat bereits fail2ban aktiv. (sofern korrekt eingerichtet)
b) er hat keine problematischen (meint angreifbaren) Inhalt auf seinem Webserver. Sollen die scriptkiddies doch ihr Zeug versuchen.