y.matsuo
2017年5月12日 10時21分
お世話になっております。
Armadillo-IoT G2 のiptables設定における、ターゲットやマッチについてご教授願います。
デフォルトでLOG機能が使用出来なかったため、カーネルコンフィギュレーションでLOG機能を設定したのですが、
iptables実行時にLOGターゲットが指定できません。以下の様なエラーが出ます。
■ 実行ログ
# iptables -A ABC -j LOG
iptables v1.4.14: Couldn't load target `LOG':No such file or directory
同様に、デフォルトでhashlimit機能が使用できなかったため、カーネルコンフィギュレーションでhashlimit機能を設定したのですが、
iptables実行時にhashlimitマッチが指定できません。以下の様なエラーが出ます。
■ 実行ログ
# iptables -A ABC -m hashlimit
iptables v1.4.14: Couldn't load match `hashlimit':No such file or directory
上記エラーを見る限り、Linuxカーネルモジュールやiptablesプログラムモジュールが無い為とは思うのですが、
どうしたらiptables設定時にLOGターゲットやhashlimitマッチ機能を使用できる様になるでしょうか?
ご存知の方がおられましたら、ご教示の程お願い致します。
■ 補足情報
▼カーネルコンフィギュレーション設定例
Linux/arm 3.14.36-at8 Kernel Configuration
[*] Networking support --->
Networking options --->
[*] Network packet filtering (Netfilter) --->
Core Netfilter Configuration --->
<*> LOG target support
<*> "hashlimit" match support
▼Linuxカーネルモジュール有無
# ls /lib/modules/3.14.36-at8/kernel/
#
⇒通常は/lib/modules/3.14.36-at8/kernel/net/netfilterにモジュール(.ko)があるが、kernel配下のディレクトリすらない
▼iptablesプログラムモジュール有無
# ls /lib/iptables
ls: /lib/iptables: No such file or directory
⇒通常は/lib/iptablesにモジュール(.so)があるが、ディレクトリすらない
▼使用バージョン
使用機種:Armadillo-IoT G2
Linuxカーネル:3.14.36-at8
ユーザーランド (Atmark Dist):v20160927
コメント
y.matsuo
溝渕さん
松尾と申します。返信ありがとうございます。
アドバイス通りに試した結果、上手く行きました!
>上記に加え、Atmark Distで次のコンフィギュレーションを有効化してください。
>- CONFIG_USER_IPTABLES_LOG
>- CONFIG_USER_IPTABLES_hashlimit
ユーザーランドのコンフィギュレーションも有効にしてmake後に書き換えた結果、
"/lib/xtables/" に以下のファイルが出来ている事を確認しました。
- libipt_LOG.so
- libxt_hashlimit.so
また、iptables設定時のLOG機能とhashlimitマッチも有効になりました。
丁寧に教えて頂き、ありがとうございました。
アドバイスが大変参考になりました。
以上です。
at_mizo
2017年5月15日 11時19分
溝渕です。
> 上記エラーを見る限り、Linuxカーネルモジュールやiptablesプログラムモジュールが無い為とは思うのですが、
> どうしたらiptables設定時にLOGターゲットやhashlimitマッチ機能を使用できる様になるでしょうか?
Linuxカーネルおよび、Atmark Distのコンフィギュレーションを変更して、
LOGターゲット/hashlimitマッチ機能を有効化する必要があります。
> ご存知の方がおられましたら、ご教示の程お願い致します。
>
>
> ■ 補足情報
> ▼カーネルコンフィギュレーション設定例
> Linux/arm 3.14.36-at8 Kernel Configuration
> [*] Networking support --->
> Networking options --->
> [*] Network packet filtering (Netfilter) --->
> Core Netfilter Configuration --->
> <*> LOG target support
> <*> "hashlimit" match support
上記に加え、Atmark Distで次のコンフィギュレーションを有効化してください。
- CONFIG_USER_IPTABLES_LOG
- CONFIG_USER_IPTABLES_hashlimit
> ▼Linuxカーネルモジュール有無
> # ls /lib/modules/3.14.36-at8/kernel/
> #
> ⇒通常は/lib/modules/3.14.36-at8/kernel/net/netfilterにモジュール(.ko)があるが、kernel配下のディレクトリすらない
ドライバをLinuxカーネルに静的に組み込んでいるため、モジュールが無い状況は正しいです。
> ▼iptablesプログラムモジュール有無
> # ls /lib/iptables
> ls: /lib/iptables: No such file or directory
> ⇒通常は/lib/iptablesにモジュール(.so)があるが、ディレクトリすらない
Atmark Distでは、iptablesプログラムモジュールは"/lib/xtables/"に配置されます。
Atmark Distのコンフィギュレーション変更後は、次のファイルが確認できると思います。
- libipt_LOG.so
- libxt_hashlimit.so
以上です。