在 Buildroot 系统中,iptables
是一个用户空间实用程序程序,它允许管理员配置 Linux 内核中的 IP 包过滤规则。以下是一些关于 iptables
的基本用法和常见示例:
基本用法
iptables
使用规则链来处理数据包。主要的链包括:
- INPUT: 处理进入主机的数据包。
- OUTPUT: 处理从主机发送的数据包。
- FORWARD: 处理转发的数据包(用于路由)。
查看当前规则
查看所有链中的当前规则:
iptables -L
添加规则
将所有来自特定 IP 地址的数据包拒绝:
iptables -A INPUT -s 192.168.1.100 -j DROP
删除规则
删除第一个匹配特定 IP 地址的规则:
iptables -D INPUT -s 192.168.1.100 -j DROP
保存和恢复规则
在某些系统中,iptables
规则在重启后不会自动保存。你可以使用以下方法保存和恢复规则:
-
保存规则:
iptables-save > /etc/iptables/rules.v4
-
恢复规则:
iptables-restore < /etc/iptables/rules.v4
示例:基本防火墙规则
以下是一个简单的防火墙规则集,它允许所有来自本地网络的数据包,但拒绝所有其他流量:
# 清除所有现有规则
iptables -F# 允许所有本地回环流量
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT# 允许来自内部网络的数据包
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT# 拒绝所有其他流量
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
保存防火墙脚本
将这些规则保存到一个脚本文件中,例如 /etc/iptables/firewall.sh
,并确保该脚本在系统启动时运行:
#!/bin/sh
# /etc/iptables/firewall.sh# 清除所有现有规则
iptables -F# 允许所有本地回环流量
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT# 允许来自内部网络的数据包
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT# 拒绝所有其他流量
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
chmod +x /etc/iptables/firewall.sh
在系统启动时运行脚本(可以将其添加到 /etc/rc.local
中):
/etc/iptables/firewall.sh
通过上述步骤和示例,你可以在 Buildroot 系统中有效地使用 iptables
来管理网络流量和安全策略。
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -jMASQUERADE
以太网转4G