![如果没有服务在监听端口,是否仍可以使用该端口访问系统?](https://linux22.com/image/670152/%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%E6%9C%8D%E5%8A%A1%E5%9C%A8%E7%9B%91%E5%90%AC%E7%AB%AF%E5%8F%A3%EF%BC%8C%E6%98%AF%E5%90%A6%E4%BB%8D%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E8%AF%A5%E7%AB%AF%E5%8F%A3%E8%AE%BF%E9%97%AE%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
如果我有一台 Linux 服务器,该服务器带有一条 FW 规则 (iptables),允许入站到特定端口,那么是否必须运行并侦听服务以接受该连接,或者是否有其他方法可以使用该端口访问系统?也许是一个可以利用该端口进行连接侦听的服务的安全漏洞?当我注意到,除非有服务实际侦听该端口,否则我无法远程登录到任何端口,即使我为该端口设置了 FW 规则,这个问题就浮现在我的脑海中。
答案1
理论上是的。但这意味着内核中必须存在巨大错误才能在每个端口上接受和使用数据包,而且没有办法在内核上游填充这个错误。所以对你的问题的回答是否定的,没有服务的端口是关闭的并且是安全的。但防火墙设置中的最佳做法是仅允许指定的端口列表并禁用所有其他端口。
当然,如果有人通过正在运行的服务侵入您的服务器,他/她可以启动新的服务并监听新的端口。
答案2
你缺乏基本的系统概念,我的朋友。如果服务(比如 sshd)没有运行,你如何期望系统在端口 22 上打开套接字?
当您在系统上运行服务时,无论该服务使用哪个端口,该服务都会通知系统在该端口上为该服务打开一个套接字,然后您会看到系统正在监听该端口,因为它已被告知要这样做。如果不告诉系统要做什么,我想知道系统将如何提供与任何入站服务的连接。
你的问题毫无意义。
答案3
不可以。您无法访问没有关联服务的端口。