Stefan Kleeschulte wrote at Thursday, September 01, 2005 12:11 AM
Tja, was dabei rausgekommen ist... Eine Datei 'firewall' gibt's dann im Root-Verzeichnis immernoch nicht. Das Script funktioniert aber, ich hatte zusätzlich noch ein 'cp /var/log/warn /root/warn' eingefügt, 'warn' ist nun im Root-Verzeichnis vorhanden. Und auch eine Datei namens 'fwrules' ist da, mit folgendem Inhalt (das "> " vor jeder Zeile habe ich eingefügt, damit mein Mailprogramm die Zeilen nicht umbricht):
Naja da haben wir ja schon was ...
ACCEPT all -- anywhere anywhere
Das kann nicht ganz der Anfang sein ... M.E. ist das die "Chain INPUT" ... Hast Du evtl am Anfang ein oder zwei Zeilen beim kopieren verloren? Die ersten vier Zeilen bei mir sind: Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
[...]
Chain input_ext (1 references)
So bis hierher kommen wir jedenfalls, wenn das oben die Input Chain ist ...
target prot opt source destination DROP tcp -- anywhere anywhere tcp dpt:ssh flags:SYN,RST,ACK/SYN [...]
Nun ja, das da oben schaut mir komisch aus, hier werden ssh Pakete explizit geDROPped statt durchgelassen. Kann es sein, dass Du ssh in verbotenen und nicht in _erlaubten_ Diensten eingetragen hast? Ansonsten macht vielleicht Dein yast was falsch. Hier sollte stehen: ACCEPT tcp -- anywhere anywhere tcp dpt:ssh Aber ich hab eine Idee, noch dazu mit einem Sicherheitplus. Wo auch immer Du ssh erlaubt hast, dort nimmst Du es wieder weg. Stattdessen setzt Du den Parameter 25.) (wahrscheinlich), auf jeden Fall FW_CUSTOMRULES="" auf "/etc/sysconfig/SuSEfirewall2-custom". In ebendiesem Skript fügst Du folgende drei Zeilen in den Abschnitt fw_custom_after_antispoofing() { iptables -A input_ext -p tcp --dport 22 -m recent --update --seconds 300 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_brute_force " iptables -A input_ext -p tcp --dport 22 -m recent --update --seconds 300 --hitcount 4 --rttl --name SSH -j DROP iptables -A input_ext -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT true } ein, wie oben gezeigt. Das Mailprogramm wird das umbrechen, jede Zeile beginnt mit "iptables". Hier hast Du gleich einen Schutz gegen ssh-brute-Force attacken dabei: der 5. Verbindungsversuch von derselben IP wird geblockt, der nächste Versuch ist erst nach 5 Minuten Pause (von diesem Host) möglich. Das funktioniert so bei mir einwandfrei. Was an der anderen Konfig nicht stimmt, sieht man zwar, aber ich weiss nicht wie es dazu kommt.- Regards, Markus