如何在 am335x 入门套件板上设置状态防火墙?

如何在 am335x 入门套件板上设置状态防火墙?

过去,我使用以下脚本设置状态防火墙(在普通的 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

答案1

我也在 TI 论坛上发布了这个问题,并得到了回复

在内核配置中启用 CONFIG_NETFILTER_XT_MATCH_CONNTRACK 解决了这个问题。我只是在配置中设置 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y ,用 SDK 重建(说明这里)。

安装新内核和模块后,-m conntrack 命令不再抱怨。

相关内容