仅关闭指定网络接口上的端口

仅关闭指定网络接口上的端口

我刚刚用 nmap 检查了代理服务器(带有 squid 的 ubuntu 10.04)是否存在漏洞,并决定开始强化过程... 是否可以关闭,例如,仅在 eth1 上关闭 ssh 端口?这样当我在 LAN 中使用 eth0 时,我可以继续使用它。我的局域网中有各种非常方便的服务,但我想彻底关闭从互联网对这些服务的访问。

答案1

虽然 @wolfgangsz 的回答是正确的,但大多数守护进程都有一个类似于“绑定到”或“侦听”的选项,允许您选择要连接到哪些接口或 IP。在这种情况下sshd,您应该在文件上放置类似以下内容/etc/ssh/sshd_config

ListenAddress <IP_on_eth1>

这种方法的好处是,您可以确保守护程序永远不会在其他接口上可用。否则,规则集上的错误或应用规则的延迟(或重新启动防火墙)可能会暂时将您的服务器暴露给互联网。

答案2

实现此目的的常用方法是使用防火墙。在 Linux 下,大多数防火墙都基于 iptables。根据您的 Linux 技能,您可以在脚本文件中设置 iptables 规则,然后从 /etc/init.d/ 中的条目运行它,或者,如果您对 shell 脚本不太熟悉,您可以查看任何更用户友好的标准防火墙软件包,例如 Lokkit(非常简单,但也不太灵活)或 Guarddog(更高级)。其他选项包括 firestarter、shorewall 或 fwbuilder。

一般来说,你想要或需要的灵活性越大,应用程序就越复杂。iptables 的一些真正高级的功能只能通过直接编写脚本规则来实现。

相关内容