Kategorien
IPTables Linux security

Wie verheimliche ich zusätzliche Router

Internetanbieter können feststellen wie viele Router Du betreibst, nicht das das irgend jemanden außer dich selbst etwas angehen würde.

Wie stellen Internetanbieter einen Router fest? an dem TTL (Time to Live) der TCP-Pakete Die du an sie weiter gibst.

Die TTL Kannst Du in einem vernünftigen* Router jedoch ändern.

Setze in der Firewall für das POSTROUTING einfach eine neue TTL.:

iptables -t mangle -I POSTROUTING 1 -j TTL --ttl-set 64

Die TTL von 64 wird von Unix Geräten, wie zum Beispiel Android Telefonen verwendet. Wenn Alle Pakete als direkt von einem Windows Gerät stammend wirken sollen wäre der richtige Wert 128.

Kategorien
IPTables Linux security

IP Filter…

Um Dienste von dem Zugriff durch bestimmte IP-Adressen zu sperren oder bestimmte IP Ports zu verbieten bietet sich ein IPTables Block an.

iptables -N block-enemy
iptables -A block-enemy -j DROP

Ziel-Port in die Blockliste aufnehmen

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy
iptables -I INPUT 1 -p tcp --dport 8080 -j block-enemy

Eine IP-Adresse in die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --source 190.17.238.139 -j block-enemy

Eine Anwendung (MySQL Standartport) die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy

Entfernen lässt sich der Inhalt des Blocks wieder mit:

iptables --flush block-enemy
Kategorien
Forensik Linux security

Login versuche…

Es gibt auf jedem, offen im Internet zu erreichenden Server eine Unzahl von Login Versuchen mit den verscheidensten Benutzernahmen. Diese Bruteforce-Angriffe können einen Server auslasten und, im Schlimmsten Fall wird auch bei größter Vorsicht doch einmal ein Kennwort erraten.

Die SSH-Loginversuche lassen sich unter Linux mit den folgenden Snippets beobachten.:

cat /var/log/auth.log |grep "Failed password for invalid user "|cut -d' ' -f11|sort|uniq
cat /var/log/auth.log |grep "Failed password for invalid user "|cut -d' ' -f11|sort|wc -l

Um diese Bruteforce Passwort-Versuche zu unterbinden bietet es sich an im IPTABLES die Fehlerhaften Logins zu Monitoren und nach einigen Versuchen den Port 22, oder entsprechenden SSH-Port für einige Zeit zu sperren.

Im folgenden Beispiel wird eine Ausnahmeliste erszellt, bei diesen IP-Adressen wird nicht gesperrt, und im Anschluss nach 2 erfolglosen Loginversuchen ein Logeintrag gemacht und der Port 22 für 240 Sekunden gesperrt.

iptables -N SSH_WHITELIST
iptables -A SSH_WHITELIST -s 192.168.0.1 -m recent --remove --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 240 --hitcount 2 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 240 --hitcount 2 --rttl --name SSH -j DROP