过去,我使用以下脚本设置状态防火墙(在普通的 x64 Ubuntu 机器上),没有出现任何问题:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -N TCP
iptables -N UDP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i wlan0 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p udp -m conntrack --ctstate NEW -j UDP
iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-rst
iptables -A INPUT -j REJECT --reject-with icmp-proto-unreachable
iptables -A TCP -p tcp --dport 22 -j ACCEPT
我试图在 am335x 入门套件板上完成相同的任务,运行标准 SDK 6 映像。因此,它运行 TI 的 Arago 操作系统。
它在涉及“-m conntrack”的行上失败:
iptables: No chain/target/match by that name.
“iptables -S”的输出是:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
我尝试了“modprobe nf_conntrack”但无济于事(命令成功,但没有帮助。)我还尝试故意拼写错误部分命令,例如:
iptables -A INPUT -m conntrack --ctstate BLAH -j ACCEPT
给出错误: iptables v1.4.15: Bad ctstate "BLAH"
和:
iptables -A INPUT -m conntrack --ctstate RELATED -j BLAH
给出错误: iptables v1.4.15:无法加载目标“BLAH”:没有这样的文件或目录
奇怪的是,它似乎表明它正在抱怨“-A INPUT”部分,该部分在其他命令中工作得很好,例如:
iptables -A INPUT -i lo -j ACCEPT