Mein eigener Server

Dokumentation meiner Projekte und Hobbies

fail2ban

Bebilderte Schritt für Schritt Anleitung um den Rechner vor angriffen aus dem Internet zu sichern.

Zum Beispiel wird der angreifen nach ein paar fehlerhaften login Versuchen gesperrt.

fail2ban Info’s

fail2ban Installieren

Ihr meldet Euch als root am System an bzw. nutzt das su- Kommando um zum root user zu wechseln.

fail2ban_1Zuerst führt Ihr ein apt-get update durch damit das Inhaltsverzeichnis von apt-get auf dem neuesten Stand ist.

fail2ban_2Jetzt mittels apt-get install fail2ban fail2ban auf dem Server installieren.

fail2ban_3Installation mit j bestästigen.

fail2ban Konfiguration

Einträge im File anpassen (bitte email Adresse ändern): vi /etc/fail2ban/jail.conf

destemail = hostmaster@deine-email.ch
bantime  = 3600

[postfix]
enabled  = true

[dovecot]
enabled = true

Einträge im File anpassen: vi /etc/default/fail2ban

FAIL2BAN_OPTS="-x"
#Kommentar: -x forces sock deletion, if it exists after abnormal system shutdown.

fail2ban_4Mit service fail2ban start fail2ban starten.

Sobald Ihr Mail auf dem Server eingerichtet habt bekommt Ihr bei jeder gebannten IP und eine email zugesendet.

fail2ban SSH Test

 fail2ban_5Mit fail2ban-client status bekommst Du einen überblick über die Dienste die fail2ban kontrolliert. Da wir aktuell nur den ssh Dienstinstalliert haben siehst Du auch nur ssh.

fail2ban_6fail2ban-client Status ssh gibt eine Übersicht über die gesperrten User und Login Versuche.

Versuche Dich jetzt von einer anderen IP mit ssh anzumelden und nutze einen User den es nicht gibt oder ein falsches Passwort. Wichtig ist das Du eine andere IP nutzt sonst sperrst Du Dich selbst aus.

fail2ban_7fail2ban-client Status ssh – 5 fehlerhafte Logins werden zugelassen.

fail2ban_8fail2ban-client Status ssh – nach dem 6. fehlerhaften Login wird die IP gebannt.

fail2ban_9iptables -L – auch hier sieht man die gesperrte IP.

fail2ban_10fail2ban-client Status ssh – nach einer Stunde ist die IP dann wieder frei (Hatten wir bei der Konfiguration auf 3600 gesetzt).

Wenn Du noch mehr ins Detail gehen willst kannst Du folgende Befehle ausprobieren:
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf cat /var/log/fail2ban.log

Fail2ban blacklist

Dies dient zum dauerhaften sperren von IPs. Diese werden manuell hinzugefügt und sind anschliessend für ein halbes Jahr gesperrt. Wenn also jemand immer wieder versucht sich bei Dir anzumelden (dies bekommt Du per email mitgeteilt) dann einfach in die Liste /etc/fail2ban/ip-blacklist eintragen.

Am Ende der Datei hinzufügen: vi /etc/fail2ban/jail.conf

[ip-blacklist]
#für ein halbes Jahr sperren

enabled   = true
banaction = iptables-allports
port      = anyport
filter    = ip-blacklist
logpath   = /etc/fail2ban/ip-blacklist
maxretry  = 0
findtime  = 15552000
bantime   = -1

Neue Datei erzeugen: vi /etc/fail2ban/filter.d/ip-blacklist.conf

[Definition]

# Option:  failregex
# Notes :  Detection of blocked ip addresses.
# Values:  TEXT
#

failregex = ^<HOST> \[.*\]$

# Option:  ignoreregex
# Notes :  Regex to ignore.
# Values:  TEXT
#

ignoreregex =

Neue Datei erstellen: vi /etc/fail2ban/ip-blacklist

147.83.159.140 [31/08/2014 12:00:00]

fail2ban_11fail2ban mit service fail2ban restart neu starten.

mit iptables -L prüfen ob IP gesperrt wurde.

Weiter geht es mit der Installation von geoIP.

fail2ban / iptables Bind9

iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables-save > /etc/iptables.local

Einträge in der Datei anpassen: vi /etc/fail2ban/jail.conf

[named-refused-udp]
enabled  = true
port     = domain,953
protocol = udp
filter   = named-refused
logpath  = /chroot/named/var/log/security.log

[named-refused-tcp]
enabled  = true
port     = domain,953
protocol = tcp
filter   = named-refused
logpath  = /chroot/named/var/log/security.log

fail2ban_11fail2ban mit service fail2ban restart neu starten.

fail2ban_12mit iptables -L prüfen ob fail2ban für DNS aktiv.

Weiter geht es mit der Konfiguration von BIND9.