mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-09-13 11:04:52 +02:00
Update to 2021-12-01 19:13
This commit is contained in:
42
roles/iptables/defaults/main.yml
Normal file
42
roles/iptables/defaults/main.yml
Normal 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
|
||||
|
||||
...
|
16
roles/iptables/tasks/install_Debian.yml
Normal file
16
roles/iptables/tasks/install_Debian.yml
Normal 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
|
||||
|
10
roles/iptables/tasks/install_RedHat.yml
Normal file
10
roles/iptables/tasks/install_RedHat.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
|
||||
- name: Remove firewalld
|
||||
yum: name=firewalld state=absent
|
||||
tags: firewall
|
||||
|
||||
- name: Install packages
|
||||
yum: name=iptables-services
|
||||
tags: firewall
|
||||
|
36
roles/iptables/tasks/main.yml
Normal file
36
roles/iptables/tasks/main.yml
Normal 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
|
Reference in New Issue
Block a user