Как проверить правила брандмауэра для конкретной службы?
Как я могу проверить, какие правила брандмауэра используются конкретной службой и заблокирован ли порт для ограничения доступа внешних пользователей?
т.е.
netstat -tulnp | grep 123
udp 0 0 0.0.0.0:123 0.0.0.0:* 1542/ntpd
Я не вижу LISTEN
или же ESTABLISHED
в выходной.
2 ответа
Одним из способов является использование tcpdump
инструмент. Вы связываетесь с интерфейсом и говорите, что хотите слушать, а затем вы можете отлаживать происходящее.
Итак, вы хотите видеть UDP-пакеты на порте 123. Вы должны использовать что-то вроде этого:
tcpdump -i any -n udp port 123
Там вы увидите дейтаграммы, которые ваша машина получает через этот порт. Это может даже помочь вам отладить некоторые другие проблемы, если вы не видите UDP-дейтаграмм. Если этого недостаточно, вы можете использовать LOG
действие в команде iptables, поэтому ваше правило будет выглядеть примерно так:
iptables -I INPUT -i eth0 -s 1.2.3.4 -p udp --dport 123 -j LOG
Таким образом, любое соответствующее правило будет зарегистрировано в вашем системном журнале, и вы сможете отследить, работает ли оно так, как задумано.
Действующие в настоящее время правила брандмауэра отображаются:
iptables -L -n -v
Используемые для прослушивания порты отображаются
ss -lntp
ss -lnup
для соединений TCP и UDP соответственно.
Если вы хотите, вы можете получить довольно хорошее представление о том, что происходит даже в другой машине (и, для полноты, также самостоятельно) с помощью nmap
:
nmap -p PORT_NUMBERS IP_ADDRESS
Это вернет статус портов как open
(процесс слушает его, и нет брандмауэра), closed
(никто не слушает это), filtered
(брандмауэр защищает порт, и nmap
не может определить, открыт порт или нет), unfiltered
когда порты реагируют на nmap
который, однако, не может сказать, открыт порт или нет.
Команда, которую вы опубликовали (устарела, пожалуйста, используйте ss
) используется для отображения прослушивающих портов, поэтому, если интересующий вас порт не отображается, это означает, что процесс, который должен использовать такой порт, не запущен.