aboutsummaryrefslogtreecommitdiff
path: root/os/config/roles/network
diff options
context:
space:
mode:
authorQuentin <quentin@deuxfleurs.fr>2020-09-13 12:03:07 +0200
committerQuentin <quentin@deuxfleurs.fr>2020-09-13 12:03:07 +0200
commit484c3fe667cd8c5a647256cb78f05c8a39b835b1 (patch)
tree7be3c868ce1d0e0c96125a4c94cadce429be9e1d /os/config/roles/network
parent0550647b9348d1e36431400e0832b4340564c658 (diff)
parentd5bfc38fe826aa12f46de64790195cc8e76756de (diff)
downloadinfrastructure-484c3fe667cd8c5a647256cb78f05c8a39b835b1.tar.gz
infrastructure-484c3fe667cd8c5a647256cb78f05c8a39b835b1.zip
Merge branch 'feature/rebase'
Diffstat (limited to 'os/config/roles/network')
-rw-r--r--os/config/roles/network/files/rules.v612
-rw-r--r--os/config/roles/network/tasks/main.yml11
-rw-r--r--os/config/roles/network/templates/rules.v4.j236
3 files changed, 59 insertions, 0 deletions
diff --git a/os/config/roles/network/files/rules.v6 b/os/config/roles/network/files/rules.v6
new file mode 100644
index 0000000..17ff71c
--- /dev/null
+++ b/os/config/roles/network/files/rules.v6
@@ -0,0 +1,12 @@
+# WARNING!! When rules.{v4,v6} are changed, the whole iptables configuration is reloaded.
+# This creates issues with Docker, which injects its own configuration in iptables when it starts.
+# In practice, most (all?) containers will break if rules.{v4,v6} are changed,
+# and docker will have to be restared.
+
+
+*filter
+:INPUT DROP [0:0]
+:FORWARD DROP [0:0]
+:OUTPUT ACCEPT [0:0]
+COMMIT
+
diff --git a/os/config/roles/network/tasks/main.yml b/os/config/roles/network/tasks/main.yml
new file mode 100644
index 0000000..1443e0c
--- /dev/null
+++ b/os/config/roles/network/tasks/main.yml
@@ -0,0 +1,11 @@
+- name: "Deploy iptablesv4 configuration"
+ template: src=rules.v4.j2 dest=/etc/iptables/rules.v4
+
+- name: "Deploy iptablesv6 configuration"
+ copy: src=rules.v6 dest=/etc/iptables/rules.v6
+
+- name: "Activate IP forwarding"
+ sysctl:
+ name: net.ipv4.ip_forward
+ value: "1"
+ sysctl_set: yes
diff --git a/os/config/roles/network/templates/rules.v4.j2 b/os/config/roles/network/templates/rules.v4.j2
new file mode 100644
index 0000000..a446139
--- /dev/null
+++ b/os/config/roles/network/templates/rules.v4.j2
@@ -0,0 +1,36 @@
+*filter
+:INPUT DROP [0:0]
+:FORWARD DROP [0:0]
+:OUTPUT ACCEPT [0:0]
+
+# Administration
+-A INPUT -p tcp --dport 22 -j ACCEPT
+
+# Cluster
+-A INPUT -s 192.168.1.254 -j ACCEPT
+-A INPUT -s 82.253.205.190 -j ACCEPT
+{% for selected_host in groups['cluster_nodes'] %}
+-A INPUT -s {{ hostvars[selected_host]['public_ip'] }} -j ACCEPT
+-A INPUT -s {{ hostvars[selected_host]['private_ip'] }} -j ACCEPT
+{% endfor %}
+
+# Local
+-A INPUT -i docker0 -j ACCEPT
+-A INPUT -s 127.0.0.1/8 -j ACCEPT
+-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
+COMMIT
+
+*nat
+:PREROUTING ACCEPT [0:0]
+:INPUT ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+:POSTROUTING ACCEPT [0:0]
+COMMIT
+
+*mangle
+:PREROUTING ACCEPT [0:0]
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+:POSTROUTING ACCEPT [0:0]
+COMMIT