This service is available only in Japanese-language.

yocto linux上でのiptablesによるポート許可設定

yoctoでビルドしたLinux上で、iptablesを使用して次のコマンドでポート許可設定を行った所、

「iptables -A INPUT -p tcp --dport 80 -j ACCEPT」

次のエラーが表示されました。

「iptables: No chain/target/match by that name.」

エラーを調査した所、「--dport」拡張オプションでエラーが発生していることが分かりました。
この機能を使用するために何が足りないのでしょうか?
また、パッケージ等が足りない場合、confファイルにどのように追加すれば良いでしょうか?

iptablesを実行すると、必要なカーネルモジュールの有無をチェックし、無い場合に表示される
エラーメッセージのようです。

当方で、常時動作確認で使用しているbeagle bone black (Yocto2.5 poky にて構築)では
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
はエラー無く実行されており、当該コマンドを事項すると
iptables_filter
ip_tables
x_tables
の3つのカーネルモジュールがロードされております。

kernelのコンフィグレーションの変更方法は、お使いのBSPによって
異なっておりますので、お使いのBSP及びバージョンをお知らせいただけると
設定方法のアドバイスができるかと。

ご返答ありがとうございます。

lsmod で確認した所
Module Size Used by
iptable_filter 1872 0
ip_tables 11511 1 iptable_filter
x_tables 18397 2 ip_tables,iptable_filter
の3つが確認できました。

beagle bone black Yocto2.2 で構築しております。
よろしくお願い致します。

以下、yocto2.2.0 のリリース版をダウンロードし、MACHINEをbeagleboneに変更した以外は変更していない状態でbuildしたもので
実行した際のlsmodの結果です。
Module Size Used by
xt_tcpudp 2455 1
iptable_filter 2139 1
ip_tables 11820 1 iptable_filter
x_tables 18327 3 ip_tables,iptable_filter,xt_tcpudp
local.conf 等での変更が影響している可能性がありそうですね。

local.confのIMAGE_INSTALL_appendで「kernel-module-xt-tcpudp」を追加して解決いたしました。
ありがとうございました。

最初にどのイメージで作成したのか確認すれば良かったです。
iptables_1.6.0.bb のRRECOMENDS_${PN} では、kernel-module-xt-tcpudp の記載が抜けていますね。
core-image-satoを指定した場合は、kernel構築時にモジュールで指定されたドライバーは、指定しなくても自動的に
rootfsに追加されていましたが、core-image-minimalは、明示的に指定する必要があります。
恒常的にこの設定を有効にするには新規にレイヤーを作成し
a) IMAGE_INSTALL_appendに記載する
  独自のimageレシピを作成する又はcore-image-minimal.bbappend を作成し
  IMAGE_INSTALL_append = " kernel-module-xt-tcpudp"
を記載する
b) iptables のbbappendを作成する
  追加したレイヤー内にrecipes-extended/iptables/iptables/iptables_1.6.0.bbappendを作成し
  RRECOMMENDS_${PN} += " kernel-module-xt-tcpudp "
  を記載する
上記2つのいずれかの方法で、rootfsにkernel-module-xt-tcpudp が追加されます。

core-image-minimalではxt-tcpudpはインストールされていないんですね、
ありがとうございます、勉強になりました。