Introducció
Pas 1: PF (tallafoc)
Pas 2: llista negra
Pas 3: SSH
Pas final
Introducció
Qualsevol servei que estigui connectat a Internet és un objectiu potencial per a atacs de força bruta o accés no garantit. Hi ha eines com fail2bano sshguard, però aquestes estan limitades funcionalment perquè només estan analitzant fitxers de registre. Blacklistd adopta un enfocament diferent. Els dimonis modificats com SSH poden connectar-se directament a blacklistd per afegir noves regles de tallafoc.
Pas 1: PF (tallafoc)
Un àncora és una col·lecció de regles i en necessitem una a la nostra configuració de PF. Per crear un conjunt de regles mínims, editeu /etc/pf.conf-lo perquè quedi així:
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
Ara habiliteu PFper començar automàticament, editeu /etc/rc.conf:
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
Tanmateix, hi ha una cosa addicional que potser voldreu fer primer: prova les teves regles per assegurar-te que tot sigui correcte. Per a això, utilitzeu l'ordre següent:
pfctl -vnf /etc/pf.conf
Si aquesta ordre informa d'errors, torneu enrere i solucioneu-los primer!
És una bona idea assegurar-se que tot funciona com s'esperava reiniciant el servidor ara: shutdown -r now
Pas 2: llista negra
Les IP estan bloquejades durant 24 hores. Aquest és el valor predeterminat i es pot canviar a /etc/blacklistd:
# Blacklist rule
# adr/mask:port type proto owner name nfail disable
[local]
ssh stream * * * 3 24h
Edita /etc/rc.confper habilitar Blacklistd:
blacklistd_enable="YES"
blacklistd_flags="-r"
Inicieu Blacklistd amb l'ordre següent:
service blacklistd start
Pas 3: SSH
Una darrera cosa que hem de fer és sshdavisar blacklistd. Afegeix UseBlacklist yesal teu /etc/ssh/sshd_configfitxer. Ara reinicieu SSH amb service sshd restart.
Pas final
Finalment, proveu d'iniciar sessió al vostre servidor amb una contrasenya no vàlida.
Per obtenir totes les IP bloquejades, utilitzeu una de les ordres següents:
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
Per eliminar una IP bloquejada, heu d'utilitzar l'ordre pfctl. Per exemple:
pfctl -a blacklistd/22 -t port22 -T delete <IP>
Tingueu en compte que blacklistctlencara mostrarà l'IP com a bloquejada! Aquest és un comportament normal i s'espera que s'elimini en futures versions.