Iptables und ipsec

Aus xinux.net
Zur Navigation springen Zur Suche springen

Verbinungsaufbau

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:46:55.688317 IP 10.82.227.22.500 > 10.82.227.12.500: isakmp: parent_sa ikev2_init[I]
10:46:55.789900 IP 10.82.227.12.500 > 10.82.227.22.500: isakmp: parent_sa ikev2_init[R]
10:46:55.846630 IP 10.82.227.22.500 > 10.82.227.12.500: isakmp: child_sa  ikev2_auth[I]
10:46:55.850998 IP 10.82.227.12.500 > 10.82.227.22.500: isakmp: child_sa  ikev2_auth[R]

Verschlüsselter Verkehr

10:47:28.011055 IP 10.82.227.22 > 10.82.227.12: ESP(spi=0xc25a59e4,seq=0x1), length 136
10:47:28.011282 IP 10.82.227.12 > 10.82.227.22: ESP(spi=0xc13ff7cb,seq=0x1), length 136
10:47:29.012067 IP 10.82.227.22 > 10.82.227.12: ESP(spi=0xc25a59e4,seq=0x2), length 136
10:47:29.012211 IP 10.82.227.12 > 10.82.227.22: ESP(spi=0xc13ff7cb,seq=0x2), length 136

Firewall Regeln

VPN Traffic

Eingehendes IKE erlauben
  • iptables -A INPUT -p udp --dport 500 -i $WANDEV -j ACCEPT -m state --state NEW
Ausgehend IKE erlauben
  • iptables -A OUTPUT -p udp --dport 500 -o $WANDEV -j ACCEPT -m state --state NEW
Eingehendes NAT-TRAVERSAL erlauben
  • iptables -A INPUT -p udp --dport 4500 -i $WANDEV -j ACCEPT -m state --state NEW
Ausgehend NAT-TRAVERSAL erlauben
  • iptables -A OUTPUT -p udp --dport 4500 -o $WANDEV -j ACCEPT -m state --state NEW
Eingehendes ESP erlauben
  • iptables -A INPUT -p esp -i $WANDEV -j ACCEPT -m state --state NEW
Ausgehend ESP erlauben
  • iptables -A OUTPUT -p esp -o $WANDEV -j ACCEPT -m state --state NEW

Realer Traffic

Verwenden des Policy Moduls
Funktion
Beim Entpacken des VPN Traffic wird das Paket mit dem TAG "ipsec" auf kernelebene markiert.
Dies kann später mit dem policy modul abgefragt werden.
Eingehender Traffic von dem andere Netz ins eigene erlauben
  • iptables -A FORWARD -i $WANDEV -o $LANDEV -s $DIENEN -d $LAN -m policy --dir in --pol ipsec -m state --state NEW -j ACCEPT
Ausgehender Traffic von dem eignen Netz ins andere erlauben
  • iptables -A FORWARD -i $LANDEV -o $WANDEV -s $LAN -d $DIENET -m policy --dir out --pol ipsec -m state --state NEW -j ACCEPT

Zu Bedenken

Verkehr der in den VPN Tunnel soll, muss vom SNAT ausgenommen werden.
  • iptables -t nat -A POSTROUTING -o $WANDEV -s $LAN -d $DIENET -j RETURN