Fail2Ban

From HackerNet
Jump to: navigation, search

Fail2ban söker av log filerna för olika tjänster som ssh, apache etc och letar efter tex bruteforce attacker eller om en exploit försökt köras. Fail2ban uppdaterar då brandväggen att blocka all trafik från den IP'n i ex antal minuter.

Installation

Deb baserad.

apt-get install fail2ban

RPM baserad

yum install fail2ban

Konfiguration

Fail2ban kommer med bra inställningar ifrån början. Vill man ändra dom gör man det i /etc/fail2ban/jail.conf

maxretry Antalet gånger något får hända. Tex 5 felaktiga lösenord.
findtime Hur många gånger man får skriva tex felaktigt lösenord under en tidsperiod.
bantime Hur länge en IP blir bannad. Skrivs i sekunder, -1 ger en permanent ban.

SSH Repeater permanent ban

Om en IP försöker bruteforca dig så kan det vara skönt att blocka IP'n permanent istället.

Skapa följande fil /etc/fail2ban/action.d/iptables-repeater.conf

 # Fail2ban configuration file
#
# Author: Phil Hagen <phil@identityvector.com>
#

[Definition]

# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-REPEAT-<name>
              iptables -A fail2ban-REPEAT-<name> -j RETURN
              iptables -I INPUT -j fail2ban-REPEAT-<name>
              # set up from the static file
              cat /etc/fail2ban/ip.blocklist.<name> |grep -v ^\s*#|awk '{print $1}' | while read IP; do iptables -I fail2ban-REPEAT-<name> 1 -s $IP -j DROP; done

# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D INPUT -j fail2ban-REPEAT-<name>
             iptables -F fail2ban-REPEAT-<name>
             iptables -X fail2ban-REPEAT-<name>

# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
actioncheck = iptables -n -L INPUT | grep -q fail2ban-REPEAT-<name>

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          

Skapa sedan ett jail i /etc/fail2ban/jail.conf

...
[ssh-repeater]
enabled  = true
filter   = sshd
action   = iptables-repeater[name=ssh]
           sendmail-whois[name=SSH-repeater, dest=root, sender=root]
logpath  = /var/log/auth
maxretry = 10
findtime = 7200
bantime  = -1
...

Denna regeln gör att en IP blir permbannad om den skrivit fel lösenord över SSH mer än 10 gånger dom senaste 2 timmarna.