Update to 2021-12-01 19:13

This commit is contained in:
Daniel Berteaud
2021-12-01 19:13:34 +01:00
commit 4c4556c660
2153 changed files with 60999 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
---
# Should iptables be managed
iptables_manage: yes
# Default rules
iptables_default_head: |
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N LOGDENY
-A LOGDENY -m limit --limit 10/s -j LOG --log-prefix 'Firewall: '
-A LOGDENY -j REJECT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 22 -s {{ trusted_ip | default(['0.0.0.0/0']) | join(',') }} -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
iptables_default_tail: |
-A INPUT -j LOGDENY
-A FORWARD -j LOGDENY
iptables_custom_rules: []
# Example:
# iptables_custom_rules:
# - name: open_port_12345 # 'iptables_custom_rules_' will be prepended to this
# rules: "-A INPUT -p tcp --dport 12345 -j ACCEPT"
# state: present
# weight: 40
# ipversion: 4
# table: filter
#
# NOTE: 'name', 'rules' and 'state' are required, others are optional.
# By default this role deletes all iptables rules which are not managed by Ansible.
# Set this to 'yes', if you want the role to keep unmanaged rules.
iptables_keep_unmanaged: no
...

View File

@@ -0,0 +1,16 @@
---
- name: Install packages
apt: name=iptables-persistent
tags: firewall
- name: Use iptables-legacy
alternatives:
name: "{{ item.key }}"
path: "{{ item.value }}"
with_dict:
iptables: /usr/sbin/iptables-legacy
ip6tables: /usr/sbin/ip6tables-legacy
when: ansible_distribution_major_version | int >= 10
tags: firewall

View File

@@ -0,0 +1,10 @@
---
- name: Remove firewalld
yum: name=firewalld state=absent
tags: firewall
- name: Install packages
yum: name=iptables-services
tags: firewall

View File

@@ -0,0 +1,36 @@
---
- include: install_{{ ansible_os_family }}.yml
- name: Set custom iptables rules
iptables_raw:
name: "iptables_custom_rules_{{ item.name }}"
rules: "{{ item.rules }}"
state: "{{ item.state | default('present') }}"
weight: "{{ item.weight | default(omit) }}"
table: "{{ item.table | default(omit) }}"
loop: "{{ iptables_custom_rules }}"
tags: firewall
- name: Set default iptables head rules
iptables_raw:
name: iptables_default_head
weight: 10
keep_unmanaged: "{{ iptables_keep_unmanaged }}"
state: present
rules: "{{ iptables_default_head }}"
tags: firewall,ssh
- name: Set default iptables tail rules
iptables_raw:
name: iptables_default_tail
weight: 99
keep_unmanaged: "{{ iptables_keep_unmanaged }}"
state: "{{ (iptables_default_tail != '' ) | ternary('present', 'absent') }}"
rules: "{{ iptables_default_tail }}"
tags: firewall
- name: Enable iptable service
service: name=iptables state=started enabled=yes
when: ansible_os_family == 'RedHat'
tags: firewall