iptables 是 Linux 系统中用于管理防火墙规则的命令行工具。要使用 iptables 管理多个网络接口,您需要根据不同的接口和需求创建相应的规则。以下是一些基本步骤和示例:
首先,确保您已经安装了 iptables。在大多数 Linux 发行版中,它通常是预装的。如果没有,您可以使用包管理器(如 apt、yum 或 pacman)进行安装。
查看当前的网络接口。使用 ip addr 或 ifconfig 命令可以查看系统中的所有网络接口。
为每个网络接口创建相应的链。例如,如果您有两个网络接口:eth0 和 eth1,您可以分别为它们创建输入、输出和转发链。以下是一个示例:
iptables -N INPUT_eth0
iptables -N OUTPUT_eth0
iptables -N FORWARD_eth0
iptables -N INPUT_eth1
iptables -N OUTPUT_eth1
iptables -N FORWARD_eth1
为每个网络接口添加规则。您可以根据需要添加允许或拒绝特定 IP 地址、端口和协议的规则。以下是一个示例:
# 允许 eth0 接口上的 SSH 连接
iptables -A INPUT_eth0 -p tcp --dport 22 -j ACCEPT
# 允许 eth1 接口上的 HTTP 和 HTTPS 连接
iptables -A INPUT_eth1 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT_eth1 -p tcp --dport 443 -j ACCEPT
# 拒绝所有其他 eth1 接口上的输入连接
iptables -A INPUT_eth1 -j DROP
保存 iptables 规则。规则在系统重启后可能会丢失,因此需要将它们保存到配置文件中。在大多数 Linux 发行版中,您可以使用以下命令保存规则:
iptables-save > /etc/iptables/rules.v4
要在系统启动时自动加载这些规则,请确保 /etc/network/if-pre-up.d/iptables 文件存在并包含以下内容:
#!/bin/sh
iptables-restore < /etc/iptables/rules.v4
然后,为该文件添加可执行权限:
chmod +x /etc/network/if-pre-up.d/iptables
测试您的规则。使用 iptables -L -v -n 命令查看当前的防火墙规则,确保它们已正确应用。
请注意,这只是一个基本示例。根据您的需求,您可能需要创建更复杂的规则。在配置 iptables 时,请务必谨慎操作,以免意外阻止自己的访问。