fail2ban
Robert R.
- webserver
0 dedlfix0 Kay0 Jörg Reinholz
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
fail2ban ist wirklich eine feine Sache für das Behindern von "Intrudern".
Man kann ja auch einzelne IPs dauerhaft verbannen, wenn man die ip.blacklist zusätzlich in Betrieb nimmt. Funktioniert auch wunderbar.
Leider habe ich noch nicht verstanden, wie ich das zugehörige Muster auf ganze Netze ausdehnen kann. Wenn der Eindringling sein (ganzes) Subnetz durchtickert, um reinzukommen, würde gerne für das ganze Subnetz "Du kummst ihr nix rein" einstellen...
Kann mir da jemand mit Praxiserfahrung weiterhelfen?
Spirituelle Grüße Euer Robert
Tach!
Man kann ja auch einzelne IPs dauerhaft verbannen, wenn man die ip.blacklist zusätzlich in Betrieb nimmt. Funktioniert auch wunderbar. Leider habe ich noch nicht verstanden, wie ich das zugehörige Muster auf ganze Netze ausdehnen kann.
Die üblichen Schreibweisen hast du schon probiert? Beispielsweise a.dd.re.ss/maskbits
Kann mir da jemand mit Praxiserfahrung weiterhelfen?
Nach dem Versuch die aktiven Firewall-Regeln anschauen, ob es geklappt hat oder nicht.
dedlfix.
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Man kann ja auch einzelne IPs dauerhaft verbannen, wenn man die ip.blacklist zusätzlich in Betrieb nimmt. Funktioniert auch wunderbar. Leider habe ich noch nicht verstanden, wie ich das zugehörige Muster auf ganze Netze ausdehnen kann.
Die üblichen Schreibweisen hast du schon probiert? Beispielsweise a.dd.re.ss/maskbits
Kann mir da jemand mit Praxiserfahrung weiterhelfen?
Nach dem Versuch die aktiven Firewall-Regeln anschauen, ob es geklappt hat oder nicht.
Das einfach per Versuch zu bestimmen, ist mir eigentlich zu heiß. Lieber hätte ich einen Verweis auf eine stabile Doku zum Thema oder auf abgesicherte Postings in seriösen Foren.
Meine Suche hat aber bisher nur zur Erweiterung der Musterliste mit "ip.blacklist" geführt, die auch (augenscheinlich) ordnungsgemäß funktioniert. Das hat mir ausßerdem die Augen geöffnet für verlagerte Logs der Virtual Hosts. Da muss man auch tätig werden, wenn die nicht mehr zentral unter /var/log/apache... liegen, sondern üblicherweise in einem über/nebengeordneten Verzeichnis der Domain.
Einfach installieren und "gud issses" geht also nicht.
Spirituelle Grüße Euer Robert
Tach!
Nach dem Versuch die aktiven Firewall-Regeln anschauen, ob es geklappt hat oder nicht. Das einfach per Versuch zu bestimmen, ist mir eigentlich zu heiß.
Machst du das am lebenden Objekt ohne Zugang zur Konsole und hast Angst dir den Ast abzusägen, auf dem du sitzt? Da wäre mir auch nicht ganz ohne. Aber es gibt virtuelle Maschinen, in denen man das gefahrlos üben kann.
dedlfix.
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Nach dem Versuch die aktiven Firewall-Regeln anschauen, ob es geklappt hat oder nicht. Das einfach per Versuch zu bestimmen, ist mir eigentlich zu heiß.
Machst du das am lebenden Objekt ohne Zugang zur Konsole und hast Angst dir den Ast abzusägen, auf dem du sitzt? Da wäre mir auch nicht ganz ohne. Aber es gibt virtuelle Maschinen, in denen man das gefahrlos üben kann.
Hab ich auch gedacht. Aber viruell die Angriffe nachzuahmen, erfordert noch mehr Equipment (Seperates Netz, Bind, etc.). Das hatte ich an der Hochschule zur Verfügung, aber in einem realen Unrternehmen versteht diese Anforderung (Könnte ich aus Altgeräten locker erfüllen, ohne, dass es jemand mitbekommt) und die zusätzliche Zeit dafür keiner mehr.
Und immer nur privat zu forschen, ist auch etwas teuer...
Spirituelle Grüße Euer Robert
Tach!
Machst du das am lebenden Objekt ohne Zugang zur Konsole und hast Angst dir den Ast abzusägen, auf dem du sitzt? Da wäre mir auch nicht ganz ohne. Aber es gibt virtuelle Maschinen, in denen man das gefahrlos üben kann. Hab ich auch gedacht. Aber viruell die Angriffe nachzuahmen, erfordert noch mehr Equipment (Seperates Netz, Bind, etc.).
Das ist nicht notwendig. Du gehst doch sicher davon aus, dass das Sperren einer Adresse klappt. Du kannst das ordnungsgemäße Eintragen in deiner Firewall überprüfen. Und nun machst du dasselbe mit dem Netzwerk. Auch das sollte ordnungsgemäß in den Firewall-Regeln landen. Du weißt doch, wie die auszusehen haben, dass sie wirksam sind?
Das hatte ich an der Hochschule zur Verfügung, aber in einem realen Unrternehmen versteht diese Anforderung (Könnte ich aus Altgeräten locker erfüllen, ohne, dass es jemand mitbekommt) und die zusätzliche Zeit dafür keiner mehr.
So pauschal, wie du das sagst, ist das gar nicht wahr.
dedlfix.
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Das hatte ich an der Hochschule zur Verfügung, aber in einem realen Unrternehmen versteht diese Anforderung (Könnte ich aus Altgeräten locker erfüllen, ohne, dass es jemand mitbekommt) und die zusätzliche Zeit dafür keiner mehr.
So pauschal, wie du das sagst, ist das gar nicht wahr.
Nein, stimmt. Größere Unternehmen nehmen sich dafür auch die Zeit. Durch NSA-Affäre usw. sind ja alle aufgeschreckt, wie die Hühner. Nur da hilft ja auch kein Schutz gegen Angriffe von außen. Die kleinen Angreifer sind ja schon drinnen ... tztz
Spirituelle Grüße Euer Robert
Kann mir da jemand mit Praxiserfahrung weiterhelfen?
Wir der Range-Bereich nicht im CIDR-Format angegeben?
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Kann mir da jemand mit Praxiserfahrung weiterhelfen?
Wir der Range-Bereich nicht im CIDR-Format angegeben?
Das weiß ich eben nicht. Ich habe die Erweiterung für ip.blacklist von fail2ban eingebaut, dafür gibt es aber leider zuviele voneinander abweichende Anleitungen...
Bewirkt hat sie wohl 'was, ich weiß leider nur noch nicht, ob es das Erwünschte ist.
Spirituelle Grüße Euer Robert
Kann mir da jemand mit Praxiserfahrung weiterhelfen?
fw_block:
#! /bin/sh sudo iptables -A INPUT -s $1 -j DROP sudo iptables -L INPUT
#! /bin/sh sudo iptables -D INPUT -s $1 -j DROP sudo iptables -L INPUT
fail2ban-apache tcp -- anywhere anywhere multiport dports http,https fail2ban-ssh_root tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh fail2ban-apache tcp -- anywhere anywhere multiport dports http,https fail2ban-ssh_root tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh DROP all -- 27.153.0.0/16 anywhere DROP all -- 61.167.0.0/16 anywhere DROP all -- 0.0.174.61.dial.tz.zj.dynamic.163data.com.cn/16 anywhere DROP all -- 69.174.240.0/20 anywhere DROP all -- 83.170.64.0/19 anywhere DROP all -- 91.199.247.0/24 anywhere DROP all -- 116.8.0.0/14 anywhere DROP all -- 117.21.0.0/16 anywhere DROP all -- 121.101.0.0/18 anywhere DROP all -- 122.225.109.0/24 anywhere DROP all -- 183.0.0.0/10 anywhere DROP all -- 217.6.222.96/27 anywhere
Nur leider musst Du das Netz ggf. selbst ermitteln. whois hilft da nicht immer weiter.
Jörg Reinholz
Lieber Jörg, liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Kann mir da jemand mit Praxiserfahrung weiterhelfen?
fw_block:
#! /bin/sh sudo iptables -A INPUT -s $1 -j DROP sudo iptables -L INPUT
#! /bin/sh sudo iptables -D INPUT -s $1 -j DROP sudo iptables -L INPUT
fail2ban-apache tcp -- anywhere anywhere multiport dports http,https fail2ban-ssh_root tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh fail2ban-apache tcp -- anywhere anywhere multiport dports http,https fail2ban-ssh_root tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh DROP all -- 27.153.0.0/16 anywhere DROP all -- 61.167.0.0/16 anywhere DROP all -- 0.0.174.61.dial.tz.zj.dynamic.163data.com.cn/16 anywhere DROP all -- 69.174.240.0/20 anywhere DROP all -- 83.170.64.0/19 anywhere DROP all -- 91.199.247.0/24 anywhere DROP all -- 116.8.0.0/14 anywhere DROP all -- 117.21.0.0/16 anywhere DROP all -- 121.101.0.0/18 anywhere DROP all -- 122.225.109.0/24 anywhere DROP all -- 183.0.0.0/10 anywhere DROP all -- 217.6.222.96/27 anywhere
Nur leider musst Du das Netz ggf. selbst ermitteln. whois hilft da nicht immer weiter.
Das heißt dann aber, dass ich selber in IP-Tables eingreifen muss?
Ich habe bisher die Blacklist von fail2ban benutzt. Die wurde von mir zusätzlich eingerichtet. Leider sind die Anleitungen dazu sehr unterschiedlich. Ich habe z.B. keine Datei jail.conf oder jail.local, wie sie in einzelnen Anleitungen erwähnt wird.
Eine Änderung von ip.blacklist wird aber trotzdem von fail2ban registriert ("INFO Logrotate in ip.blacklist"), die Datei muss dem Server also bekannt sein.
Leider kann ich nicht erkennen, ob die eingetragenen IPs nun dauerhaft gesperrt bleiben, denn Zugriffe von diesen werden immer noch im fail2ban.log registriert mit "ban" und "unban".
Ich würde es begrüßen, wenn ich Änderungen (Sperrungen) auf die Datei ip.blacklist beschränken könnte, da diese automatisch erweritert werden könnte, bzw. mittels eines kleinen Frontends, das ich mir erstellt habe.
Spirituelle Grüße Euer Robert
Das heißt dann aber, dass ich selber in IP-Tables eingreifen muss?
Ja. Die beiden gezeigten Skripte vereinfachen das aber stark, weil ich nur fw_block.sh bzw. fw_unblock.sh ip/maske eingeben muss. iptables sorgt selbst dafür, dass die geperrten Items beim Neustart auch wieder blockiert werden.
Darüber hinaus macht es in der weit überwiegenden Zahl der Fälle keinen Sinn, ganze Netze zu sperren, weil die Angreifer eben nicht ihr ganzes Netzwerk "durchnudeln", sondern für die Angriffe i.d.R. Rechner benutzen, die selbst gekapert sind bzw. halt über TOR gehen. Das bedeutet, Du hast es aus Netzwerk-Perspektive pro Angreifer in der Regel eben NICHT mit EINEM Netz zu tun. (Das "Botnet" ist hier nicht gemeint...)
Die ich gesperrt habe, die haben sich lediglich als Netze mit notorischen Angriffen erwiesen. Und ja: Entweder schreibst Du Dir eine Wahnsinns-Software oder Du schaust ab und an mal über die Logs und blockst dann auffällig gewordene Netze, vor allem dann, wenn Du Dir (z.B. bei chinesischen, brasilianischen, türkischen ... ISP oder Hostern oder Rechenzentren in Utah/USA) nicht vorstellen kannst, dass die was legales auf Deinen Rechnern wollen.
Jörg Reinholz
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Das heißt dann aber, dass ich selber in IP-Tables eingreifen muss?
Ja. Die beiden gezeigten Skripte vereinfachen das aber stark, weil ich nur fw_block.sh bzw. fw_unblock.sh ip/maske eingeben muss. iptables sorgt selbst dafür, dass die geperrten Items beim Neustart auch wieder blockiert werden.
Ich hab noch 'was fertiges zum Installieren entdeckt. Da kann man weniger falsch machen:
iptables-persistent
Damit werde ich mich mal probehalber beschäftigen. Könnte sein, dass das mit fail2ban und meinen IP-Statistik-Skriptlein etwas leichter zusammenarbeitet
Wenn der Thread noch da ist, wenn ichs rausgefunden habe, schreibe ich es nochmal hier rein.
Spirituelle Grüße Euer Robert
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
iptables-persistent
So, hab ich jetzt installiert. Aber sowas geheimnisvolles ist das auch nicht.
Bleibt für mich nur die Frage, wer die Dateien lesen können muss:
drwxr-xr-x 2 root root 4096 Mar 7 17:11 . drwxr-xr-x 100 root root 4096 Mar 7 17:10 .. -rw-r--r-- 1 root root 482 Mar 7 17:15 rules.v4 -rw-r--r-- 1 root root 184 Mar 7 17:10 rules.v6
reicht da nicht ggf. auch
drwxr-x--- 2 root root 4096 Mar 7 17:11 . drwxr-x--- 100 root root 4096 Mar 7 17:10 .. -rw-r----- 1 root root 482 Mar 7 17:15 rules.v4 -rw-r----- 1 root root 184 Mar 7 17:10 rules.v6
?
Die sollten doch vom Kernel gelesen werden und das müsste doch mit root zufrieden sein, oder?
Spirituelle Grüße Euer Robert
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Und noch eine Frage zu iptables. Vielleicht guckt ja nochmal jemand?
Ich habe gestern eine Störer-IP in die Liste von IP-Tables eingetragen. Heute habe ich mir die Liste nochmal anzeigen lassen, da kam keine IP zurück, sondern ein aufgelöster Hostname. Der war dann aber inzwischen per whois nicht mehr bekannt.
Übersetzt IP-Tables die IPs in Hostnamen? Wann tut es das? Muss ja irgendwie zeitnahm passieren, denn heute war der Hostname im DNS nicht mehr bekannt.
Wie komme ich an die ursprüngliche IP später wieder heran (wenn ich sie mir nicht anderswo merke)?
Spirituelle Grüße Euer Robert
Übersetzt IP-Tables die IPs in Hostnamen?
Jein.
Wann tut es das?
Wenn Bei Du bei # iptables -L das -n vergisst.
Mit iptables -L -n geht es also auch deutlich schneller.
Steht übrigens alles im manual und sogar in iptables --help .
Jörg Reinholz
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
ja!
Übersetzt IP-Tables die IPs in Hostnamen? Jein.
Wann tut es das? Wenn Bei Du bei # iptables -L das -n vergisst.
Mit iptables -L -n geht es also auch deutlich schneller.
Steht übrigens alles im manual und sogar in iptables --help .
Hab ich wohl übersehen. OK, so ist es besser:
:~# iptables -L INPUT -n
DROP all -- 82.165.139.6 0.0.0.0/0
DROP all -- s15410500.onlinehome-server.info anywhere
Ich hoffe, dass es nicht deiner ist. Aber der hat reichlich was offen. Bisschen ungewöhnlich für einen Hacker.
Spirituelle Grüße Euer Robert