aboutsummaryrefslogtreecommitdiff
path: root/os/config/roles/network
diff options
context:
space:
mode:
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