iptables - "moddepファイルを開くことができません"

iptables - "moddepファイルを開くことができません"

カーネルの更新はオプションではなく、iptablesを実行しようとすると、次のメッセージが表示されます。

root@mail:/etc/postfix# iptables -L
    libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/2.6.32-5-xen-amd64/modules.dep.bin'
    iptables v1.4.14: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.

修正する:

走った後

root@mail:/home/admin#  sudo depmod

わかりました。

ERROR: could not open directory /lib/modules/2.6.32-5-xen-amd64: No such file or directory
FATAL: could not search modules: No such file or directory

〜の後

root@mail:/home/admin#  sudo modinfo ip_tables

わかりました。

libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/2.6.32-5-xen-amd64/modules.dep.bin'
ERROR: Module alias ip_tables not found.

カーネルの更新が必要なようです。

答え1

最近このインストールのカーネルをアップグレードしましたか?通常、iptablesはカーネルに組み込まれており、デフォルトでは外部モジュールではありません(通常 - 多くの場合そうではないと確信しています)。

depmodコマンドを使用してモジュールのロード順序を再計算すると、問題が解決することがあります。

 sudo depmod

適用するには、depmodを実行して再起動する必要があります。エラーが発生した場合は、質問を更新してください。

次に、ip_tables.ko存在することを確認します。

 sudo modinfo ip_tables

ロードされない場合は、以下をロードしてみてください。

 sudo modprobe ip_tables

最後に、潜在的に貴重なデータポイントとしてこのコマンドで使用されているiptables関連のカーネルモジュールを確認し、詳細で質問を更新してください。

 cat /proc/net/ip_tables_matches

見つからない場合は、ファイルがシステムにあることを確認してください。

 find / -name "ip_tables.ko"

そうでない場合は、少なくともカーネルバージョンに合ったカーネルモジュールを再構築(またはパッケージから再インストール)する必要があると思います。

関連情報