Sicher, und auch schon beschrieben habe (leider wieder im Russisch
)
http://wl500g.info/showpost.php?p=69964&postcount=63
In kurzem:
1) Laden wir ipt_recent in /usr/local/sbin/pre-boot
Es gibt die zwei moeglichkeiten. In die letzte Oleg firmwares gibt's ipt_recent module. Dann reicht:
PHP Code:
insmod ipt_recent
[ Hier: http://wl500g.info/showpost.php?p=69660&postcount=53 liegt auch ipt_recent module, der gegen eine Fehler korrigiert ist. (Ich nutze diese Version, aber die Ursache ist schon irgendwie geschichtliche. Ich kann nicht genau sagen, dass die Version von Oleg falsch ist. ) ]
2) Nehmen wir aus http://wl500g.info/showpost.php?p=69964&postcount=63 ein Stueck Code und legen ihm in post-firewall.
Die wichtige Einfluss hat die folgende Zeile:
PHP Code:
iptables -A SSH_EVAL -i ! $3 -p tcp -m state --state NEW --dport $SSH_PORT -m recent --update --seconds 600 --hitcount 4 --name SSH_ATTACKER --rsource -j DROP
Hier --seconds 600 --hitcount 4 bedeutet, dass die vierte Versuch innerhalb 600 Sekunden von dieselben IP wird verboten.
Sehr wichtig: es ist egal ob diese Versuche erfolgreich oder nicht sind!!!
Es gibt die zwei Liste:
PHP Code:
/usr/local/etc/ssh.allow
/usr/local/etc/ssh.deny
die vor dem ipt_recent bearbeitung geprueft sind.
Diese Liste muessen so aussehen:
PHP Code:
12.34.56.78 Zugang von einen einzigen IP erlauben/verboten
87.65.43.0/24 Zugang von eine Netzwerk erlauben/verboten
Endlich, Man kann die ipt_recent Tabelle etwa so auswerten:
PHP Code:
1) Inhalt anzeigen:
cat /proc/net/ipt_recent/SSH_ATTACKER
2) eine IP zum Liste zugeben:
echo xx.xx.xx.xx > /proc/net/ipt_recent/SSH_ATTACKER
3) eine IP aus dem Liste entfernen:
echo -xx.xx.xx.xx > /proc/net/ipt_recent/SSH_ATTACKER
4) alle Eintragen loeschen:
echo clear > /proc/net/ipt_recent/SSH_ATTACKER
Und ganz endlich, noch ein Mal die Quelle: http://www.snowman.net/projects/ipt_recent/