FreeSwan + IPTables

Michal Kubecek mike na mk-sys.cz
Úterý Červenec 6 20:16:14 CEST 2004


On Tue, Jul 06, 2004 at 06:11:18PM +0200, Marcel Mazáč wrote:
> Nemate nejaky ukázkový firewall se kterym to funguje ?
> Zkousel jsem toho hodne, vicemene se s tim patlam uz
> 2 dny. Ani podle popisu z netu jsem to nerozchodil.

Jste si opravdu jistý, že je problém v nastavení netfilteru? Pokud jsem
si všiml, všechny zahozené pakety logujete, takže byste v tom logu měl
vidět, pokud filtr zahazuje něco, co nemá. Neděláte náhodou klasickou
chybu, že nastavíte IPsec jako tunel mezi dvěma lokálními sítěmi a pak
zkoušíte ping z gatewaye na gateway?

Taková minimalistická varianta by mohla být třeba

------------------------------------------------------------------------
INTIF=eth0
INTIP=10.0.0.1
INTNR=10.0.0.0/24

EXTIF=eth1
EXTIP=111.111.111.111
EXTNR=111.111.111.64/26

VPNIF=ipsec0
VPNNR=10.0.1.0/24

echo 0 > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -N servers
iptables -A servers -p icmp -m limit --limit 4/s --limit-burst 10/s -j ACCEPT
iptables -A servers -p tcp --dport ssh -j ACCEPT
iptables -A servers -p ah -j ACCEPT # obvykle není nutné
iptables -A servers -p esp -j ACCEPT
iptables -A servers -p udp --dport 500 -j ACCEPT
# případně další služby

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED ACCEPT
iptables -A INPUT -i $EXTIF -d $EXTIP -j servers
iptables -A INPUT -j LOG --log-prefix '<INPUT> '

iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -A FORWARD -i $INTIF -o $VPNIF -j ACCEPT
iptables -A FORWARD -i $VPNIF -o $INTIF -j ACCEPT

iptables -P OUTPUT ACCEPT

iptables -t nat -A POSTROUTING -s $INTNR -o $EXTIF -j SNAT --to $EXTIP
------------------------------------------------------------------------

Je to psáno z hlavy, takže jsou tam určitě nějaké překlepy a něco jsem
nejspíš přehlédl. Takhle to povoluje přes IPsec veškerou komunikaci oběma
směry, pokud chcete povolit jen něco, musíte to upravit. Pokud vám stačí
jen jeden tunel, je také možné povolit AH/ESP/ISAKMP pakety jen z protější
gatewaye.

                                                           Michal Kubeček
 


Další informace o konferenci Linux