Hallo,
Du kannst mit Perl durchaus herausfinden, ob jemand auf diese Ports bei dir zugreifen möchte. Wie du einen TCP/IP Server realisierst findest du zum Beispiel in
perldoc perlipc
. (Oder du verwendest den inetd, der dein Perlscript aufruft.)wie kann ich das mit dem inetd realisieren?
Musst du suchen. Über inetd kannst du bei einer Verbindung auf die entsprechenden Ports ein Perlscript starten lassen. (Siehe man inetd)
Allerdings bin ich mir nicht sicher, ob dieses Script die IP des Clients kennt, um ihn dann sperren zu können.
kann ich nicht einfach mit iptables die Ports blockieren ohne die Verbindung zu beenden?
Damit meinte ich die Verbindung die der Client zu deinem Perlscript hergestellt hat. Diese muss ja schließlich nicht bis zum timeout warten.
Diese Einträge würde ich dann irgendwo ablegen, zusammen mit der Zeit zu der sie erstellt wurden und dann nach x Stunden wieder löschen.
Du könntest die gesperrten IPs zusammen mit der Zeit zu der sie gesperrt wurden loggen. Über Cron lässt du dann alle Stunde ein Script aufrufen, welches schaut welche Sperrung schon alt genug ist, diese dann aufhebt und wieder aus dem Log löscht.
Viele Grüße,
Stefan