ufw: правило для zabbix-агента и включение в all-setup
Linting / YAML Lint (push) Canceled after 0s
Linting / Ansible Lint (push) Canceled after 0s

- Порт 10050 (агент Timeweb) открыт только опросчикам хостера из Server= его
  конфига, а не всему интернету.
- playbook-ufw.yml добавлен в playbook-all-setup.yml перед docker: раньше он
  запускался только руками и после переезда на Timeweb не был прогнан вовсе —
  на сервере ufw до сих пор с ENABLED=no и пустым набором правил.
- В шапке плейбука зафиксировано, что ufw не закрывает порты, опубликованные
  докером: они идут мимо цепочки INPUT.
This commit is contained in:
av
2026-08-22 18:00:24 +03:00
parent 6bb0d61183
commit 7e64d76d02
2 changed files with 26 additions and 0 deletions
+23
View File
@@ -1,7 +1,19 @@
---
# ufw фильтрует только цепочку INPUT, то есть хостовые сервисы (sshd,
# zabbix-агент). Порты, опубликованные докером (80, 443, 2222), идут через
# PREROUTING/FORWARD мимо ufw — закрыть их можно только правкой `ports:` в
# docker-compose соответствующего приложения.
- name: "Configure UFW firewall"
hosts: all
vars:
# Опросчики Zabbix у Timeweb: только им нужен доступ к агенту на хосте.
# Список — из Server= в /etc/zabbix/zabbix_agentd.conf.
zabbix_poller_ips:
- "92.53.116.12"
- "92.53.116.111"
- "92.53.116.119"
tasks:
- name: "Ensure UFW is installed"
ansible.builtin.apt:
@@ -49,6 +61,17 @@
port: "443"
proto: udp
# Агент хостера слушает 0.0.0.0:10050 и сам проверяет адрес источника,
# но держать порт открытым для всего интернета незачем.
- name: "Allow Zabbix agent on port 10050 from Timeweb pollers"
community.general.ufw:
rule: allow
src: "{{ item }}"
port: "10050"
proto: tcp
comment: "Timeweb zabbix poller"
loop: "{{ zabbix_poller_ips }}"
- name: "Enable UFW"
community.general.ufw:
state: enabled