[PLUTO-help] Script iptables
Gianluca Di Carlo
gianluca a letreporte.it
Ven 11 Giu 2004 14:27:29 CEST
Salve, ho creato lo script seguente da mettere su una macchina linux che
funge da firewall. La rete interna è 192.168.0.0/24, mentre l'accesso a
internet avviene tramite un router con ip 192.168.1.254. La rete 192.168.1
0/24 è la rete tra il router e il firewall linux, che ha due schede di rete:
eth0 (192.168.0.1) che è collegato alla rete locale e eth1 (192.168.1.1) che
è collegata al router. Lanciando lo script seguente durante il boot poi dai
client riesco ad accedere ad internet (tramite il server proxy che gira sul
firewall) ma non riesco a leggere la posta tramite pop3.
Come mai? Ho abilitato la porta 110. Non basta?
Come lo valutate questo script?
#!/bin/bash
set -x
# Configurazioni iniziali
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
for a in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $a
done
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/tcp_ecn
for table in nat mangle filter
do
iptables -t $table -F
iptables -t $table -X
done
(
for interface in eth0 eth1
do
ip route flush dev $interface
ip addr flush dev $interface
ip link set down dev $interface
done;
) &>/dev/null
rSegr=192.168.0.1/24
rInet=192.168.1.1/24
addrFRinet=192.168.1.1
DNS=192.168.0.1
## Confiurazione indirizzi ip
# Rete segreteria
ip addr add $rSegr dev eth0
# Router internet
ip addr add $rInet dev eth1
## Configurazione iptables
# Politica di dafault (non accettiamo nulla)
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Catene iniziali
iptables -N LogInDrop #log delle connessioni bloccate
iptables -N LogFwDrop #log delle connessioni bloccate
iptables -N SegrRinet #dalla scheda di rete eth0 alla scheda di rete
eth1
iptables -N RinetSegr #dalla scheda di rete eth1 alla scheda di rete
eth0
iptables -A LogInDrop -j LOG --log-level 5 --log-prefix '[IPTABLES INPUT
DROP]:'
iptables -A LogInDrop -j DROP
iptables -A LogFwDrop -j LOG --log-level 5 --log-prefix '[IPTABLES FW DROP]:
iptables -A LogFwDrop -j DROP
iptables -A FORWARD -i eth0 -o eth1 -j SegrRinet
iptables -A FORWARD -i eth1 -o eth0 -j RinetSegr
# Regole dalla rete Segreteria al Router Internet
iptables -A SegrRinet -s ! $rSegr -j DROP # blocca tutti
gli accessi al router che non provengono alla Segreteria
iptables -A SegrRinet -p tcp -d $DNS --dport domain -j ACCEPT # accetta
connessioni per DNS esterni
iptables -A SegrRinet -p udp -d $DNS --dport domain -j ACCEPT # accetta
connessioni per DNS esterni
iptables -A SegrRinet -p tcp --dport smtp -j ACCEPT # posta in
uscita (smtp)
iptables -A SegrRinet -p tcp --dport pop3 -j ACCEPT # posta in
entrata (pop3)
iptables -A SegrRinet -p tcp --dport ftp -j ACCEPT # ftp
iptables -A SegrRinet -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A SegrRinet -p tcp -j REJECT --reject-with tcp-reset
# Regole dal Router Internet alla rete Segreteria
iptables -A RinetSegr -s $rSegr -j DROP # blocco tutte le connessioni
esterne con gli ip privati
iptables -A RinetSegr -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A RinetSegr -p tcp -j REJECT --reject-with tcp-reset
# Regole per il traffico generato dal Firewall
iptables -A INPUT -m limit --limit 10/min -p tcp --syn --dport ssh -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
for i in ssh domain http netbios-ns netbios-dgm netbios-ssn https
microsoft-ds 10000 3128
do
iptables -A INPUT -s $rSegr -p tcp --dport $i -j ACCEPT
iptables -A INPUT -s $rSegr -p udp --dport $i -j ACCEPT
done
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT #se non metto questa dai client non
riesco ad accedere ad internet, dipende da squid?
for i in netbios-ns netbios-dgm netbios-ssn 10000 3128
do
iptables -A OUTPUT -d $rSegr -p tcp --sport $i -j ACCEPT
iptables -A OUTPUT -d $rLab -p tcp --sport $i -j ACCEPT
iptables -A OUTPUT -d $rSegr -p udp --sport $i -j ACCEPT
iptables -A OUTPUT -d $rLab -p udp --sport $i -j ACCEPT
done
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j SNAT --to
$addrFRinet
ip link set up dev eth0
ip link set up dev eth1
ip route add default via 192.168.1.254
echo 1 > /proc/sys/net/ipv4/ip_forward
More information about the pluto-help
mailing list