以下を使用して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
有効にしてみることができます。netfilter
ip_tables
ip_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
これらのコマンドを実行する前に、lsmod
tooを使用して有効になっている項目を確認し、欠落している項目を確認してください。長期的には、まずカーネルが最新であることを確認する方が安全です。Debian が提供するサポートカーネルですか?。
結論として
iptablesコマンドの形式が正しいことを確認してください。正しい形式であれば、要件を満たすことができるさまざまなリソースがあります。リンクも添付しました。GitHubのDockerの問題実際にDebianベースのDockerイメージを使用している場合に備えてください。
この回答について質問や質問がある場合は、コメントを残してください。コマンドを試す前に、私が提供する各リンクを注意深く読んでください。誤解を解決し、投稿を改善するためにフィードバックを送信していただきありがとうございます。必要に応じて回答を更新できます。
頑張ってください!