Un dels elements fonamentals per un servidor connectat a internet és el firewall o tallafocs. La seua funció és limitar l’impacte d’una mala utilització dels usuaris de la xarxa contra el teu ordinador que tant t’ha costat d’instal·lar i configurar. Clar, si vols que la teua informació estiga disponible per als visitants cal que obrigues els ports corresponents als serveis que vulgues compartir, es a dir, obrir el port 80 per al servei http, el 443 per a https (cada volta més imprescindible), el port 25 i 110 per al correu, el 22 si vols tindre accés i administració remota, etcètera. El tallafocs serà qui regule amb quins ports es pot accedir i com han de dirigir-se els paquets d’informació.
Internet és la xarxa mundial i entre els usuaris hi ha que vols provar els seus coneixement o qui vol aprofitar les instal·lacions d’altres per a fer els seus experiments o activitats no autoritzades. Si és delicte o no, cal que ho diga un jutge.
Davant la situació de rebre un atac i identifiques la ip corresponent tens la opció de fer manualment una regla que bloquege eixa adreça d’internet o ip. La regla per a bloquejar una ip a iptables es:
iptables -I INPUT -s xx.xx.xx.xx -j DROP
Ara bé, vull pensar que tens vida i que vols dormir, menjar, caminar i ser amb les persones que estimes. És molt difícil que pugues vigilar vint-i-quatre hores al dia durant cada dia les connexions del teu servidor. I ara? Que podem fer?
Senzill, trobar un programa que ho faça de forma automàtica. I el programa més conegut i més eficient és fail2ban. Pots instal·lar les últimes versions, a hores d’ara va camí de a versió 0.11, o cercar-la al programari de la teua distribució de linux. Està disponible a diversos repositoris com ara les basades en Debian on només cal que utilitzes aquest codi per instal·lar-lo al teu computador:
apt-get install fail2ban
La versió disponible és la 0.10 que representa un canvi amb la 0.8 que era l’anterior més utilitzada. Per exemple, et recomane que utilitzes la utilitat fail2ban-regex per verificar que els filtres, fets amb tota la bona intenció, analitzen correctament les errades al teu servidor.
Un exemple:
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf -v
I com és inevitable, el resultat de la consulta:

De vegades et convé afegir cadenes de filtre per missatges que actualment son ignorats i poden alertar d’activitats problemàtiques.
Per exemple, al meu filtre de sshd he afegit la següent línia:
^%(__prefix_line)sBad protocol version identification.from .$
Evidentment és una decisió de filtratge molt agressiva ja que la connexió no s’ha arribat a establir. Però així estic més tranquil.
Una volta comprovar els filtres a activar cal fer el fitxer jail.local on hi ha que definir els filtres que activaràs:
[sshd]
enabled = true
backend = auto
port = ssh
logpath = %(sshd_log)s
action = iptables-new
En el cas del filtre ssh no cal cap configuració més. Ara bé si vols bloquejar el port adient per a un bloqueig de una mala utilització del servidor web apache, segurament voldràs especificar el port a bloquejar i caldrà afegir aquest tipus de línia:
action = iptables-new[port=http,https]
Amb això bloquejaràs només el port corresponent a l’atac rebut.
Una volta tingues tots els filtres que vulgues activar definits, cal que escrigues:
fail2ban-client reload
Si la resposta es OK
tot va bé i endavant.
Una volta en marxa, si vols saber quantes deteccions ha fet cada filtre cal aquesta línia:
fail2ban-client status
per a veure els filtres activats
fail2ban-client status sshd
per veure el nombre de ip detectades, les que encara no han arribat al màxim d’intents, i les bloquejades que ja les han superades.
Si a més de consultar la situació en que es troben els filtres o vols dotorejar sobre les ip, a quina hora s’ha fet el bloqueig, d’on venen i quantes voltes has bloquejat eixa ip, dispose d’una utilitat fail2mysql que permet ingressar a una base de dades la ip, la ubicació geogràfica i la data del primer i del últim registre.
Però això serà un escrit per a un altre dia.