summaryrefslogtreecommitdiff
path: root/roles/configure_iptables/templates
diff options
context:
space:
mode:
authorNiklas Yann Wettengel <niyawe@niyawe.de>2018-01-24 03:27:03 +0100
committerNiklas Yann Wettengel <niyawe@niyawe.de>2018-01-24 03:27:03 +0100
commit99dddff8625388641b9dd84b0e87a55f5c13bc82 (patch)
treeeb57e8113d70ed94f1ef6bc6575e3c62361259b6 /roles/configure_iptables/templates
parentd2270e2e5045fa1999e8712394e06c1ff27e6ab3 (diff)
ffrl uplink and fastd split
Diffstat (limited to 'roles/configure_iptables/templates')
-rw-r--r--roles/configure_iptables/templates/ip6tables.rules39
-rw-r--r--roles/configure_iptables/templates/iptables.rules39
2 files changed, 68 insertions, 10 deletions
diff --git a/roles/configure_iptables/templates/ip6tables.rules b/roles/configure_iptables/templates/ip6tables.rules
index 677e074..0f31387 100644
--- a/roles/configure_iptables/templates/ip6tables.rules
+++ b/roles/configure_iptables/templates/ip6tables.rules
@@ -4,12 +4,22 @@
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
+{% if 'fastd' in group_names %}
{% for site in sites %}
-A PREROUTING -i bat{{ site.name }} -j MARK --set-xmark 0x1/0xffffffff
{% endfor %}
-{% for peer in wireguard_bb_peers %}
--A PREROUTING -i bb{{ peer.name }} ! -s fe80::/64 ! -d fe80::/64 -j MARK --set-xmark 0x1/0xffffffff
+{% endif %}
+
+{% if 'ffrl_uplink' in group_names %}
+{% for peer in groups['fastd'] %}
+-A PREROUTING -i bb{{ hostvars[peer]['wireguard_bb_name'] }} ! -s fe80::/64 ! -d fe80::/64 -j MARK --set-xmark 0x1/0xffffffff
+{% endfor %}
+{% endif %}
+{% if 'fastd' in group_names %}
+{% for peer in groups['ffrl_uplink'] %}
+-A PREROUTING -i bb{{ hostvars[peer]['wireguard_bb_name'] }} ! -s fe80::/64 ! -d fe80::/64 -j MARK --set-xmark 0x1/0xffffffff
{% endfor %}
+{% endif %}
COMMIT
*filter
:INPUT DROP [0:0]
@@ -21,6 +31,8 @@ COMMIT
# SSH-Server
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
+
+{% if 'fastd' in group_names %}
# dns
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
@@ -33,19 +45,35 @@ COMMIT
-A INPUT -p udp -m udp --dport {{ site.wireguard_mesh_port }} -j ACCEPT
-A INPUT -s {{ site.wireguard_mesh_address }}/48 -p gre -j ACCEPT
{% endfor %}
+{% endif %}
# wireguard_backbone
--A INPUT -s fdff:4d59:4bbb::/48 -p gre -j ACCEPT
-{% for peer in wireguard_bb_peers %}
--A INPUT -i bb{{ peer.name }} -p udp --dport 6696 -j ACCEPT
+{% if 'ffrl_uplink' in group_names %}
+{% for peer in groups['fastd'] %}
+-A INPUT -i bb{{ hostvars[peer]['wireguard_bb_name'] }} -p udp --dport 6696 -j ACCEPT
{% endfor %}
+{% endif %}
+{% if 'fastd' in group_names %}
+{% for peer in groups['ffrl_uplink'] %}
+-A INPUT -i bb{{ hostvars[peer]['wireguard_bb_name'] }} -p udp --dport 6696 -j ACCEPT
+{% endfor %}
+{% endif %}
# MOSH
-A INPUT -p udp -m udp --dport 60000:61000 -j ACCEPT
+
+# ffrl bgp
+{% if 'ffrl_uplink' in group_names %}
+{% for peer in ffrl_peers %}
+-A INPUT -i {{ peer.name }} -p tcp -m tcp --dport 179 -j ACCEPT
+{% endfor %}
+{% endif %}
# LOG
-A INPUT -m limit --limit 2/min -j LOG --log-prefix "IP6Tables-Dropped input: " --log-level 4
+{% if 'fastd' in group_names %}
{% for site in sites %}
-A FORWARD -i bat{{ site.name }} -p udp --dport 10010:10021 -j REJECT
{% endfor %}
+{% endif %}
-A FORWARD -o {{ ansible_default_ipv6.interface }} -j REJECT
COMMIT
*nat
@@ -53,5 +81,4 @@ COMMIT
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
--A POSTROUTING -o mullvad -j MASQUERADE
COMMIT
diff --git a/roles/configure_iptables/templates/iptables.rules b/roles/configure_iptables/templates/iptables.rules
index 6da350c..d395a42 100644
--- a/roles/configure_iptables/templates/iptables.rules
+++ b/roles/configure_iptables/templates/iptables.rules
@@ -4,12 +4,22 @@
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
+{% if 'fastd' in group_names %}
{% for site in sites %}
-A PREROUTING -i bat{{ site.name }} -j MARK --set-xmark 0x1/0xffffffff
{% endfor %}
-{% for peer in wireguard_bb_peers %}
--A PREROUTING -i bb{{ peer.name }} -j MARK --set-xmark 0x1/0xffffffff
+{% endif %}
+
+{% if 'ffrl_uplink' in group_names %}
+{% for peer in groups['fastd'] %}
+-A PREROUTING -i bb{{ hostvars[peer]['wireguard_bb_name'] }} -j MARK --set-xmark 0x1/0xffffffff
+{% endfor %}
+{% endif %}
+{% if 'fastd' in group_names %}
+{% for peer in groups['ffrl_uplink'] %}
+-A PREROUTING -i bb{{ hostvars[peer]['wireguard_bb_name'] }} -j MARK --set-xmark 0x1/0xffffffff
{% endfor %}
+{% endif %}
COMMIT
*filter
:INPUT DROP [0:0]
@@ -21,6 +31,8 @@ COMMIT
# SSH-Server
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
+
+{% if 'fastd' in group_names %}
# dns
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
@@ -32,19 +44,38 @@ COMMIT
-A INPUT -p udp -m udp --dport 123 -j ACCEPT
# fastd
-A INPUT -p udp -m udp --dport 10010:10021 -j ACCEPT
+{% endif %}
# MOSH
-A INPUT -p udp -m udp --dport 60000:61000 -j ACCEPT
+
+{% if 'ffrl_uplink' in group_names %}
+# ffrl-gre
+{% for peer in ffrl_peers %}
+-A INPUT -p gre -s {{ peer.remote }} -j ACCEPT
+{% endfor %}
+# ffrl bgp
+{% for peer in ffrl_peers %}
+-A INPUT -i {{ peer.name }} -p tcp -m tcp --dport 179 -j ACCEPT
+{% endfor %}
+{% endif %}
+
-A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped input: " --log-level 4
+{% if 'fastd' in group_names %}
{% for site in sites %}
-A FORWARD -i bat{{ site.name }} -p udp --dport 10010:10021 -j REJECT
{% endfor %}
--A FORWARD -o {{ ansible_default_ipv4.interface }} -j REJECT
+{% endif %}
+
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
--A POSTROUTING -o mullvad -j MASQUERADE
+{% if 'ffrl_uplink' in group_names %}
+{% for peer in ffrl_peers %}
+-A POSTROUTING ! -s {{ ffrl_ip4 }} -o {{ peer.name }} -j SNAT --to-source {{ ffrl_ip4 }}
+{% endfor %}
+{% endif %}
COMMIT