diff --git a/deploy.yml b/deploy.yml index 21b0252..2b44d10 100644 --- a/deploy.yml +++ b/deploy.yml @@ -31,3 +31,15 @@ apt: name: python3-pip state: latest + + + - name: add docker rules to ufw + blockinfile: + path: /etc/ufw/after.rules + marker_begin: BEGIN UFW AND DOCKER + marker_end: END UFW AND DOCKER + state: present + block: "{{ lookup('ansible.builtin.file', 'ufw-docker.rules') }}" + tags: + - ufw + diff --git a/files/ufw-docker.rules b/files/ufw-docker.rules new file mode 100644 index 0000000..aac6bd7 --- /dev/null +++ b/files/ufw-docker.rules @@ -0,0 +1,25 @@ +*filter +:ufw-user-forward - [0:0] +:ufw-docker-logging-deny - [0:0] +:DOCKER-USER - [0:0] +-A DOCKER-USER -j ufw-user-forward + +-A DOCKER-USER -j RETURN -s 10.0.0.0/8 +-A DOCKER-USER -j RETURN -s 172.16.0.0/12 +-A DOCKER-USER -j RETURN -s 192.168.0.0/16 + +-A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN + +-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16 +-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8 +-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12 +-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 192.168.0.0/16 +-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 10.0.0.0/8 +-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 172.16.0.0/12 + +-A DOCKER-USER -j RETURN + +-A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW DOCKER BLOCK] " +-A ufw-docker-logging-deny -j DROP + +COMMIT