在 Ubuntu 上使用 iptables
进行测试时,可以按照以下步骤进行:
-
查看当前的iptables规则: 在开始之前,最好先查看当前的iptables规则,以便了解现有的配置。
sudo iptables -L -v -n
-
清空现有规则(可选): 如果你想从一个干净的状态开始,可以删除所有现有的iptables规则。请谨慎操作,因为这将清除所有自定义的防火墙规则。
sudo iptables -F sudo iptables -X
-
设置默认策略: 通常建议为INPUT、FORWARD和OUTPUT链设置默认策略。例如,设置为DROP以增强安全性。
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT
-
允许SSH连接(如果需要远程访问): 如果你需要通过SSH访问服务器,请确保允许来自你的IP地址的SSH连接。
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-
允许本地回环接口的流量:
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT
-
允许已建立的连接: 允许已经建立的连接和相关的数据包通过。
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-
测试规则: 在应用新规则后,可以通过尝试从另一台机器连接到SSH来测试规则是否生效。如果无法连接,检查是否有规则阻止了连接。
-
保存iptables规则: 默认情况下,iptables规则在重启后不会被保存。你可以使用
iptables-persistent
来保存规则。sudo apt-get install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload
-
查看特定链的规则: 如果你想查看某个特定链的规则,可以使用:
sudo iptables -L INPUT -v -n
-
删除规则: 如果需要删除某条规则,可以使用
-D
选项。例如:sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
请记住,iptables规则的处理顺序是从上到下的,因此规则的顺序非常重要。确保你理解每条规则的作用,并在生产环境中谨慎操作。