現在の問題

現在の問題

以下を使用してDDoS攻撃を簡単にブロックしようとしています。

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

しかし、以下を得る:

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

助けが必要ですか?情報?

Debian 9

答え1

現在の問題

iptablesを使用するために正しいカーネルモジュールをロードしていないか、実行したiptablesコマンドがiptablesで解釈するのはあまりにもあいまいです。

いくつかのソースが見つかりました(リンク1 リンク2)この参照は、この問題を解決するためにフラグの順序をクリーンアップするためにルールが適用されるテーブルについてより具体的です。

また、いくつかのソースを見つけました(リンク3 リンク4) これはカーネルモジュールが欠落している可能性があることを示します。

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

他人が経験した問題に基づいてリンク1そしてリンク2、コマンドがあいまいで正しく解釈されないため、問題が発生する可能性があります。オプションを追加すると役に立ち-t natます。

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

ルールを保存して再起動するか、iptablesサービスを直接再起動してください。それでは効果があるでしょう。リンク2POSTROUTINGとの違いをより詳しく扱ってくださいPREROUTING。どちらを好むかを確認し、提案された修正の1つに従うこともできます。

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

最初のオプションが機能しない場合、正しいカーネルモジュールが欠落している可能性があります。 ~によるとリンク3そしてリンク4、欠落している機能を初期化する必要があるかもしれません。

を使用すると、インストールされているlsmodすべてのモジュールを一覧表示できます。欠落しているモジュールはおそらくxt_multiportとxt_commentに関連しているでしょう。フォローするGentooフォーラム投稿、追加のカーネルモジュールセットを有効にする必要があるかもしれません。を使用するときは、などをmodprobe有効にしてみることができます。netfilterip_tablesip_conntrack

2つのリンクを含めます。Arch Linux WikiそしてDocmintの記事カーネルモジュールを有効にする方法。このリンクは説明しますmodprobe.netを使用して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

これらのコマンドを実行する前に、lsmodtooを使用して有効になっている項目を確認し、欠落している項目を確認してください。長期的には、まずカーネルが最新であることを確認する方が安全です。Debian が提供するサポートカーネルですか?

結論として

iptablesコマンドの形式が正しいことを確認してください。正しい形式であれば、要件を満たすことができるさまざまなリソースがあります。リンクも添付しました。GitHubのDockerの問題実際にDebianベースのDockerイメージを使用している場合に備えてください。

この回答について質問や質問がある場合は、コメントを残してください。コマンドを試す前に、私が提供する各リンクを注意深く読んでください。誤解を解決し、投稿を改善するためにフィードバックを送信していただきありがとうございます。必要に応じて回答を更新できます。

頑張ってください!

関連情報