私はDDoS攻撃を簡単にブロックしようとしています:
iptables -A INPUT -p udp --dport 27015 -m limit --limit 10/s --limit-burst 20 -j DROP
しかし取得:
iptables:その名前によるチェーン/ターゲット/一致はありません。
何か助け?情報?
Debian 9
Iptablesを使用するための正しいカーネルモジュールがロードされていないか、発行したiptablesコマンドが曖昧すぎてiptablesが解釈できないようです。
私はいくつかのソース( リンク1リンク2 )を見つけました。このテーブルは、修正するフラグの順序を整理するためにルールが適用されるテーブルに関してより具体的です。この問題。
また、カーネルモジュールが不足している可能性があることを示唆するソース( リンクリンク4 )もいくつか見つけました。
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 は、POSTROUTING
とPREROUTING
の違いをさらに扱います。どちらを使用したいかを確実に把握し、提案されている修正の1つを実行します。
最初のオプションが機能しなかった場合は、正しいカーネルモジュールがない可能性があります。 link および link 4 によると、不足している機能を初期化する必要がある場合があります。
lsmod
を使用すると、インストールされているすべてのモジュールを一覧表示できます。不足しているモジュールは、xt_multiportおよびxt_commentに関連している可能性があります。 gentooフォーラムの投稿 に続いて、有効にする必要のあるカーネルモジュールの追加セットが存在する可能性もあります。 modprobe
を使用すると、netfilter
、ip_tables
、ip_conntrack
などを有効にできます。
カーネルモジュールを有効にする方法に関する Arch Linux Wiki と Tecmintの記事 の両方へのリンクを含めます。 このリンクの説明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に関するこの問題 へのリンクも含めています。
この回答に関して質問や問題がある場合はコメントしてください。コマンドを試す前に、提供した各リンクをよく読んでおくことを強くお勧めします。誤解を修正し、投稿を改善するためのフィードバックに感謝します。必要に応じて回答を更新できます。
ベストオブラック!