community.general.ufw – Управление брандмауэром с помощью UFW
Примечание
Этот плагин входит в коллекцию community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.ufw.
Обзор
- Управление брандмауэром с помощью UFW.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
-
ufwпакет
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| comment строка | Добавить комментарий к правилу. Требуется версия UFW >=0.35. | |
| default строка |
| Изменить политику по умолчанию для входящего или исходящего трафика. псевдонимы: policy |
| delete логическое значение |
| Удалить правило. |
| direction строка |
| Выберите направление для правила или команды политики по умолчанию. Взаимоисключающие с interface_in и interface_out. |
| from_ip строка | Значение по умолчанию: "any" | Адрес IP-источника. псевдонимы: from, src |
| from_port строка | Порт источника. | |
| insert целое число | Вставить соответствующее правило как правило номер NUM. Обратите внимание, что ufw нумерует правила, начиная с 1. | |
| insert_relative_to строка |
| Позволяет интерпретировать индекс в insert относительно позиции. zero интерпретирует номер правила как абсолютный индекс (т.е. 1 — первое правило).first-ipv4 интерпретирует номер правила относительно индекса первого правила IPv4 или относительно позиции, где бы находилось первое правило IPv4, если его сейчас нет.last-ipv4 интерпретирует номер правила относительно индекса последнего правила IPv4 или относительно позиции, где бы находилось последнее правило IPv4, если его сейчас нет.first-ipv6 интерпретирует номер правила относительно индекса первого правила IPv6 или относительно позиции, где бы находилось первое правило IPv6, если его сейчас нет.last-ipv6 интерпретирует номер правила относительно индекса последнего правила IPv6 или относительно позиции, где бы находилось последнее правило IPv6, если его сейчас нет. |
| interface строка | Укажите интерфейс для правила. Направление (входящее или исходящее), используемое для интерфейса, зависит от значения direction. См. interface_in и interface_out для правил маршрутизации, которые должны указать как входной, так и выходной интерфейс. Взаимоисключающие с interface_in и interface_out. псевдонимы: if | |
| interface_in строка добавлено в 0.2.0 community.general | Укажите входной интерфейс для правила. Это взаимоисключает с direction и interface. Однако совместимо с interface_out для правил маршрутизации. псевдонимы: if_in | |
| interface_out строка добавлено в 0.2.0 community.general | Укажите выходной интерфейс для правила. Это взаимоисключает с direction и interface. Однако совместимо с interface_in для правил маршрутизации. псевдонимы: if_out | |
| log логическое значение |
| Регистрировать новые подключения, соответствующие этому правилу |
| logging строка |
| Включает/выключает регистрацию. Зарегистрированные пакеты используют системную службу регистрации LOG_KERN. |
| name строка | Использовать профиль, расположенный в /etc/ufw/applications.d.псевдонимы: app | |
| proto строка |
| Протокол TCP/IP. псевдонимы: protocol |
| route логическое значение |
| Применить правило к маршрутизируемым/переадресованным пакетам. |
| rule строка |
| Добавить правило брандмауэра |
| state строка |
| enabled перезагружает брандмауэр и включает брандмауэр при загрузке.disabled загружает брандмауэр и отключает брандмауэр при загрузке.reloaded перезагружает брандмауэр.reset отключает и сбрасывает брандмауэр до значений по умолчанию. |
| to_ip строка | Значение по умолчанию: "any" | Адрес IP-назначения. псевдонимы: dest, to |
| to_port строка | Порт назначения. псевдонимы: port |
Примечания
Примечание
- См.
man ufwдля получения дополнительных примеров.
Примеры
- name: Allow everything and enable UFW
community.general.ufw:
state: enabled
policy: allow
- name: Set logging
community.general.ufw:
logging: 'on'
# Sometimes it is desirable to let the sender know when traffic is
# being denied, rather than simply ignoring it. In these cases, use
# reject instead of deny. In addition, log rejected connections:
- community.general.ufw:
rule: reject
port: auth
log: yes
# ufw supports connection rate limiting, which is useful for protecting
# against brute-force login attacks. ufw will deny connections if an IP
# address has attempted to initiate 6 or more connections in the last
# 30 seconds. See http://www.debian-administration.org/articles/187
# for details. Typical usage is:
- community.general.ufw:
rule: limit
port: ssh
proto: tcp
# Allow OpenSSH. (Note that as ufw manages its own state, simply removing
# a rule=allow task can leave those ports exposed. Either use delete=yes
# or a separate state=reset task)
- community.general.ufw:
rule: allow
name: OpenSSH
- name: Delete OpenSSH rule
community.general.ufw:
rule: allow
name: OpenSSH
delete: yes
- name: Deny all access to port 53
community.general.ufw:
rule: deny
port: '53'
- name: Allow port range 60000-61000
community.general.ufw:
rule: allow
port: 60000:61000
proto: tcp
- name: Allow all access to tcp port 80
community.general.ufw:
rule: allow
port: '80'
proto: tcp
- name: Allow all access from RFC1918 networks to this host
community.general.ufw:
rule: allow
src: '{{ item }}'
loop:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- name: Deny access to udp port 514 from host 1.2.3.4 and include a comment
community.general.ufw:
rule: deny
proto: udp
src: 1.2.3.4
port: '514'
comment: Block syslog
- name: Allow incoming access to eth0 from 1.2.3.5 port 5469 to 1.2.3.4 port 5469
community.general.ufw:
rule: allow
interface: eth0
direction: in
proto: udp
src: 1.2.3.5
from_port: '5469'
dest: 1.2.3.4
to_port: '5469'
# Note that IPv6 must be enabled in /etc/default/ufw for IPv6 firewalling to work.
- name: Deny all traffic from the IPv6 2001:db8::/32 to tcp port 25 on this host
community.general.ufw:
rule: deny
proto: tcp
src: 2001:db8::/32
port: '25'
- name: Deny all IPv6 traffic to tcp port 20 on this host
# this should be the first IPv6 rule
community.general.ufw:
rule: deny
proto: tcp
port: '20'
to_ip: "::"
insert: 0
insert_relative_to: first-ipv6
- name: Deny all IPv4 traffic to tcp port 20 on this host
# This should be the third to last IPv4 rule
# (insert: -1 addresses the second to last IPv4 rule;
# so the new rule will be inserted before the second
# to last IPv4 rule, and will be come the third to last
# IPv4 rule.)
community.general.ufw:
rule: deny
proto: tcp
port: '20'
to_ip: "::"
insert: -1
insert_relative_to: last-ipv4
# Can be used to further restrict a global FORWARD policy set to allow
- name: Deny forwarded/routed traffic from subnet 1.2.3.0/24 to subnet 4.5.6.0/24
community.general.ufw:
rule: deny
route: yes
src: 1.2.3.0/24
dest: 4.5.6.0/24
Авторы
- Алёксей Овчаренко (@ovcharenko)
- Ярно Кескикангас (@pyykkis)
- Ахти Китсик (@ahtik)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/ufw_module.html