Jim*_*mmy 4 security linux debian ssh iptables
我已经编写了我的第一个 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
Run Code Online (Sandbox Code Playgroud)
我知道在 IP 表方面有一些玄学,所以我想知道是否有人可以参与进来看看这是否是保护 Web 服务器的正确方法。
您可能不想删除所有传出连接。
您可能希望尽早添加规则以允许 ESTABLISHED 连接,如果使用诸如 ftp 之类的协议,您也可以将 RELATED 添加到规则中,例如
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
记住规则顺序很重要 - 第一场比赛获胜。
您可能应该看看我们关于保护 Web 服务器安全的Q&A保护 LAMP服务器的技巧,它包含很多重要信息。