TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4538 1.18K
👨‍💻 Дебаг файрволла и фильтрация пакетов

➡️ Предыдущая часть

Маршрутизация настроена правильно, ping gateway работает, но связь всё равно не работает. Вероятно, виноват файрволл. Он может молча блокировать пакеты, не оставляя очевидных следов.

Linux может использовать несколько систем: iptables, nftables, firewalld.

iptables — классическая система:
iptables -L -n -v


Флаги:

-L — list, показывает правила
-n — numeric, не резолвит имена
-v — verbose, показывает счётчики пакетов

Вывод показывает три основные цепочки:

- INPUT — входящие пакеты
- OUTPUT — исходящие пакеты
- FORWARD — транзитные (для маршрутизатора)

Политика по умолчанию:
Chain INPUT (policy DROP)


Policy DROP — всё блокируется по умолчанию, разрешено только то, что явно указано в правилах выше. Безопасно, но легко сломать связность.

Policy ACCEPT — всё разрешено по умолчанию, блокируется только указанное. Менее безопасно, но проще в отладке.

iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1523 128K DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22


Смотрите на колонку pkts (packets). Если правило с DROP/REJECT показывает большое количество — оно активно блокирует трафик.

В примере выше: 1523 пакета на порт 22 (SSH) были отброшены.

Временное отключение файерволла:
iptables -F  # Очистить все правила
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT


Если после этого всё заработало — проблема точно в правилах. Восстановите их и ищите конкретное блокирующее правило.

firewalld — современная альтернатива:
firewall-cmd --list-all


Показывает активную зону и все правила в ней. Firewalld работает с концепцией зон: public, internal, trusted, dmz и т.д.

Проверьте:

- Какая зона активна для вашего интерфейса
- Какие сервисы разрешены в этой зоне
- Какие порты открыты

Какие зоны активны и на каких интерфейсах:
firewall-cmd --get-active-zones


Добавление правил firewalld

Разрешить сервис (HTTP):
firewall-cmd --add-service=http --permanent
firewall-cmd --reload


Разрешить порт:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload


Флаг --permanent делает правило постоянным. Без него — только до перезагрузки firewalld.

Если правил много, найти виновника сложно. Добавьте логирование для отброшенных пакетов:

iptables:
iptables -I INPUT -j LOG --log-prefix "DROPPED: "


Теперь все отброшенные пакеты будут логироваться в /var/log/messages с префиксом "DROPPED:".

firewalld:
firewall-cmd --set-log-denied=all


📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
  • 👍 5
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →