可能重复:
为什么我需要为服务器设置防火墙?
我有一个小型服务器,有WEB + FTP。我检查了端口,只有80 + 21开放了。
那么,现在的问题是,我真的需要 iptables 吗?这两个端口必须向所有人开放,其他端口已经关闭。我认为没有人可以在没有 root 控制(从服务器外部)的情况下打开端口。那么,iptables 对我有用吗?
答案1
如果我理解你的问题,你没有任何iptables
规则并且询问如果你唯一开放的端口是来自活动运行服务的端口,你是否真的需要它,这是正确的吗?
简短回答:是的,您的服务器上应该有一个有效的iptables
规则集,即使唯一开放的端口是您想要在那里运行的服务。还请记住维护规则并添加/删除从服务器添加或删除的服务。
较长的示例答案:理论上你不需要它,但安全性就是让攻击者的生活更加艰难。假设你的网络服务器有一个脚本,里面有一个错误,有人利用这个错误并注入远程 shell 服务器(即使是一个简单的也netcat
可以)。如果服务器前端没有防火墙或本地阻止连接,攻击者将能够连接到被利用的 shell。如果你添加正确且有效的iptables
规则,攻击者将无法连接(因为iptables
阻止了任何不在你允许的端口上的流量)。
即使你的服务器前面有防火墙,使用基本的 iptables 脚本也是一种很好的做法,正如我所说,你的工作是添加安全层(纵深防御) 因此如果某一层出现故障,其他层仍可维持,以延缓攻击。
答案2
不,你不需要需要有iptables
規則。
然而,你会想拥有它们有以下几个原因:
- 让人们更难进行端口扫描
- 检测暴力破解尝试
- 过滤攻击
请参阅我的社区维基,“IPTables 技巧和窍门”。你也许会从中找到一些灵感。
答案3
是的。在非常至少,它会适当地打开端口 20,以便主动 FTP 可以正常工作。除此之外,它还会阻止与在您的计算机上启动服务器的恶意程序的连接。
答案4
即使您和互联网之间有供应商防火墙,所有面向公众的服务器也应始终运行 Iptables。所有计算机安全的关键是要记住,除非关闭电源,否则每个系统都可能被利用。考虑到这一点,您正在尝试设置障碍来阻止任何攻击者。
正如 coredump 在他的回复中提到的,Iptables 可以帮助阻止在高端口上运行的用户空间漏洞程序接受连接。如果需要,还可以使用 OUTPUT 链阻止主机与特定网段通信。此外,您可以通过使用状态模块并默认仅允许相关数据包,然后仅允许“新”数据包进入您的 Web 和 FTP 服务器,从而阻止许多 TCP 攻击在您的系统上运行。