Uvod
Korak 1: PF (vatrozid)
Korak 2: Crna listad
Korak 3: SSH
Završni korak
Uvod
Svaka usluga koja je povezana s internetom potencijalna je meta za napade grubom silom ili neopravdani pristup. Postoje alati poput fail2banili sshguard, ali oni su funkcionalno ograničeni jer samo analiziraju datoteke dnevnika. Blacklistd ima drugačiji pristup. Modificirani demoni poput SSH-a mogu se izravno povezati na crnu listu kako bi dodali nova pravila vatrozida.
Korak 1: PF (vatrozid)
Sidro je skup pravila i potrebno nam je jedno u našoj PF konfiguraciji. Da biste stvorili minimalni skup pravila, uredite /etc/pf.conftako da izgleda ovako:
set skip on lo0
scrub in on vtnet0 all fragment reassemble
anchor "blacklistd/*" in on vtnet0
block in all
pass out all keep state
antispoof for vtnet0 inet
pass in quick on vtnet0 inet proto icmp all icmp-type echoreq
pass in quick on vtnet0 proto tcp from any to vtnet0 port 22
Sada omogućite PFautomatsko pokretanje, uredite /etc/rc.conf:
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
Međutim, postoji još jedna stvar koju biste mogli prvo učiniti: testirajte svoja pravila kako biste bili sigurni da je sve točno. Za to koristite sljedeću naredbu:
pfctl -vnf /etc/pf.conf
Ako ova naredba prijavi pogreške, vratite se i prvo ih popravite!
Dobra je ideja provjeriti radi li sve kako je očekivano tako da sada ponovno pokrenete poslužitelj: shutdown -r now
Korak 2: Crna listad
IP-ovi su blokirani 24h. Ovo je zadana vrijednost i može se promijeniti u /etc/blacklistd:
# Blacklist rule
# adr/mask:port type proto owner name nfail disable
[local]
ssh stream * * * 3 24h
Uredite /etc/rc.confkako biste omogućili Blacklistd:
blacklistd_enable="YES"
blacklistd_flags="-r"
Pokrenite Blacklistd sljedećom naredbom:
service blacklistd start
Korak 3: SSH
Posljednja stvar koju trebamo učiniti je reći sshdda obavijestimo blacklistd. Dodajte UseBlacklist yesu svoju /etc/ssh/sshd_configdatoteku. Sada ponovno pokrenite SSH s service sshd restart.
Završni korak
Na kraju, pokušajte se prijaviti na svoj poslužitelj s nevažećom lozinkom.
Da biste dobili sve blokirane IP adrese, koristite jednu od sljedećih naredbi:
blacklistctl dump -bw
address/ma:port id nfail last access
150.x.x.x/32:22 OK 3/3 2017/x/x 04:43:03
115.x.x.x/32:22 OK 3/3 2017/x/x 04:45:40
91.x.x.x/32:22 OK 3/3 2017/x/x 07:51:16
54.x.x.x/32:22 OK 3/3 2017/x/x 12:05:57
pfctl -a blacklistd/22 -t port22 -T show
54.x.x.x
91.x.x.x
115.x.x.x
150.x.x.x
Za uklanjanje blokirane IP adrese morate koristiti naredbu pfctl. Na primjer:
pfctl -a blacklistd/22 -t port22 -T delete <IP>
Imajte na umu da blacklistctlće IP i dalje biti prikazan kao blokiran! Ovo je normalno ponašanje i nadamo se da će biti uklonjeno u budućim izdanjima.