Hyrje në Fail2Ban
Instalimi i Fail2Ban
Konfigurimi i cilësimeve të Fail2Ban
Konfigurimi i Fail2Ban për të mbrojtur SSH
Nisja e shërbimit Fail2Ban
Si të gjurmoni përpjekjet e dështuara të hyrjes
Hyrje në Fail2Ban
Si parazgjedhje, një klient lidhet me SSH duke përdorur portën 22. Për shkak se ky është një port i njohur, konfigurimi i parazgjedhur është i cenueshëm ndaj shumë sulmeve me forcë brutale. Fail2Ban është një zgjidhje për të mbrojtur automatikisht një server nga këto sulme. Programi funksionon në sfond, skanon skedarët e regjistrit për të zbuluar se cilat IP po sulmojnë dhe automatikisht i ndalon ata të hyjnë në SSH.
Instalimi i Fail2Ban
Në këtë tutorial, ne do të instalojmë Fail2Ban në CentOS 6 përmes depove EPEL. Ekzekutoni komandat e mëposhtme.
yum install epel-release
yum install fail2ban
Shpjegim
yum install epel-release: Instalon depon e EPEL (Paketa Shtesë për Enterprise Linux).
yum install fail2ban: Instalon Fail2Ban nga depoja EPEL.
Konfigurimi i cilësimeve të Fail2Ban
Hapni skedarin e konfigurimit Fail2Ban.
nano /etc/fail2ban/jail.conf
Në skedar, do të shihni disa parametra siç tregohet më poshtë. Përshtatni ndonjë nga vlerat sipas nevojave tuaja.
[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
Shpjegim
ignoreip: Mos i ndaloni hostet që përputhen me një adresë në këtë listë. Mund të përcaktohen disa adresa duke përdorur ndarësin e hapësirës. Shkruani IP-në tuaj personale në këtë linjë.
bantime: Numri i sekondave që një host është i ndaluar.
findtime: Një host është i ndaluar nëse është krijuar maxretrygjatë fundit findtime.
maxretry: Numri i dështimeve përpara se një host të ndalohet.
Konfigurimi i Fail2Ban për të mbrojtur SSH
Së pari, ne duhet të krijojmë një skedar konfigurimi.
nano /etc/fail2ban/jail.local
Kopjoni rreshtat më poshtë dhe ngjisni në skedar.
[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: Aktivizoni mbrojtjen. Nëse dëshironi ta çaktivizoni, ndryshoni vlerën në false.
filter: Si parazgjedhje, është vendosur në sshd që i referohet skedarit /etc/fail2ban/filter.d/sshd.conf.
action: Fail2Ban do të ndalojë IP-në që përputhet me filtrin /etc/fail2ban/action.d/iptables.conf. Nëse e kishit ndryshuar portën SSH më parë, kaloni port=sshnë portën e re, për shembull port=2222. Nëse jeni duke përdorur portin 22, nuk do të keni nevojë të ndryshoni vlerën.
logpath: Rruga e skedarit të regjistrit të përdorur nga Fail2Ban.
maxretry: Numri maksimal i përpjekjeve të dështuara për hyrje.
Nisja e shërbimit Fail2Ban
Ekzekutoni këto dy komanda më poshtë për të nisur shërbimin Fail2Ban:
chkconfig --level 23 fail2ban on
service fail2ban start
Më në fund, kontrolloni iptablesnëse ka rregullat e shtuara nga Fail2Ban.
iptables -L
Rezultati do të duket i ngjashëm me këtë dalje.
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
Si të gjurmoni përpjekjet e dështuara të hyrjes
Ju mund ta përdorni këtë komandë për të kontrolluar nëse serveri juaj ka pasur përpjekje të dështuara për hyrje (sulme të mundshme).
cat /var/log/secure | grep 'Failed password'
Rezultati do të duket i ngjashëm me këto rreshta.
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
Për të parë se cilat IP janë ndaluar, përdorni komandën e mëposhtme.
iptables -L -n
Për të fshirë një adresë IP nga lista e ndaluar, ekzekutoni komandën e mëposhtme. Ndryshoni banned_ipnë IP-në që dëshironi të zhbllokoni.
iptables -D f2b-SSH -s banned_ip -j DROP