Hallo wertes Publikum,
nachdem ich nicht der einzige bin, dem die st�ndigen Mails vom logchecker
aus der auth.log nerven und weil man halt doch nie alle Eventualit�ten
ausschlie�en kann, hatte ich mir gedacht, ich schreib' ein kleines
Scriptlein, das die INPUT-Chain um eine weitere "denyall" chain erweitert.
In diese "denyall" Chain kommen dann alle Eintr�ge die in der auth.log
durch ein "Illegal user ... from ..." auff�llig werden. Eine momentan noch
fest verdrahtete Whitelist sorgt daf�r, da� ein Spoof-DOSen der eigenen
Maschine nicht so ohne weiteres funktioniert.
Die Deny-Chain hat eine gewisse L�nge und bei �berschreiten der L�nge wird
der jeweils �lteste Eintrag herausgel�scht, bevor der neue Eintrag
hinzugef�gt wird. Performance: Auf einem PII-166 mit 64 MB keine
Auswirkungen bei einem 1000er-DSL feststellbar. Von dem Cel1200 ganz zu
schweigen.
Da die auth.log in Echtzeit gelesen wird, wird auch eine nahezu sofortige
Reaktion auf das "b�se(tm) Pattern" gew�hrleistet.
Wer's probieren mag: "ssh [EMAIL PROTECTED]" ;-)
Soweit die Theorie: In der Praxis tut sich dann aber folgendes Problem
auf: Wenn irgendeine Instanz auf dem Rechner das Logfile wegl�scht, dann
h�ngt das Script - klar - ist ja mit dem Script auch noch ein inode dran,
der aber nie mehr mit Daten versorgt wird. Wie kann man nun in PERL
erkennen, ob irgendein Prozess gerade die im <> befindliche Datei
umbenannt oder gel�scht hat? Timer setzen und Signal senden? Oder wie wird
das in der Praxis gel�st?
Momentan l�se ich das �ber den Aufruf von "tail -n 2 -f ..." aber das
scheint mir sehr sehr holterdipolter zu sein.
t++
P.S.: Das Script liegt bei: http://212.227.20.60/debian/denyssh.pl