如何验证特定服务的防火墙规则?

如何验证特定服务的防火墙规则?

我如何检查特定服务使用了哪些防火墙规则以及端口是否被阻止以限制外部用户的访问?

IE

netstat -tulnp | grep 123
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               1542/ntpd

我在输出中看不到LISTEN或。ESTABLISHED

答案1

当前生效的防火墙规则显示如下:

   iptables -L -n -v

用于监听的端口显示为

    ss -lntp
    ss -lnup

分别用于 TCP 和 UDP 连接。

如果你愿意的话,你可以通过以下方式很好地了解另一台机器上发生的事情(并且,为了完整起见,也可以在你自己机器上发生)nmap

       nmap -p PORT_NUMBERS IP_ADDRESS

这将返回端口的状态为open(一个进程正在监听它,并且没有防火墙),closed(没有人在监听它),filtered(防火墙正在保护端口,并且nmap无法判断端口是否打开),unfiltered当端口响应时nmap,无法判断端口是否打开。

您发布的命令(已过时,请使用ss)用于显示监听端口,因此如果您感兴趣的端口未显示,则表示应该使用该端口的进程未运行。

答案2

一种方法是使用tcpdump工具。你绑定到一个接口并说什么然后你就可以调试正在发生的事情。

因此,您想要查看端口 123 上的 UDP 数据包。您可以使用如下命令:

tcpdump -i any -n udp port 123

在那里,您将看到您的机器在该端口上接收的数据报。如果您没有看到任何 UDP 数据报,它甚至可以帮助您调试其他一些问题。如果这还不够,您可以使用LOGiptables 命令中的操作,因此您的规则也将类似于:

iptables -I INPUT -i eth0 -s 1.2.3.4 -p udp --dport 123 -j LOG

这样,任何匹配的规则都将被记录到您的系统日志中,您可以跟踪它是否按预期工作。

相关内容