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

標準のSDK 6イメージを実行しているam335xスターターキットボードで同じことをしようとしています。したがって、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:無効な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コマンドはもはや文句を言いません。

関連情報