IPsec und die Firewall: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „{{#drawio:ipsec-firewall}}“)
 
K (Linkai.zhang verschob die Seite Ipsec und die Firewall nach IPsec und die Firewall, ohne dabei eine Weiterleitung anzulegen)
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
[[Kategorie:IPsec]]
 
{{#drawio:ipsec-firewall}}
 
{{#drawio:ipsec-firewall}}
 +
 +
= iptables =
 +
* Diese Regeln gehen davon aus, dass $LEFTNET das eigene Netz ist
 +
* Ein Skript sollte die Befehle nach existierenden Regeln sortieren
 +
 +
<syntaxhighlight lang="bash">
 +
iptables -A INPUT -m multiport -p udp --dport 500,4500 -o $WANDEV -j ACCEPT
 +
iptables -A INPUT -i $WANDEV -p esp -j ACCEPT
 +
iptables -A OUTPUT -m multiport -p udp --dport 500,4500 -o $WANDEV -j ACCEPT
 +
iptables -A OUTPUT -i $WANDEV -p esp -j ACCEPT
 +
iptables -A FORWARD -i $WANDEV -o $LANDEV -m policy --dir in --pol ipsec -j ACCEPT
 +
iptables -A FORWARD -i $LANDEV -o $WANDEV -m policy --dir out --pol ipsec -j ACCEPT
 +
iptables -t nat -A PREROUTING -i $WANDEV -s $RIGHTNET -j RETURN
 +
iptables -t nat -A POSTROUTING -s $LEFTNET -o $WANDEV -d $RIGHTNET -j RETURN
 +
</syntaxhighlight>
 +
 +
= nftables =
 +
* Diesselben Annahmen wie bei '''iptables'''
 +
* '''vim ''/etc/nftables.conf'' '''
 +
 +
table inet filter {
 +
chain input {
 +
type filter hook input priority 0; policy drop;
 +
iif $wandev udp dport { 500, 4500 } accept
 +
iif $wandev ip protocol esp accept
 +
}
 +
chain output {
 +
type filter hook output priority 0; policy drop;
 +
oif $wandev udp dport { 500, 4500 } accept
 +
oif $wandev ip protocol esp accept
 +
}
 +
chain forward {
 +
type filter hook forward priority 0; policy drop;
 +
iif $wandev oif $landev ipsec in ip daddr $leftnet accept
 +
iif $landev oif $wandev ipsec in ip daddr $rightnet accept
 +
}
 +
}
 +
table inet nat {
 +
chain prerouting {
 +
type nat hook prerouting priority -100;
 +
iif $wandev ip saddr $rightnet return
 +
}
 +
chain postrouting {
 +
type nat hook postrouting priority 100;
 +
oif $wandev ip saddr $leftnet ip daddr $rightnet return
 +
}
 +
}

Aktuelle Version vom 18. September 2024, 21:17 Uhr

iptables

  • Diese Regeln gehen davon aus, dass $LEFTNET das eigene Netz ist
  • Ein Skript sollte die Befehle nach existierenden Regeln sortieren
iptables -A INPUT -m multiport -p udp --dport 500,4500 -o $WANDEV -j ACCEPT
iptables -A INPUT -i $WANDEV -p esp -j ACCEPT
iptables -A OUTPUT -m multiport -p udp --dport 500,4500 -o $WANDEV -j ACCEPT
iptables -A OUTPUT -i $WANDEV -p esp -j ACCEPT
iptables -A FORWARD -i $WANDEV -o $LANDEV -m policy --dir in --pol ipsec -j ACCEPT
iptables -A FORWARD -i $LANDEV -o $WANDEV -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A PREROUTING -i $WANDEV -s $RIGHTNET -j RETURN
iptables -t nat -A POSTROUTING -s $LEFTNET -o $WANDEV -d $RIGHTNET -j RETURN

nftables

  • Diesselben Annahmen wie bei iptables
  • vim /etc/nftables.conf
table inet filter {
	chain input {
		type filter hook input priority 0; policy drop;
		iif $wandev udp dport { 500, 4500 } accept
		iif $wandev ip protocol esp accept
	}
	chain output {
		type filter hook output priority 0; policy drop;
		oif $wandev udp dport { 500, 4500 } accept
		oif $wandev ip protocol esp accept
	}
	chain forward {
		type filter hook forward priority 0; policy drop;
		iif $wandev oif $landev ipsec in ip daddr $leftnet accept
		iif $landev oif $wandev ipsec in ip daddr $rightnet accept
	}
}
table inet nat {
	chain prerouting {
		type nat hook prerouting priority -100;
		iif $wandev ip saddr $rightnet return
	}
	chain postrouting {
		type nat hook postrouting priority 100;
		oif $wandev ip saddr $leftnet ip daddr $rightnet return
	}
}