Prove di linux firewall – parte quarta

Ultima puntata, almeno per ora, su come impostare un firewall sulla nostra distribuzione linux. Dopo aver preso confidenza nelle precedenti puntate con il comando Iptables per creare un piccolo firewall a protezione della nostra distribuzione, ecco come unire insieme il tutto in uno script eseguibile che si avvia automaticamente all’accensione del pc. Editiamo pertanto lo script che io ho chiamato iptables-firewall.sh con il seguente comando:

# nano /etc/iptables-firewall.sh

Iniziamo a scrivere lo script:

#!/bin/bash
# VARIABILE PER IPTABLES #
IPT=”/sbin/iptables

# ANNULLO EVENTUALI REGOLE E CATENE PRECEDENTI #
$IPT -F
$IPT -X

# NUOVA POLICY TRAFFICO #
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# ABILITO TRAFFICO LOOPBACK #
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# IMPOSTO REGOLE PER PACCHETTI ICMP DI PING #
$IPT -A INPUT -p icmp –icmp-type echo-reply -m state –state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p icmp –icmp-type echo-request -m limit –limit 5/s -m state –state NEW -j ACCEPT
$IPT -A INPUT -p icmp –icmp-type destination-unreachable -m state –state NEW -j ACCEPT
$IPT -A INPUT -p icmp –icmp-type time-exceeded -m state –state NEW -j ACCEPT
$IPT -A INPUT -p icmp –icmp-type timestamp-request -m state –state NEW -j ACCEPT
$IPT -A INPUT -p icmp –icmp-type timestamp-reply -m state –state ESTABLISHED,RELATED -j ACCEPT

# BLOCCO CONNESSIONI SENZA SYN E PROTEZIONE ATTACCHI DoS #
$IPT -N syn-flood
$IPT -A INPUT -i eth0 -p tcp –syn -j syn-flood
$IPT -A syn-flood -m limit –limit 1/s –limit-burst 4 -j RETURN
$IPT -A syn-flood -j DROP
$IPT -A INPUT -p tcp ! –syn -m state –state NEW -j DROP

# CONSENTO TRAFFICO DA CONNESSIONI GIA’ STABILITE #
$IPT -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

# CONSENTO CONNESSIONI SSH SULLA PORTA 2222 #
$IPT -A INPUT -p tcp –dport 2222 -m state –state NEW -j ACCEPT

# AGGIUNGERE QUI TUTTE LE CONNESSIONI SULLE PORTE IN INGRESSO DA ABILITARE #

# FINE #

Questo script deve essere eseguibile e inoltre modificabile/editabile solo dall’utente root, cioè l’amministratore del pc in ambiente linux. E’ necessario pertanto dopo averlo salvato nella directory “/etc” cambiarne le proprietà con i seguenti comandi:

# chmod 700 /etc/iptables-firewall.sh

# chown root:root /etc/iptables-firewall.sh

Per fare in modo che ogni volta che si accende il pc, queste regole di firewall vengano caricate è necessario aggiungere un comando di caricamento al file di configurazione dell’interfaccia di rete pubblica. Editiamo pertanto il file con il comando:

#nano /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.0.111
netmask 255.255.255.0
gateway 192.168.0.1
dns-search somedomain.org
dns-nameservers 195.238.2.21 195.238.2.22
broadcast 192.168.0.0
pre-up /etc/iptables-firewall.sh

Aggiungiamo la riga evidenziata in grassetto, salviamo e riavviamo il pc. Le regole di Iptables saranno caricate e il firewall funzionante.

 

Tags: , , ,

Leave a Reply