PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit IPTables


Nvidia5
2010-10-24, 12:05:24
Hi

Ich hab derzeit auf meinem kleinen Server Ubuntu 10.10 Server installiert.

Da ich SSH übers Internet zugänglich mache, will ich es zumindest halbwegs sicher haben.
Deshalb probierte ich das hier: https://help.ubuntu.com/community/SSH/OpenSSH/Advanced?action=show&redirect=AdvancedOpenSSH
"Limiting the number of connections"
iptables -N rate-limit
iptables -A rate-limit -p tcp -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 3 -j RETURN
iptables -A rate-limit -j DROP
iptables -I INPUT 1 -p tcp --dport 22 -j rate-limit

Problem: Er akzeptiert das Zeitlimit nicht.
Ich hab keine Chance, egal nach welcher Zeit, da noch über SSH reinzukommen...
Hat jemand von euch eine Idee?

mfg
Nv5

Gast
2010-10-24, 12:56:23
Diese Regeln sind eine dumme Idee, bitte schnell löschen. Alles was ein oder mehrere Angreifer nun tun müssen um dich permanent aus deinem Server auszusperren ist zusammen drei SYN-Pakete pro Minute an den Port 22 zu senden. Noch bessere Voraussetzungen kann man für einen Denial-of-Service-Angriff gar nicht bieten.

Was du stattdessen tun kannst (eine Option ist ausreichend):
* Netfilter-Module connlimit oder recent verwenden (man iptables).
* SSH-Option MaxStartups verwenden (man sshd_config).
* Über ein Skript (zB Fail2ban, Denyhosts, etc) Clients für einige Minuten komplett sperren, wenn sie ein paar Mal falsche Passwörter angegeben haben.
* Lange, sichere Passwörter (oder RSA-Schlüssel, die letztlich auch nichts anderes als ein sehr langes Passwort sind) verwenden und die Angriffe einfach akzeptieren, da die Angreifer das Passwort sowieso nie erraten werden.
* Netfilter-Modul geoip verwenden, musst du dir allerdings aus dem xtables-Paket selbst übersetzen. Dann kannst du zB Verbindungen aus China komplett unterbinden (haben im Internet sowieso nichts zu suchen) und hast größtenteils deine Ruhe vor diesen automatisierten Anmeldeversuchen.

Nvidia5
2010-10-24, 14:54:35
Diese Regeln sind eine dumme Idee, bitte schnell löschen. Alles was ein oder mehrere Angreifer nun tun müssen um dich permanent aus deinem Server auszusperren ist zusammen drei SYN-Pakete pro Minute an den Port 22 zu senden. Noch bessere Voraussetzungen kann man für einen Denial-of-Service-Angriff gar nicht bieten.

Was du stattdessen tun kannst (eine Option ist ausreichend):
* Netfilter-Module connlimit oder recent verwenden (man iptables).
* SSH-Option MaxStartups verwenden (man sshd_config).
* Über ein Skript (zB Fail2ban, Denyhosts, etc) Clients für einige Minuten komplett sperren, wenn sie ein paar Mal falsche Passwörter angegeben haben.
* Lange, sichere Passwörter (oder RSA-Schlüssel, die letztlich auch nichts anderes als ein sehr langes Passwort sind) verwenden und die Angriffe einfach akzeptieren, da die Angreifer das Passwort sowieso nie erraten werden.
* Netfilter-Modul geoip verwenden, musst du dir allerdings aus dem xtables-Paket selbst übersetzen. Dann kannst du zB Verbindungen aus China komplett unterbinden (haben im Internet sowieso nichts zu suchen) und hast größtenteils deine Ruhe vor diesen automatisierten Anmeldeversuchen.

Hi

Mit dem Nachteil hast natürlich recht. Dann werd ich mal die Netfilter oder SSH Methode ausprobieren.

Entil'Sar
2010-10-24, 15:23:47
Also ich würde die fail2ban Methode bevorzugen: x mal falsch angemeldet und für x min geht von der entsprechenden IP nix mehr (zu dem Server). Hat den großen Vorteil, dass du nicht irgendwelche Nebenwirkungen abbekommst, wie z.B. wenn du nen Connectionlimit einrichtest. War bisher auch immer recht zufrieden damit und man sieht, das selbst mit ner "Auszeit" von 5 min fast keiner mehr weiterversucht.