Uvod u Fail2Ban
Instalacija Fail2Ban
Konfiguriranje postavki Fail2Ban
Konfiguriranje Fail2Ban za zaštitu SSH
Pokretanje usluge Fail2Ban
Kako pratiti neuspjele pokušaje prijave
Uvod u Fail2Ban
Prema zadanim postavkama, klijent se povezuje na SSH koristeći port 22. Budući da je ovo dobro poznati port, zadana konfiguracija je ranjiva na mnoge napade grube sile. Fail2Ban je rješenje za automatsku zaštitu poslužitelja od ovih napada. Program radi u pozadini, skenira datoteke zapisnika kako bi otkrio koji IP-ovi napadaju i automatski im zabranjuje pristup SSH-u.
Instalacija Fail2Ban
U ovom vodiču ćemo instalirati Fail2Ban na CentOS 6 preko EPEL spremišta. Pokrenite sljedeće naredbe.
yum install epel-release
yum install fail2ban
Obrazloženje
yum install epel-release: Instalira EPEL repozitorij (dodatni paketi za Enterprise Linux).
yum install fail2ban: Instalira Fail2Ban iz EPEL spremišta.
Konfiguriranje postavki Fail2Ban
Otvorite konfiguracijsku datoteku Fail2Ban.
nano /etc/fail2ban/jail.conf
U datoteci ćete vidjeti neke parametre kao što je prikazano u nastavku. Prilagodite bilo koju vrijednost svojim potrebama.
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1
# "bantime" is the number of seconds that a host is banned.
bantime = 600
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
# "maxretry" is the number of failures before a host get banned.
maxretry = 3
Obrazloženje
ignoreip: Nemojte zabraniti hostove koji odgovaraju adresi na ovom popisu. Nekoliko adresa može se definirati pomoću razdjelnika. U ovaj red upišite svoj osobni IP.
bantime: Broj sekundi u kojima je host zabranjen.
findtime: Host je zabranjen ako je generirao maxretrytijekom posljednjeg findtime.
maxretry: Broj neuspjeha prije nego što se host zabrani.
Konfiguriranje Fail2Ban za zaštitu SSH
Prvo moramo stvoriti konfiguracijsku datoteku.
nano /etc/fail2ban/jail.local
Kopirajte retke ispod i zalijepite u datoteku.
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
# sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath = /var/log/secure
maxretry = 5
enabled: Aktivirajte zaštitu. Ako ga želite isključiti, promijenite vrijednost u false.
filter: Prema zadanim postavkama, postavljeno je na sshd što se odnosi na datoteku /etc/fail2ban/filter.d/sshd.conf.
action: Fail2Ban će zabraniti IP koji odgovara filteru /etc/fail2ban/action.d/iptables.conf. Ako ste prije promijenili SSH port, promijenite port=sshga na novi port, na primjer port=2222. Ako koristite port 22, nećete morati mijenjati vrijednost.
logpath: Put datoteke dnevnika koju koristi Fail2Ban.
maxretry: Maksimalni broj neuspjelih pokušaja prijave.
Pokretanje usluge Fail2Ban
Pokrenite ove dvije naredbe u nastavku da biste pokrenuli uslugu Fail2Ban:
chkconfig --level 23 fail2ban on
service fail2ban start
Na kraju, provjerite iptablesima li pravila dodana od strane Fail2Ban.
iptables -L
Rezultat će izgledati slično ovom izlazu.
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-SSH tcp -- anywhere anywhere tcp dpt:EtherNet/IP-1
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-SSH (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Kako pratiti neuspjele pokušaje prijave
Možete koristiti ovu naredbu da provjerite je li vaš poslužitelj imao neuspjele pokušaje prijave (mogući napadi).
cat /var/log/secure | grep 'Failed password'
Rezultat će izgledati slično ovim redovima.
Dec 6 22:47:12 vultr sshd[7942]: Failed password for root from 43.229.53.67 port 23021 ssh2
Dec 6 22:47:15 vultr sshd[7944]: Failed password for root from 43.229.53.67 port 40996 ssh2
Dec 6 22:47:16 vultr sshd[7944]: Failed password for root from 43.229.53.67 port 40996 ssh2
Dec 6 22:47:18 vultr sshd[7944]: Failed password for root from 43.229.53.67 port 40996 ssh2
Dec 6 22:47:31 vultr sshd[7948]: Failed password for root from 43.229.53.67 port 29907 ssh2
Dec 6 22:47:34 vultr sshd[7948]: Failed password for root from 43.229.53.67 port 29907 ssh2
Dec 6 22:47:36 vultr sshd[7948]: Failed password for root from 43.229.53.67 port 29907 ssh2
Dec 6 22:47:39 vultr sshd[7950]: Failed password for root from 43.229.53.67 port 48386 ssh2
Dec 6 22:47:41 vultr sshd[7950]: Failed password for root from 43.229.53.67 port 48386 ssh2
Dec 6 22:47:43 vultr sshd[7950]: Failed password for root from 43.229.53.67 port 48386 ssh2
Dec 6 22:47:47 vultr sshd[7952]: Failed password for root from 43.229.53.67 port 62846 ssh2
Dec 6 22:47:49 vultr sshd[7952]: Failed password for root from 43.229.53.67 port 62846 ssh2
Da vidite koji su IP-ovi zabranjeni, koristite sljedeću naredbu.
iptables -L -n
Da biste izbrisali IP adresu s popisa zabranjenih, pokrenite sljedeću naredbu. Promijenite banned_ipna IP koji želite poništiti.
iptables -D f2b-SSH -s banned_ip -j DROP