automatische Firewall



AllOnline

New Member
Hallo zusammen,

aktuell nutz ich auf meinem Server DenyHosts um SSH-Attacken abzu wehren
und Fail2Ban eigentlich für FTP etc.
Aber Fail2Ban mag meinen Debain mit Confixx nicht so wirklich.
(Muss ich mich mal wieder hinter hängen)

Nun aber zu meiner Frage,
es muss doch eine Firewall geben die ähnlich wie ein Blacklisting funktioniert.

Ich such also folgendes:
Eine Software die automatisch wie Fail2Ban BruteForce etc erkennt und an einen Server reportet.
Sollten X andere Server diese IP auch reportet haben, wird die IP in eine andere Liste übertragen.
Die Firewall lädt sich alle X Minuten diese Liste rutner und block die ganze IP für alle Ports etc.

Wie gesagt, muss es doch irgend wo schon geben.
Ist für Server die viele Dienste laufen haben bestimmt Praktisch.

Welchen Befehl bei Debain muss ich nutzen um die aktullen verwendeten Ports auszulesen?

Danke euch!
 
Ich wüsste einen Grund, warum es dies bisher nicht gibt:
Es ist zu einfach es selber zu basteln. ;)

Nimm Fail2ban und erweitere es mit wenigen Zeilen so, dass es die IP's weiter meldet. Dieses "Weitermelden" kann z.B. mit einem Aufruf über wget an ein PHP-Script geschehen.
Das PHP-Script verwaltet die gemeldeten IP's und stellt für Abfragen ein Shell-Script bereit, welche die aktuellen IP's per iptables sperrt.
Das Runterladen ist dann lediglich ein Zweizeiler aus wget und execute.

Welchen Befehl bei Debain muss ich nutzen um die aktullen verwendeten Ports auszulesen?
Such Dir was aus: netstat, nmap, u.v.m.
Auf dem Server selbst würde ich z.B. mit netstat -tulpen mir die Liste ausgeben lassen.

huschi.
 
Danke für die schnelle Antwort!

Das dies einfach ist, hab ich mir fast gedacht!
Aber warum gibt es das dann noch nicht??
Das Reporten find ich auch einfach,
aber ich weiß noch nicht 100%tig wie ich das abholen machen kann.

Ist ja eig nur ein Skript welches von fail2ban reportet und die iptables downloaded per Cron ausgeführt?!
Welche Firewall kann man dafür am einfachsten verwenden?
 
Welche Firewall kann man dafür am einfachsten verwenden?
Diese Frage lässt vermuten, dass Du mit "Firewall" eine fertige Software (ähnlich einer [Windows-]Desktop-Firewall) meinst.
Aber iptables ist im o.g. Szenario die Firewall.

huschi.
 
Entschuldigung, ich meinte iptables^^
Frage überflüssig.

Aber wenn ich das machen will,
wie oben und vor fail2ban noch iptables wieder nutze,
ist das nicht die gleiche Datei für fail2ban und iptables,
oder kann man die trennen?

Sry gerade kein ssh da, ansosnten würde ich es nachgucken!
 
Wieso "vor"?
Fail2ban und iptables sind zwei völlig unterschiedliche Produkte.
Fail2ban ließt die Logfiles aus, registriert fehlerhafte Logins und erstellt daraus iptables-Regeln. Dafür nutzt Fail2ban eine eigene Chain.

Natürlich würde ich das PHP-Script so programmieren, dass das erstellte iptables-Script ebenfalls eine eigene Chain verwaltet. Denn es muss IP's ja auch wieder raus löschen können.

huschi.
 
Danke dir für deine schnellen Antworten.

Wie gesagt kann leider gerade nicht nachgucken,
wie ist den iptables in Debian überhaupt aufgebaut?

iptables ist ja grundsätzlich ein Packet und die funktionalität wird standartmäßig vom kernel mitgelierfert.

Ich meine "vor" weil die Firewall komplett blocken soll,
es soll garnicht erst zu fail2ban durchkommen.
Oder man baut es wirklich so, dass man sich zusammen baut.
und die chains von Fail2Ban zusätzlich ergänzt werden!

Allerdings will ich eigentlich darauf hinaus,
dass man für eher linux neulinge oder faule,
eine einfache Firewall hat, die man nicht selbst konfigurieren muss.
Aufgrund von fail2ban werden für diese ip alle ports geblockt,
ansonsten sind alle Ports offen.
Es sei den fail2ban hat geblockt, ohne das die Firewall greift.
Doppelter schutzt!

Wenn ich nun ganz nomal iptables verwende,
wie ist der aufruf, welche Dateien benutzt er?

Gibt es da nicht eine Liste wo alle IPs für Block draufstehen??

Wie verläuft den Fail2Ban;
ist fail2ban nur ein programm was die chains editiert aufgrund der logs? oder startet es selbst die iptables?
 
Last edited by a moderator:
Du hast den Zusammenhang zwischen Fail2ban und Netfilter/iptables nicht verstanden.

Fail2ban "blockiert" nichts. Fail2ban hat nichtmal eine Netzwerkanbindung. Fail2ban wertet lediglich Logmeldungen aus und führt dann entsprechende Kommandos aus. Das kann z. B. das Hinzufügen einer bestimmten IP-Adresse in eine Netfilter-Chain sein. Das kann aber auch einfach ein Eintrag in eine Textdatei auf dem Server sein.
 
Genau die Frage hatte ich oben gestellt, danke!
Welcher Dienst/Programm ist den das Blockende Netfilter-Chain?
Diese müsste man ja auch selbst starten und beenden können?
Welche Config benutzt dieses Programm dann?
bzw Wie schreib ich ein neues Chain da rein?
 
Satriani, Deine Antwort ging zur Hälfte an der Fragestellung vorbei.

Außerdem gibt es einen Grund der gegen hosts.deny spricht:
Nicht alle Dienste beachten diese Datei.

huschi.
 
Satriani, Deine Antwort ging zur Hälfte an der Fragestellung vorbei.
Kann nicht so nachvollziehen, oder geht es hier nicht um SSH? :rolleyes:

Außerdem gibt es einen Grund der gegen hosts.deny spricht:
Nicht alle Dienste beachten diese Datei.

Also, meines Wissens wird hosts.deny von SSH sehr wohl beachtet.
Mann könnte außerdem mal die sshd_config etwas anpassen um den SSH-Zugang auf eine oder paar IP-Ranges zu limitieren. So fährt man ein Stückchen sicherer und muss nicht unbedingt zu den Ressourcenfresser greifen ;)

Gruß, satriani.
 
Kann nicht so nachvollziehen, oder geht es hier nicht um SSH? :rolleyes:
Ja, es geht auch um SSH.

Also, meines Wissens wird hosts.deny von SSH sehr wohl beachtet.
Aber eben nicht nur um SSH!
Damit meine ich durchaus auch lästige Brute-Force-Angriffe auf den SMTP-Server, FTP-Server etc.

und muss nicht unbedingt zu den Ressourcenfresser greifen
Das lege ich mal unter "hören-sagen" ab.

huschi.
 
Last edited by a moderator:
Mal zurück zum Thema,
ist sowas Sinnvoll und nötig?

Oder was sollte man stattdessen am besten machen,
für einen Server der öfters seine Dienste ändert?

Standardmäßig:
Code:
p043:/var/log# netstat -l
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:40806                 *:*                     LISTEN
tcp        0      0 localhost:mysql         *:*                     LISTEN
tcp        0      0 *:sunrpc                *:*                     LISTEN
tcp        0      0 *:ftp                   *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 *:smtp                  *:*                     LISTEN
tcp        0      0 localhost:703           *:*                     LISTEN
tcp6       0      0 [::]:pop3               [::]:*                  LISTEN
tcp6       0      0 [::]:imap2              [::]:*                  LISTEN
tcp6       0      0 [::]:www                [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 [::]:3000               [::]:*                  LISTEN
tcp6       0      0 [::]:https              [::]:*                  LISTEN
udp        0      0 *:948                   *:*
udp        0      0 *:54369                 *:*
udp        0      0 *:sunrpc                *:*
udp        0      0 p043.purple.fastweb:ntp *:*
udp        0      0 localhost:ntp           *:*
udp        0      0 *:ntp                   *:*
udp6       0      0 fe80::2d0:b7ff:fe16:ntp [::]:*
udp6       0      0 localhost:ntp           [::]:*
udp6       0      0 [::]:ntp                [::]:*
Aktive Sockets in der UNIX-Domäne (Nur Server)
Proto RefCnt Flags       Type       State         I-Node   Pfad
unix  2      [ ACC ]     STREAM     HÖRT          6425269  /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     HÖRT          8298728  /var/run/fail2ban/fail2ban.sock
unix  2      [ ACC ]     STREAM     HÖRT          2463930  public/cleanup
unix  2      [ ACC ]     STREAM     HÖRT          2463937  private/tlsmgr
unix  2      [ ACC ]     STREAM     HÖRT          2463941  private/rewrite
unix  2      [ ACC ]     STREAM     HÖRT          2463945  private/bounce
unix  2      [ ACC ]     STREAM     HÖRT          2463949  private/defer
unix  2      [ ACC ]     STREAM     HÖRT          2463953  private/trace
unix  2      [ ACC ]     STREAM     HÖRT          2463957  private/verify
unix  2      [ ACC ]     STREAM     HÖRT          2463961  public/flush
unix  2      [ ACC ]     STREAM     HÖRT          2463965  private/proxymap
unix  2      [ ACC ]     STREAM     HÖRT          2463969  private/proxywrite
unix  2      [ ACC ]     STREAM     HÖRT          2463973  private/smtp
unix  2      [ ACC ]     STREAM     HÖRT          2463977  private/relay
unix  2      [ ACC ]     STREAM     HÖRT          2463981  public/showq
unix  2      [ ACC ]     STREAM     HÖRT          2463985  private/error
unix  2      [ ACC ]     STREAM     HÖRT          2463989  private/retry
unix  2      [ ACC ]     STREAM     HÖRT          2463993  private/discard
unix  2      [ ACC ]     STREAM     HÖRT          2463997  private/local
unix  2      [ ACC ]     STREAM     HÖRT          2464001  private/virtual
unix  2      [ ACC ]     STREAM     HÖRT          2464005  private/lmtp
unix  2      [ ACC ]     STREAM     HÖRT          2464009  private/anvil
unix  2      [ ACC ]     STREAM     HÖRT          2464013  private/scache
unix  2      [ ACC ]     STREAM     HÖRT          2464017  private/maildrop
unix  2      [ ACC ]     STREAM     HÖRT          2464021  private/uucp
unix  2      [ ACC ]     STREAM     HÖRT          2464025  private/ifmail
unix  2      [ ACC ]     STREAM     HÖRT          2464029  private/bsmtp
unix  2      [ ACC ]     STREAM     HÖRT          2464033  private/scalemail-backend
unix  2      [ ACC ]     STREAM     HÖRT          2464037  private/mailman
unix  2      [ ACC ]     STREAM     HÖRT          8716     /var/run/saslauthd/mux
unix  2      [ ACC ]     STREAM     HÖRT          6414386  /var/run/clamav/clamd.ctl
unix  2      [ ACC ]     STREAM     HÖRT          6450     /var/run/courier/authdaemon/socket.tmp

:::Bitte entschuldigt meine frage nach iptables, ich hatte zu dem Zeitpunkt keinen freien Internet zugriff:::
 
Last edited by a moderator:
Back
Top