domingo, 27 de agosto de 2017

Nola erabili OpenSSH blacklistd zerbitzuarekin FreeBSD 11.1ean

Orain arte, jende askok egiten duen moduan sshguard erabili dut SSH zerbitzua "bruteforce" erasoen aurka babesteko.

FreeBSD 11.1ek dakarren blacklistd erabili dezakegu. Honek beste zerbitzuak bidalitako jakinarazpenak entzuten ditu, eta ezarritako arauak betetzen badira PF suebakian behar den konfigurazioa sortuko du erasotzailea blokeatzeko. OpenSSHrekin erabil daitekeenez bere konfigurazioa egingo dugu:

PFren konfigurazioa (Firewall)

Blacklistd-k eta PF-k "anchor" bat erabiliko dute elkarrekin lan egiteko. "Anchor" bat arauen bilduma bat da, blacklistd-k dinamikoki sortuko duena. Oinarrizko /etc/pf.conf fitxategia ondorengoa izan daiteke:

set skip on lo0
scrub in on em0 all fragment reassemble
anchor "blacklistd/*" in on em0
block in all
pass out all keep state
antispoof for em0 inet
pass in quick on em0 inet proto icmp all icmp-type echoreq
pass in quick on em0 proto tcp from any to em0 port 22
Aurretik gaituta ez badugu, /etc/rc.conf fitxategian gehituko dugu
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"

Blacklistd

Defektuzko konfigurazioan, IP erasotzaileak 24 orduz blokeatzen dira 3 saiakeren ostean, aldatu dezakegu, edo defektuz utzi. Portaera aldatzeko /etc/blacklistd.conf fitxategia aldatu beharko genuke:

# Blacklist rule
# adr/mask:port    type        proto        owner        name        nfail        disable
[local]
ssh                        stream    *               *                *               3             24h

/etc/rc.conf fitxategian zerbitzua gaituko dugu:
blacklistd_enable="YES"
blacklistd_flags="-r"

OpenSSH

Amaitzeko, sshd-k gertatzen ari dena jakinarazi behar dio blacklistd-ri azken honek neurriak hartu ahal izateko, horretarako /etc/ssh/sshd_config fitxategian zera gehituko dugu:

UseBlacklist yes

Badabil?

Ondo dabilen egiaztatzeko gure zerbitzarian sartzen pasahitz oker batekin saiatuko gara. Blokeatutako helbideak ikusteko ondorengo komando bat erabiliko dugu:

blacklistctl dump -bw
edo:
pfctl -a blacklistd/22 -t port22 -T show
Blokeatutako IPa kentzeko pfctl erabiliko dugu:

pfctl -a blacklistd/22 -t port22 -T delete <IP> 

Whitelisting

Ondo dabilela probatu badugu, bururatuko zaigu batzutan makina bat baimenduta izan behar dugula (pentesting egiteko erabiltzen dugun makina, adibidez), nola egiten da hori blacklistd zerbitzuarekin? Erraza da, /etc/blacklistd.conf fitxategian honelako zerbait gehituko dugu:

# adr/mask:port    type        proto        owner        name        nfail        disable
[local]
_IP_HELBIDEA_:ssh  *               *               *                *               *             *

No hay comentarios:

Publicar un comentario