Как я могу проверить, блокирует ли файервол пинг от машины, относящейся к определённой подсети, на Linux CentOS 7?

Вопрос или проблема

Я не системный инженер (я разработчик программного обеспечения), и у меня есть следующая проблема. У меня есть сервер Linux CentOS 7. Коллега сказал мне, что не может пинговать этот сервер с конкретной машины, принадлежащей подсети 10.10.10.0/24. Он попросил меня проверить, есть ли какие-либо ограничения, связанные с этой подсетью.

Ситуация такова, что с других машин этот сервер можно пинговать, но не изнутри 10.10.10.0/24.

Что я могу сделать? Я думал проверить, есть ли активированные какие-либо специфические правила на брандмауэре Linux.

Итак, firewalld кажется активным на моей машине CentOS 7:

[centos@prod-zabbix ~]$ sudo -s
[root@prod-zabbix centos]# firewall-cmd --state
running
[root@prod-zabbix centos]# systemctl status firewalld
● firewalld.service - firewalld - динамический демон брандмауэра
   Loaded: загружено (/usr/lib/systemd/system/firewalld.service; включено; предустановка вендора: включено)
   Active: активен (работает) с Пт 2022-03-04 08:22:09 UTC; 1 неделя 5 дней назад
     Docs: man:firewalld(1)
 Main PID: 3125 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─3125 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Затем я попытался выполнить команду firewall-cmd –list-all, чтобы показать дополнительную информацию (из того, что я могу понять, она показывает информацию для конкретной зоны… но мне неясно, что это означает для “зоны”), в любом случае вот вывод:

[root@prod-zabbix centos]# firewall-cmd --list-all
public (активно)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 10050/tcp 10051/tcp 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Единственное, что может быть связано с пингом, что я вижу, это строка icmp-block-inversion: no.

Так что, в общем, как я могу проверить, блокирует ли брандмауэр пинг с машин, принадлежащих этой конкретной подсети?

  iptables -vnL 

выведет правила брандмауэра вместе с счетчиками пакетов и байтов – вы можете посмотреть, какие правила соответствуют и изменяются, пока он пингует.

Быстрый способ проверки – вставить правило в начало брандмауэра и посмотреть, разрешает ли оно трафик –

  iptables -I INPUT -s 10.0.10.0/24 -j ACCEPT 

это временно (т.е. до перезагрузки/перезагрузки брандмауэра) позволит трафику из этого диапазона попадать на ваш сервер, при условии, что NAT не задействован, и пакеты предназначены для сервера, а не просто проходят через него.

Вам также может понадобиться добавить правило вывода на случай, если ваш сервер получает пакеты, но отбрасывает ответы.

  iptables -I OUTPUT -d 10.0.10.0/24 -j ACCEPT

Вы также можете использовать tcpdump, чтобы увидеть, получаете ли вы пакеты и отправляете их – что-то вроде

 tcpdump -I any src or dst 10.0.10.0/24

+Команда tcpdump грубая, я не у своего ПК, чтобы протестировать. Вам также нужно убедиться, что пакет установлен, и отправитель пытается связаться с вами, пока вы его запускаете.

Ответ или решение

Чтобы проверить, блокирует ли брандмауэр на сервере CentOS 7 ICMP-пакеты от машин в подсети 10.10.10.0/24, вам следует выполнить несколько шагов для диагностики настроек фаервола и проверки правил. В данной статье мы подробно рассмотрим, как это сделать.

Шаг 1: Проверка состояния firewalld

Сначала необходимо убедиться, что firewalld действительно активен, и получить информацию о его состоянии. Вы уже выполнили следующие команды, и они показывают, что сервис firewalld запущен:

sudo systemctl status firewalld

Шаг 2: Проверка правил фаервола

Для просмотра активных правил брандмауэра вы можете использовать команду:

firewall-cmd --list-all

Из вывода вы заметили, что активная зона public не имеет специфических правил для ICMP, кроме настройки icmp-block-inversion: no, которая действительно разрешает входящие ICMP-пакеты. Однако, важно убедиться, что блокировки для конкретной подсети нет.

Шаг 3: Проверка с использованием iptables

Хотя вы используете firewalld, он в конечном итоге управляет правилами в iptables. Вы можете просмотреть текущие правила iptables с помощью следующей команды:

iptables -vnL

Эта команда выведет все активные правила с счетчиками пакетов и байтов. Обратите внимание на правила в цепочке INPUT, чтобы увидеть, не блокируются ли входящие запросы ICMP от подсети.

Шаг 4: Для временного разрешения пинга

Если вы хотите временно разрешить ICMP-пакеты из подсети 10.10.10.0/24, вы можете добавить следующее правило в начале цепочки INPUT:

iptables -I INPUT -s 10.10.10.0/24 -j ACCEPT

Также можно добавить правило для разрешения исходящего трафика в эту подсеть:

iptables -I OUTPUT -d 10.10.10.0/24 -j ACCEPT

Эти изменения будут действовать до перезагрузки системы или перезапуска firewalld.

Шаг 5: Отслеживание трафика с помощью tcpdump

Чтобы увидеть, приходят ли ICMP-пакеты на ваш сервер, вы можете использовать инструмент tcpdump. Убедитесь, что он установлен на вашем сервере, и выполните следующую команду:

tcpdump -i any icmp

Эта команда отобразит ICMP-пакеты, которые приходят на сервер. Если вы видите ICMP-пакеты от машин в подсети 10.10.10.0/24, значит, сервер их получает, но, возможно, по каким-то причинам не отвечает. Если пакеты не появляются, то они либо не доходят до сервера, либо блокируются другими правилами фаервола.

Шаг 6: Анализ логов

Если вы хотите проанализировать, какие пакеты блокируются, вы можете добавить правила логирования в iptables, чтобы отслеживать, какие пакеты из данной подсети проходят или блокируются:

iptables -A INPUT -s 10.10.10.0/24 -j LOG --log-prefix "Dropped ICMP: " --log-level 4

Это правило будет записывать в системный лог все блокированные пакеты из подсети 10.10.10.0/24 с префиксом "Dropped ICMP".

Заключение

Следуя указанным шагам, вы сможете проверить, блокирует ли брандмауэр ICMP-пакеты и, соответственно, пинг от машин в указанной подсети. Всегда помните, что вносить изменения в правила фаервола стоит осторожно, чтобы избежать непреднамеренного блокирования легитимного трафика.

Оцените материал
Добавить комментарий

Капча загружается...