web-dev-qa-db-ja.com

iptablesエラーメッセージ「テーブル 'filter'を初期化できません」を修正するにはどうすればよいですか?

Rackspaceクラウドサーバーの1つでiptablesコマンドを使用しようとすると、次のエラーが表示されます。

iptables-apply -t 120 /etc/iptables.rulesおよびiptables-restore < /etc/iptables.rulesを使用してiptablesルールを適用しようとすると、次のエラーが発生しました。

FATAL: Could not load /lib/modules/2.6.32.4-rscloud/modules.dep: No such file or directory
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'filter'

Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

どうすれば修正できますか?

編集1

uname -r

2.6.32.4-rscloud

modprobe/lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/iptable_filter.ko

FATAL: Could not load /lib/modules/2.6.32.4-rscloud/modules.dep: No such file or directory

ls/lib/modules/$(uname -r)/ kernel/net/ipv4/netfilter /:

ls: cannot access /lib/modules/2.6.32.4-rscloud/kernel/net/ipv4/netfilter/: No such file or directory

編集2

apt-cache検索linux-image- *:

alsa-base - ALSA driver configuration files
linux-image-2.6.31-14-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-14-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-14-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-302-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-9-rt - Linux kernel image for version 2.6.31 on Ingo Molnar's full real time preemption patch
linux-image-rt - Rt Linux kernel image
rt2400-source - source for rt2400 wireless network driver
rt2500-source - source for rt2500 wireless network driver
rt2570-source - source for rt2570 wireless network driver
linux-image - Generic Linux kernel image.
linux-image-2.6.31-15-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-15-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-15-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-16-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-16-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-16-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-17-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-17-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-17-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-19-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-19-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-19-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-20-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-20-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-20-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-21-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-21-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-21-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-304-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-305-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-306-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-ec2 - Linux kernel image for ec2 machines
linux-image-generic - Generic Linux kernel image
linux-image-server - Linux kernel image on Server Equipment.
linux-image-virtual - Linux kernel image for virtual machines
linux-image-2.6.31-22-generic - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-22-server - Linux kernel image for version 2.6.31 on x86_64
linux-image-2.6.31-22-virtual - Linux kernel image for version 2.6.31 on x86/x86_64
linux-image-2.6.31-307-ec2 - Linux kernel image for version 2.6.31 on x86/x86_64
6
user3215

フィルタテーブルを有効にするには、カーネルモジュールをロードする必要があります。次のコマンドをルートとして実行します。

modprobe /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/iptable_filter.ko

uname -rは現在のカーネルバージョンを示します)


Iptablesで使用可能なモジュールのリストについては、iptablesモジュールを含むディレクトリをリストします。

ls /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/

すべてのモジュールに関する情報を取得するには:

modinfo /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/*.ko
5
Lekensteyn

それは単に欠落していることが判明しましたSudo

Sudo iptables-restore < /etc/iptables.rules

の代わりに

iptables-restore < /etc/iptables.rules

3
Anona112

カーネル2.6.35.4-rscloudでRackspace Cloudも使用します。このカーネルには複数のインスタンスがあり、iptablesは一部で問題なく動作し、他のいくつかで同じ問題が発生します。

したがって、このカーネルにはiptablesに必要なサポートがあり、問題は他の何かによって引き起こされていると考えています(私はまだ自分で解決策を探しています)

編集:scp -r/lib/modules/2.6.35.4-rscloudを動作中のiptablesサーバーから非動作中のサーバーにコピーすることで問題を解決しました。

何らかの理由でuname -r2.6.35.4-rscloudを示し、ls /lib/modules//lib/modules/2.6.31-302-rsのような以前のバージョンのみを含んでいました。

これがなぜ同期しなくなるのか、またはこれらのファイルをコピーする作業サーバーがない場合にどうするのかはわかりませんが、うまくいけば正しい方向を示しています。

カーネルなどを再コンパイルする必要はありませんでした。

2
codercake

適切なiptablesサポートを取得する別の方法は、xtables-addonsをインストールすることです。ただし、これを機能させるにはかなり多くのツール(モジュールアシスタント、ビルドエッセンシャルなど)が必要ですが、利点は最終的にipsetsと同様にipsetsおよび(IMHO)ipsetも使用することは、大規模で複雑なルールセットに対してはるかに優れています

apt-get install xtables-addons-common

apt-get install xtables-addons-source

m-a prepare

m-a build xtables-addons

m-a install xtables-addons
1
Francis Turner

同じエラーが発生しましたが、無関係な記事に迷ったコメントが見つかりました( http://articles.slicehost.com/2007/11/6/ubuntu-gutsy-setup-page-1 )それは私の場合に誤りであった愚かな分子エラーを識別しました。問題は、テキストエディター(Notepad ++)を使用してiptables.rulesファイルを作成していたことですが、ファイルタイプが認識されなかったため、Notepad ++はデフォルトでWindows End-of-Lineおよびファイルの終わり文字。 iptablesはこれらの文字を拒否し、同等のUnixを必要とするため、最初の発生時にエラーをスローしました:*filter行の終わり-*filter構文に何か問題があるという誤った印象を与えます。ああ、文字エンコーディング関連のエラーの絶え間ない喜び!

2つのソリューション

  • 上記のコメンターがファイルに小さな変換ユーティリティをインストールし(Sudo aptitude install tofrodos)、実行しました(fromdos /etc/iptables.rules)。

- -または - -

  • 私がやったのは、Notepad ++で、Edit> EOL Conversion> UNIX Format、そしてSaveで、ファイルを再アップロードしました。これはEnd-of-Line文字を処理しますが、End-of-File文字は処理しません(予想される内容にかかわらず)。サーバーにアップロードしたら、nanoで開き、ファイルの最後に改行を作成して保存しました。その後、すべてが完全に機能しました。

mightファイルをnanoで開いて、実際に文字を手動で変更せずに再保存するだけでもうまくいくかもしれませんが、私はテストしていません。

1

カーネルの新しいバージョンをインストールしたがまだリブートしていない場合、iptablesでエラーが発生することもあります(たとえば、Ansibleプレイブックを使用して新しいサーバーを構築し、以前のタスクがanapt-get upgrade

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829269#41 re:「モジュール内の不明なシンボル、または不明なパラメーター」エラーを参照してください。

1
William Turrell

使用しているLinuxカーネルが、ロード可能なモジュールサポートを使用してビルドされていない可能性があります。カーネルがモジュールをサポートしているかどうかを確認する良い方法は、ファイル/proc/modulesの存在を確認することです。そこにあるが/lib/modules/$(uname -r)/modules.depファイルがない場合は、カーネルがモジュールをサポートしているが、モジュールが正しくインストールされていないことを意味します。カーネルはプロバイダーのRackspaceによって構築されたように見えるので、カーネルの構成について問い合わせてください。

1
Pierre