我正在 Debian Linux (Lenny) 上设置我的第一个 Lamp 服务器。我完全是个新手,所以请原谅我的无知。
我正在尝试保护服务器,并且刚刚使用 netstat 输出删除了所有不需要的开放端口。我将其减少到仅 2 个开放端口,即 http 和 mysql 端口。
如果我只打开这两个端口,是否意味着只有这两个端口才有人/东西可以通过它们对我的机器发起攻击?如果只有这两个端口开放,我是否需要设置防火墙?显然,将来我需要为 ssh 等打开其他端口。
谢谢
答案1
您真的需要访问远程 mysql 吗?也许您可以稍微限制一下,或者也许通过 localhost/loopback 访问 mysql 就足够了?
您是否限制了传出连接?即使您有一些易受攻击的软件,限制传出连接也会帮助您阻止下载潜在的有害负载。
建议规则:
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
答案2
这是值得考虑的事情。
在那个盒子上或之前安装防火墙对以后很有用。如果你想禁止滥用服务的用户怎么办?你不必担心在你的应用程序中实现这一点,只需使用 iptables 即可。SYN 洪水预防也是如此。
那么带宽限制呢?这在将来也可能会派上用场。
最后,不要忘记一些重定向如果您决定在用户和 Web 服务器之间放置代理,则可以采用以下技巧。