可能重复:
我为什么要防火墙服务器?
我有一个WEB + FTP的小型服务器。 我检查了端口,只有80 + 21被打开。
所以,现在的问题是,我真的需要iptables吗? 这两个港口必须向所有人开放,其他港口已经closures。 我不认为有人可以打开没有根控制的端口(从服务器外部)。 那么,iptables对我有用吗?
如果我理解你的问题,你没有任何iptables规则,并问你是否真的需要它,如果你只有开放的端口是从主动运行的服务,是否正确?
简短的回答:是的,你应该在你的服务器上有一个工作的iptables规则集,即使只有打开的端口是你想在那里运行的服务。 另外请记住维护规则并添加/删除从服务器添加或删除的服务。
很长的例子答案:理论上你不需要它,但是安全性是关于让攻击者的生活更难。 假设你的networking服务器有一个脚本,它有一个bug,有人利用这个bug并注入一个远程shell服务器(即使是一个简单的netcat也可以)。 如果服务器的前端没有防火墙或本地阻止连接,则攻击者将能够连接到该被利用的shell。 如果您添加了正确和正常的iptables规则,攻击者将无法连接(因为iptables阻止了不允许在您允许的端口上的任何stream量)。
即使你的服务器有一个防火墙,正如我所说,一个基本的iptables脚本是一个很好的做法,你的工作是增加安全层( 深度防御 ),所以如果一个层失败了,其他的仍然是延缓袭击。
不,你不需要有iptables规则。
但是,你会想要拥有它们的原因有几个:
请参阅我的社区维基“IPTables提示与技巧” 。 你可能会在那里find一些灵感。
是。 至less,它会打开20端口,以便主动的FTP工作。 除此之外,它将阻止连接到在您的机器上启动服务器的恶意程序。
即使您和互联网之间有供应商防火墙,iptables也应该始终在所有面向公众的服务器上运行。 所有计算机安全性要记住的关键是每个系统都可以被利用,除非closures。 考虑到这一点,你正试图给任何攻击者设置障碍。
正如在他的回复中提到的coredump,iptables可以帮助防止用户空间利用程序在高端口上运行,从接受连接。 如果您需要使用OUTPUT链,也可以防止主机与特定网段进行通话。 此外,您可以通过使用状态模块阻止许多TCP攻击在您的系统上运行,并且只允许默认相关的数据包,然后只允许“新”数据包到您的Web和FTP服务器。