iptables
是 Linux 系统中用于配置和管理防火墙规则的命令行工具。它基于 Netfilter 框架,允许你在不同阶段的数据包处理过程中定义规则,以控制网络通信。
以下是 iptables
命令的一些常用选项和示例:
iptables -L -n -v
-L
选项表示列出所有规则,-n
表示以数字格式显示 IP 地址和端口,-v
表示显示详细信息。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-A
选项表示追加规则,INPUT
是要添加规则的链(链有 INPUT、OUTPUT、FORWARD 等),-p tcp
表示指定协议为 TCP,--dport 22
表示目标端口为 22(SSH),-j ACCEPT
表示采取的动作为允许(其他动作还有 DROP、REJECT 等)。
iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
-I
选项表示插入规则,1
表示插入的位置(在 INPUT 链的第一个位置插入规则),其他参数与添加新规则类似。
iptables -D INPUT -p tcp --dport 22 -j ACCEPT
-D
选项表示删除规则,后面的参数指定要删除的规则(与添加新规则类似)。
iptables -F
-F
选项表示清空所有规则。谨慎使用此选项,以免意外关闭重要的网络服务。
不同的 Linux 发行版有不同的方法来保存 iptables
规则。在基于 Debian 的系统中(如 Ubuntu),可以使用 iptables-persistent
包来保存规则:
sudo apt install iptables-persistent
sudo iptables-save > /etc/iptables/rules.v4
在基于 RHEL 的系统中(如 CentOS),可以使用以下命令来保存规则:
service iptables save
iptables
服务:重启 iptables
服务可使新规则生效。在基于 Debian 的系统中,可以使用以下命令:
sudo systemctl restart netfilter-persistent
在基于 RHEL 的系统中,可以使用以下命令:
service iptables restart