我编写了第一个IPtables规则文件,试图在除SSH和Web所需端口之外的所有端口上保护我的服务器.
这就是我想出的:
i=/sbin/iptables # Flush all rules $i -F $i -X # Setup default filter policy $i -P INPUT DROP $i -P OUTPUT DROP $i -P FORWARD DROP # Allow unlimited traffic on loopback $i -A INPUT -i lo -j ACCEPT $i -A OUTPUT -o lo -j ACCEPT # Open up ports for Nginx $i -A INPUT -p tcp --dport 443 -j ACCEPT $i -A INPUT -p tcp --dport 80 -j ACCEPT $i -A INPUT -p tcp --dport 22 -j ACCEPT # Make sure nothing comes or goes out of this Box $i -A INPUT -j DROP $i -A OUTPUT -j DROP
我知道在IP表方面有一些黑色艺术,所以我想知道是否有人可以投入,看看这是否是保护Web服务器的正确方法.
解决方法
您可能不希望删除所有传出连接.
您可能希望尽早添加规则以允许ESTABLISHED连接,如果使用像ftp这样的协议,您可能会将RELATED添加到规则中,例如
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
记住规则顺序很重要 – 第一场比赛胜利.
你应该看看我们在保护网络服务器Tips for Securing a LAMP Server时所拥有的这个Q& A它有很多很棒的信息.