我正在Debian Linux(Lenny)上build立我的第一台Lamp服务器。 我是一个完整的新人,所以请原谅我的无知。
我正在尝试保护服务器,并使用netstat输出删除了所有不需要的开放端口。 我已经把它放到只有2个开放端口,这是http和mysql端口。
如果我只打开这两个端口,这是否意味着他们是唯一可以通过某个/某些东西在我的机器上发起攻击的两个端口? 如果只有两个开放端口,我需要设置防火墙吗? 显然在将来我将需要打开其他端口的东西,如SSH等
谢谢
你真的需要访问远程MySQL访问? 也许你可以限制一点或者也许mysql访问localhost / loopback就够了?
你是否限制了OUTGOING连接? 即使您将有一些易受攻击的软件限制传出连接,也会帮助您阻止下载可能有害的有效负载。
build议的规则:
iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -F iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -s your.trusted.ip.address -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
当你需要运行系统更新时:
iptables -I OUTPUT -j ACCEPT
当它完成时:
iptables -D OUTPUT -j ACCEPT
这是要考虑的事情。
在这个盒子上安装防火墙,或者在安装之前,可以使用防火墙。 如果你想禁止滥用用户从你的服务? 不用担心在你的应用程序中实现它,你可以用iptables来完成。 与SYN防洪相同。
带宽速率限制呢? 这也可以派上用场。
最后,如果您决定在您的用户和Web服务器之间放置一个代理,请不要忘记一些redirect技巧。