Kann iptables fail2ban ersetzen?

monateng

New Member
Hi,


kann man durch gute Einstellungen fail2ban ersetzen? Also, so das ein Portscanner nach dem x-Ten Versuch garnichtmehr für 10min. den Server erreichen kann?
Mom ist mein iptables so eingestellt, dass nur Verbindungen von ssh und Apache angenommen werden. Wie fail2ban nun reagiert, habe ich noch nicht erkennen können. Alle Pakete an nicht offene Ports werden durch iptables sowiso schon verworfen. Nützt ein fail2ban nun eigentlich noch etwas?
 

Patrick Bauer

New Member
Ich bin zwar auch noch Anfänger im Gebiet der Sicherheit, aber:

Fail2Ban kann denke ich soweit nützlich sein, dass ein potenzieller Hacker mit einer IP höchstens x Versuche hat sich ins SSH zu schleusen. Somit kann man SSH-Bruteforce unterbinden und schont auch die Logfiles :)
 

Mordor

Registered User
Was Patrick geschrieben hat, ist schon richtig.

IpTables ist ja ein reiner Paketfilter. Hier werden STATISCHE Rgeln erstellt, die immer so bleiben.
fail2ban ist kein Paketfilter. Viel mehr ist es ein Tool, welches spezifische Programm wie Apache oder SSH überwachen kann, und eben nach bestimmten Regeln IP-Adressen sperrt. fail2ban arbeitet hier aber auch mit IpTables. Sollte also jemand zu oft den SSH aufrufen, und immer wieder Fehler verursachen, so wird er über IpTables von fail2ban gesperrt. Nach einer gewissen Zeit, löscht fail2ban die IpTables-Regel dann wieder raus.

Du solltest allerdings nicht nur darauf achten, dass Ports die du nicht benötigst über ipTables gesperrt sind. Viel wichtiger ist es, zu überwachen, welche Programme auf dem Server sind, und nur das zu installieren, was man auch benötigt. Dann wird IpTables eigentlich überflüssig, denn dann sind auch nur die Ports auf, die Programme benötigen, die hoffentlich du gestartet hast.

Gruß Mordor
 

nikosch

New Member
Einen Portscan kannst du auch mit iptables "erkennen" und den Angreifer blocken.
Ich habe dafür was zusammengebastelt, es funktioniert wie ein "honeypot", wird ein bestimmter Port angesprochen (natürlich ein, von dir, ungenutzter), schnappt die Falle zu, der Angreifer wird geblockt.
Ich finde das deswegen sinnvoll, weil ich davon ausgehe, dass jemand, der einen Portscan ausführt und damit den Port anspricht, sowieso nichts gutes im Schilde führt.
Hier ein Auszug:
Code:
$IPT -N honeypot
$IPT -A INPUT -s ! 127.0.0.1 -j honeypot
$IPT -A honeypot -m recent --update --seconds 6000 --name portscan -j DROP
$IPT -A honeypot -p tcp -m tcp --dport 21 -m recent --name portscan --set -j LOG --log-prefix "IPTABLES -- HONEYPOT -- P 21 " --log-level 6 --log-ip-options
$IPT -A honeypot -p tcp -m tcp --dport 21 -m recent --name portscan --set -j DROP
$IPT -A honeypot -j RETURN
Die Log Zeile ist nur drin, damit ich einen einfachen Überblick über die Auslösungen habe.
Hier ist die Block Zeit 6000 Sekunden.
Für den Angreifer sieht es dann so aus, als ob der Host nicht mehr antworten würde. (DROP)
 

monateng

New Member
Danke nikosch,


für deinen Code, habe ich sofort Probiert und hat gefunzt!
Super sache. Wäre alleine nicht darauf gekommen.

Auch den anderen beiden Patrick Bauer und Mordor dank für die Erläuterungen. Mir ist nun mehr klar geworden wie IpTables funzen.

Danke
 
Top