[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