dubzland.shorewall
Dubzland: Shorewall
Instaluje i konfiguruje zaporę ogniową Shorewall.
Wymagania
Wersja Ansible 2.0 lub wyższa. Wymaga pakietu python netaddr
.
Zmienne roli
Dostępne zmienne są wymienione poniżej wraz z ich wartościami domyślnymi (więcej informacji w defaults/main.yml
):
dubzland_shorewall_conf
dubzland_shorewall_conf:
startup_enabled: "Tak"
verbosity: 1
log_level: '"info"'
log_martians: "Tak"
log_verbosity: 2
log_zone: Oba
logfile: /var/log/shorewall
logformat: '"%s(%d) %s "'
Opcje do ustawienia w /etc/shorewall/shorewall.conf
. Nazwy opcji można podawać zarówno wielkimi, jak i małymi literami (zostaną zapisane wielkimi literami w pliku). Więcej informacji w stronie podręcznika shorewall.conf.
dubzland_shorewall_params
dubzland_shorewall_params: []
Lista par klucz-wartość do zapisania w /etc/shorewall/params
. Więcej informacji o używaniu params
w stronie podręcznika.
dubzland_shorewall_zones
dubzland_shorewall_zones:
- name: fw
type: firewall
- name: net
type: ipv4
- name: lan
type: ipv4
Strefy do zadeklarowania w /etc/shorewall/zones
. Więcej informacji w stronie podręcznika.
dubzland_shorewall_interfaces
dubzland_shorewall_interfaces:
- name: eth0
zone: net
options:
- tcpflags
- nosmurfs
- routefilter
- "sourceroute=0"
- name: eth1
zone: lan
options:
- tcpflags
- nosmurfs
- routefilter
Lista interfejsów, które Shorewall powinien skonfigurować w /etc/shorewall/interfaces
. Więcej informacji w stronie podręcznika.
dubzland_shorewall_hosts
dubzland_shorewall_hosts: []
Określa hosty, które są routowalne, ale nie bezpośrednio dostępne dla maszyny zapory.
dubzland_shorewall_policies
dubzland_shorewall_policies:
- source: "$FW"
dest: all
policy: ACCEPT
- source: net
dest: all
policy: REJECT
- source: all
dest: all
policy: REJECT
log_level: info
Polityki używane przez Shorewall do określenia domyślnego działania dla danego pakietu w zależności od przejścia przez strefy. Więcej informacji w stronie podręcznika polityk.
dubzland_shorewall_snat
dubzland_shorewall_snat:
- action: MASQUERADE
dest: eth0
Konfiguruje SNAT/Masquerading dla iptables. Niezbędne, jeśli chcesz przeprowadzić translację adresów sieciowych (NAT) dla ruchu wychodzącego. Więcej informacji w stronie podręcznika snat.
dubzland_shorewall_rules
dubzland_shorewall_rules:
- section: NEW
rulesets:
- comment: PINGS
rules:
- action: Ping(ACCEPT)
source: all
dest: all
- comment: Ruch internetowy
rules:
- action: Web(ACCEPT)
source: $FW,lan
dest: net
Główna część tej roli. Konfiguruje zasady, które Shorewall będzie używać, aby określić, jak obsługiwać pakiety przechodzące przez jego monitorowane interfejsy. Więcej informacji w stronie podręcznika zasad.
Zależności
Brak.
Przykładowy playbook
Dla maszyny z 2 kartami sieciowymi (eth0
w internecie, eth1
w LAN):
- hosts: firewall
become: yes
roles:
- role: dubzland-shorewall
vars:
dubzland_shorewall_zones:
- name: fw
type: firewall
- name: net
type: ipv4
- name: lan
type: ipv4
dubzland_shorewall_interfaces:
- name: eth0
zone: net
options:
- tcpflags
- nosmurfs
- routefilter
- "sourceroute=0"
- name: eth1
zone: lan
options:
- tcpflags
- nosmurfs
- routefilter
dubzland_shorewall_policies:
- source: "$FW"
dest: all
policy: ACCEPT
- source: net
dest: all
policy: REJECT
- source: all
dest: all
policy: REJECT
log_level: info
dubzland_shorewall_snat:
- action: MASQUERADE
dest: eth0
dubzland_shorewall_rules:
- section: NEW
rulesets:
- comment: Pingi
rules:
- action: Ping(ACCEPT)
source: all
dest: all
- comment: Przeglądanie internetu
rules:
- action: Web(ACCEPT)
source: lan
dest: net
- action: ACCEPT
source: lan
dest: net
proto: udp
dest_ports:
- 80
- 443
To pozwoli wszystkim na pingowanie maszyny zaporowej oraz klientom w LAN na pingowanie hostów w internecie. Wszyscy klienci w LAN będą mogli przeglądać strony internetowe.
Licencja
MIT
Autor
ansible-galaxy install dubzland.shorewall