尝试防火墙端口 1863、5190

信息安全 防火墙 地图
2021-09-08 05:54:00

我正在使用 Debian 的 arno-iptables-firewall,并且已将其配置为仅允许访问我需要的端口。

但是 nmap 显示端口 1863、5190 已打开。是什么赋予了?我怎样才能进一步询问这些端口?

正如我所说,我实际上使用的是 arno-iptables-firewall,但由于这很难“调试”(它非常复杂),我提供了一个非常简单的演示“防火墙”的问题示例(没有arno),它应该可以完成这项工作,但显然不是

$ iptables -A INPUT -p tcp --destination-port 1863 -j DROP 
$ iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:1863 

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

然后nmap example.com -p1863(来自另一位主持人)仍然显示

host is up (0.019s latency).
PORT     STATE SERVICE
1863/tcp open  msnp

很困惑。

更新:来自不同主机的 OK nmap 说不同的事情(!)。来自 Internet 上其他地方的 nmap(但在同一 VM 托管公司的网络中)显示端口已关闭,它们应该是关闭的,并且来自这些主机的 telnet 不起作用。但是从我办公室的 ADSL 连接中,端口是打开的并且 telnet 连接(然后很快被“外国主机关闭”)。

结论:现在已经从互联网上的 6 个地方进行了测试,我只能从我的办公室 ADSL 中重现这种行为。我的结论是,这是本地路由器或我们的 ISP 的问题。感谢所有帮助我深入研究这个问题的人——我学到了很多东西!

4个回答

在您的示例中,您似乎正在尝试配置与Arno IPTables不同的iptables查看此链接以获取有关不同类型防火墙的更多信息

要查看您正在运行的 iptables 规则,您可以键入(您已经在执行):

iptables -L

要阻止您在 iptables 中专门列出的端口,因为它们都是典型的 TCP 流量,您可以使用:

-A INPUT -p tcp --dport 1863 -j REJECT
-A INPUT -p tcp --dport 5190 -j REJECT 

警告:确保在运行类似这样的操作之前保持访问打开状态,但是要使用 iptables 拒绝所有不允许的入站流量,您可以使用:

-A INPUT -j REJECT
-A FORWARD -j REJECT

iptables 的诀窍是您需要实际保存规则集,因为您通过命令行键入的任何内容通常会在重新启动时刷新。

Arno 的 IPTables 防火墙

对于Arno IPTables,您可以参考该文件/etc/arno-iptables-firewall/firewall.conf以获取超出 debconf 对话框范围的其他配置。要从 shell 启动/停止/重新启动防火墙,请使用命令/etc/init.d/arno-iptables-firewall [start|stop|restart]

根据firewall.conf文件:

将以下变量放入您想要拒绝(删除)所有人(并记录)的 TCP/UDP 端口。如果您想记录每个人(也是受信任/完全访问主机)到这些端口的连接尝试,也可以使用这些变量。原则上您不需要这些变量,因为一切都已被阻止

(拒绝)默认情况下,但只是为了一致性而存在。

DENY_TCP="" DENY_UDP=""

如果 Arno IP Tables 正在运行,理论上这些端口应该已经被阻止。由于它们看起来好像没有被阻止,您可能只在运行iptables

netcat您可以使用或尝试使用它们仔细检查端口,telnet以查看它是否是来自nmap.

网猫示例:

nc -z your_server 1-6000

对于 telnet,如果端口被阻止,他们会说:

> telnet your_server 1863
telnet: Unable to connect to remote host

如果端口仍然打开,那么您将看到:

Connected to your_server

这将跟随服务器响应。

您应该能够通过键入来查看正在运行的内容top

你可以看看几件事。

从您要保护的主机尝试

sudo netstat -tunap

这应该显示所有网络连接。在顶部应该有一组侦听 TCP 端口以及正在使用它们的相应进程。

从网络试试

sudo nmap -sS -sV -sC -v -n [target]

看看 nmap 是否可以进一步了解该端口。

另外,一般来说,我注意到您已将 iptables 输入策略设置为 ACCEPT。我建议将其设置为 DROP 并只允许您需要的端口。从长远来看,它使保护盒子更容易。

查找潜在违规应用程序的一种可能粗略但相当有效的方法是使用lsof

例如: lsof -i | grep LISTEN

查找与端口号匹配的服务 NMAP 声明已打开。

更新:我想我应该提到该命令应该以 root 身份运行,以确保列出所有打开的文件句柄!

您是否要阻止 1853 和 5190 出站?如果是这样,Nmap 并不适合确定防火墙规则。要真正以接近 100% 的准确度测试防火墙规则,您需要通过防火墙将流量发送到另一端的已知目的地,而不是尝试扫描防火墙接口/IP 本身。

来自 Nmap 文档:

“虽然 Nmap 试图产生准确的结果,但请记住,它的所有洞察力都是基于目标机器(或它们前面的防火墙)返回的数据包。这些主机可能不可信,并发送旨在混淆或误导 Nmap 的响应。 " http://nmap.org/book/man-port-scanning-techniques.html

您需要像IsMyPortBlocked这样的解决方案,它通过防火墙将流量从其客户端发送到基于云的服务器,然后通过指定的端口返回客户端。