Iptables und ipsec: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Verbinungsaufbau= <pre> tcpdump: verbose output suppressed, use -v[v]... for full protocol decode listening on eth0, link-type EN10MB (Ethernet), snapshot len…“)
 
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 18: Zeile 18:
 
==VPN Traffic==
 
==VPN Traffic==
 
;Eingehendes IKE erlauben
 
;Eingehendes IKE erlauben
*iptables -I INPUT -p udp --dport 500 -i $WANDEV -j ACCEPT  -m state --state NEW
+
*iptables -A INPUT -p udp --dport 500 -i $WANDEV -j ACCEPT  -m state --state NEW
 
;Ausgehend IKE erlauben
 
;Ausgehend IKE erlauben
*iptables -I OUTPUT -p udp --dport 500 -o $WANDEV -j ACCEPT  -m state --state NEW
+
*iptables -A OUTPUT -p udp --dport 500 -o $WANDEV -j ACCEPT  -m state --state NEW
 
;Eingehendes NAT-TRAVERSAL erlauben
 
;Eingehendes NAT-TRAVERSAL erlauben
*iptables -I INPUT -p udp --dport 4500 -i $WANDEV -j ACCEPT  -m state --state NEW
+
*iptables -A INPUT -p udp --dport 4500 -i $WANDEV -j ACCEPT  -m state --state NEW
 
;Ausgehend NAT-TRAVERSAL erlauben
 
;Ausgehend NAT-TRAVERSAL erlauben
*iptables -I OUTPUT -p udp --dport 4500 -o $WANDEV -j ACCEPT  -m state --state NEW
+
*iptables -A OUTPUT -p udp --dport 4500 -o $WANDEV -j ACCEPT  -m state --state NEW
 
;Eingehendes ESP erlauben
 
;Eingehendes ESP erlauben
*iptables -I INPUT  -p esp -i $WANDEV -j ACCEPT  -m state --state NEW
+
*iptables -A INPUT  -p esp -i $WANDEV -j ACCEPT  -m state --state NEW
 
;Ausgehend ESP erlauben
 
;Ausgehend ESP erlauben
*iptables -I OUTPUT -p esp -o $WANDEV -j ACCEPT  -m state --state NEW
+
*iptables -A OUTPUT -p esp -o $WANDEV -j ACCEPT  -m state --state NEW
 +
 
 
==Realer Traffic==
 
==Realer Traffic==
 
;Verwenden des Policy Moduls
 
;Verwenden des Policy Moduls
Zeile 34: Zeile 35:
 
;Beim Entpacken des VPN Traffic wird das Paket mit dem TAG "ipsec" auf kernelebene markiert.
 
;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.
 
;Dies kann später mit dem policy modul abgefragt werden.
;Eingehender Traffic von dem anderen Netz ins eigene erlauben
+
;Eingehender Traffic von dem andere Netz ins eigene erlauben
*iptables -A FORWARD -i $LANDEV -o $WANDEV -s $LEFTNET -d $RIGHTNET -m policy --dir out --pol ipsec -m state --state NEW -j ACCEPT
+
*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
 
;Ausgehender Traffic von dem eignen Netz ins andere erlauben
*iptables -A FORWARD -i $WANDEV -o $LANDEV -s $RIGHTNET -d $LEFTNET -m policy --dir in  --pol ipsec -m state --state NEW -j ACCEPT
+
*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

Aktuelle Version vom 9. Dezember 2022, 06:16 Uhr

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