web-dev-qa-db-ja.com

iptablesその名前によるチェーン/ターゲット/一致はありません

私はDDoS攻撃を簡単にブロックしようとしています:

iptables -A INPUT -p udp --dport 27015 -m limit --limit 10/s --limit-burst 20 -j DROP

しかし取得:

iptables:その名前によるチェーン/ターゲット/一致はありません。

何か助け?情報?

Debian 9

2

手元の問題

Iptablesを使用するための正しいカーネルモジュールがロードされていないか、発行したiptablesコマンドが曖昧すぎてiptablesが解釈できないようです。

私はいくつかのソース( リンク1リンク2 )を見つけました。このテーブルは、修正するフラグの順序を整理するためにルールが適用されるテーブルに関してより具体的です。この問題。

また、カーネルモジュールが不足している可能性があることを示唆するソース( リンクリンク4 )もいくつか見つけました。

1. iptablesコマンドにフラグがありません

link 1 および link 2 で他の人が直面している問題によると、問題はコマンドが曖昧すぎて適切に解釈できないことが原因である可能性があります。 -t natオプションを追加すると、これに役立つ場合があります。

iptables -t nat -A INPUT -p udp --dport 27015 -m limit --limit 10/s --limit-burst 20 -j DROP 

ルールを保存して再起動するか、単にiptablesサービスを再起動します。これで問題が解決するはずです。 リンク2 は、POSTROUTINGPREROUTINGの違いをさらに扱います。どちらを使用したいかを確実に把握し、提案されている修正の1つを実行します。

2.カーネルオプションがありません

最初のオプションが機能しなかった場合は、正しいカーネルモジュールがない可能性があります。 link および link 4 によると、不足している機能を初期化する必要がある場合があります。

lsmodを使用すると、インストールされているすべてのモジュールを一覧表示できます。不足しているモジュールは、xt_multiportおよびxt_commentに関連している可能性があります。 gentooフォーラムの投稿 に続いて、有効にする必要のあるカーネルモジュールの追加セットが存在する可能性もあります。 modprobeを使用すると、netfilterip_tablesip_conntrackなどを有効にできます。

カーネルモジュールを有効にする方法に関する Arch Linux WikiTecmintの記事 の両方へのリンクを含めます。 このリンクの説明modprobeを使用してCentOSのiptablesを設定する正しい方法。

/etc/sysconfig/modules/*.modulesまたは/etc/rc.modules

 echo "modprobe ip_conntrack" >> /path/to/modules/iptables.modules
 chmod +x /path/to/modules/iptables.modules

これらのコマンドを実行する前に、lsmodも使用して、有効にしたものを調べ、不足しているものを確認してください。長期的には、最初にカーネルが最新であることを確認する方が安全であり、Debianが提供するサポートされているカーネルです。

結論

Iptablesコマンドの形式が正しいことを確認してください。正しくフォーマットする限り、希望どおりのことを行うためのリソースは数多くあります。また、実際にDebianベースのDockerイメージを使用している場合に備えて、 GitHub上のDockerに関するこの問題 へのリンクも含めています。

この回答に関して質問や問題がある場合はコメントしてください。コマンドを試す前に、提供した各リンクをよく読んでおくことを強くお勧めします。誤解を修正し、投稿を改善するためのフィードバックに感謝します。必要に応じて回答を更新できます。

ベストオブラック!

2
kemotep