Portscans dropen auf Debian Lenny/Squeeze

So manch einer kennt es. Man möchte Portscans unterbinden, damit nicht jeder
sieht welche Anwendungen auf welchen Ports laufen bzw. welche Ports nach außen
offen sind.

Nun dazu gibt es eine simple Lösung.

Diese nennt sich Portsentry.

Portsentry unterbindet Portscans von den gewöhnlichen Portscannern wie nmap.
Um portsentry nutzen zu können müssen wir es wie jede andere Anwendung ebenfalls installieren.

root@localhost:~# apt-get install portsentry

Ohne jegliche Konfiguration von Portsentry reagiert diese kleine Software
relativ wenig auf einen Portscan, es schreibt Standardgemäß dann nur einen Logeintrag
in den Syslog.

Um dies zu ändern müssen wir nun die Konfiguration von Portsentry anpassen.
Dazu öffnen wir die Datei /etc/portsentry/portsentry.conf mit einem beliebigen Editor.

Nun ändern wir unsere Konfiguration.

BLOCK_UDP="1"
BLOCK_TCP="1"

Hiermit legen wir fest welche Protokolle wir loggen möchten.
In diesem Falle sind es UDP und TCP.

Als nächstes wäre es sinnvoll einen Eintrag zu setzen was passieren soll wenn ein Portscan erfolgt.
Dazu schreiben wir in unsere Konfiguration die folgende Zeile hinein:

KILL_ROUTE="/sbin/iptables -A INPUT -s $TARGET$ -j DROP"

Mittels dieser Zeile sagen wir Portsentry was es bei einem Portscan zu machen hat.
In diesem Falle soll Portsentry bei einem Portscan den jenigen der diesen durchführt vom Server bannen.

Nun speichern wir unsere Konfiguration und editieren die nächste Datei /etc/default/portsentry.

Dort legen wir fest ob sich Portsentry im Silent mode starten soll oder nicht.
Im Silent mode werden beispielsweise Bannermeldungen deaktiviert, welche man ggf. konfiguriert hat.
Allerdings ist dies eine recht gute Option, desto weniger informationen nach außen frei sind desto besser.

TCP_MODE="stcp"
UDP_MODE="sudp"

Jetzt speichern wir erneut die Konfiguration und restarten Portsentry mit

root@localhost:~# /etc/init.d/portsentry restart

Nun läuft Portsentry mit unserer neuen Konfiguration.

Ob jemand einen Portscan ausgeführt hat können wir im Syslog nachlesen.
Ebenso ob jemand vom server gedroped wurde können wir nachlesen in iptables mit dem Befehl:

root@localhost:~# iptables -L

Leave a Reply