Prove di linux firewall – parte seconda

Secondo appuntamento di studio con la creazione di un firewall linux. Nel primo post abbiamo visto una soluzione (funzionante ma incompleta) su come implementare un firewall a protezione per esempio di un server Debian.

C’è però un piccolo problema con quella soluzione: tutto il traffico di controllo icmp verso il server è scartato (drop) perché non è stata creata nessuna regola che permetta questo tipo di traffico in ingresso. Per esempio se volessimo controllare che il server è attivo con il comando Ping non funzionerebbe perché il firewall del server scarterebbe i pacchetti in quanto ping funziona con il protocollo icmp.

Ecco allora la necessità di inserire nuove regole di filtraggio nella catena di INPUT che permettano il traffico icmp:

IPTABLES -A INPUT -p icmp –icmp-type echo-reply -m state –state ESTABLISHED,RELATED -j ACCEPT
IPTABLES -A INPUT -p icmp –icmp-type echo-request -m limit –limit 5/s -m state –state NEW -j ACCEPT
IPTABLES -A INPUT -p icmp –icmp-type destination-unreachable -m state –state NEW -j ACCEPT
IPTABLES -A INPUT -p icmp –icmp-type time-exceeded -m state –state NEW -j ACCEPT
IPTABLES -A INPUT -p icmp –icmp-type timestamp-request -m state –state NEW -j ACCEPT
IPTABLES -A INPUT -p icmp –icmp-type timestamp-reply -m state –state ESTABLISHED,RELATED -j ACCEPT

Con queste regole permettiamo il traffico icmp nuovo (NEW) o che è già stabilito o ha relazioni (ESTABLISHED, RELATED) con traffico già richiesto. Una nota importante è il secondo comando con limit 5/s che stabilisce appunto un limite di 5 pacchetti/secondo oltre il quale il traffico viene scartato. Questa regola ci protegge in parte da attacchi di tipo DoS (Denial of Service) su Ping.

Ecco che il nostro firewall inizia a prendere forma. Mancano ancora delle regole per proteggere adeguatamente il nostro server da attacchi DoS e sicurezze varie.

Insomma: ci sarà sicuramente una terza puntata.

 

Tags: , , ,

Leave a Reply