mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-28 03:33:25 +02:00
ipsec: Open ports in outgoing direction
When the firewall policy is blocked, no outgoing IPsec connections can be established. That is slightly counter-intuitive since we open ports in the incoming direction automatically. Fixes: #11704 Reported-by: Oliver Fuhrer <oliver.fuhrer@bluewin.ch> Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
@@ -63,6 +63,10 @@ void open_physical (char *interface, int nat_traversal_port) {
|
|||||||
safe_system(str);
|
safe_system(str);
|
||||||
sprintf(str, "/sbin/iptables --wait -A IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT", interface);
|
sprintf(str, "/sbin/iptables --wait -A IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT", interface);
|
||||||
safe_system(str);
|
safe_system(str);
|
||||||
|
sprintf(str, "/sbin/iptables --wait -D IPSECOUTPUT -p udp -o %s --dport 500 -j ACCEPT >/dev/null 2>&1", interface);
|
||||||
|
safe_system(str);
|
||||||
|
sprintf(str, "/sbin/iptables --wait -A IPSECOUTPUT -p udp -o %s --dport 500 -j ACCEPT", interface);
|
||||||
|
safe_system(str);
|
||||||
|
|
||||||
if (! nat_traversal_port)
|
if (! nat_traversal_port)
|
||||||
return;
|
return;
|
||||||
@@ -71,6 +75,10 @@ void open_physical (char *interface, int nat_traversal_port) {
|
|||||||
safe_system(str);
|
safe_system(str);
|
||||||
sprintf(str, "/sbin/iptables --wait -A IPSECINPUT -p udp -i %s --dport %i -j ACCEPT", interface, nat_traversal_port);
|
sprintf(str, "/sbin/iptables --wait -A IPSECINPUT -p udp -i %s --dport %i -j ACCEPT", interface, nat_traversal_port);
|
||||||
safe_system(str);
|
safe_system(str);
|
||||||
|
sprintf(str, "/sbin/iptables --wait -D IPSECOUTPUT -p udp -o %s --dport %i -j ACCEPT >/dev/null 2>&1", interface, nat_traversal_port);
|
||||||
|
safe_system(str);
|
||||||
|
sprintf(str, "/sbin/iptables --wait -A IPSECOUTPUT -p udp -o %s --dport %i -j ACCEPT", interface, nat_traversal_port);
|
||||||
|
safe_system(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ipsec_norules() {
|
void ipsec_norules() {
|
||||||
|
|||||||
Reference in New Issue
Block a user