大規模なIPブロックがサーバーのパフォーマンスに影響しますか?

大規模なIPブロックがサーバーのパフォーマンスに影響しますか?

ゲームサーバーがあり、誰かがボットにスパムを送っています。 SpamBotクライアントはUDP接続を使用してサーバーとハンドシェイクします。これはプロキシリストを介して行われます。デフォルトでは、Spambotクライアントは多くのUDPパケットを私のサーバーに送信し、ボットを使用してスパムを送信します。

今、私にスパムを送る人が使う6つの大規模なプロキシのリストがありました。すべてのリストのすべてのIPをブロックするシェルスクリプトを作成できます。各IPは新しい行にあるため、forループを使用すると簡単に実行できます。

問題は、サーバーのパフォーマンスが心配です。 15,000個のIPアドレスをブロックすると、サーバーのパフォーマンスに影響しますか?

現在私はCentOS 7を使用しています。 IPテーブルが良いアプローチであるかどうか、他の代替方法を試す必要があるかどうかを教えてください。命令も書いてください。私のサーバーはこれらのIPアドレスへの応答を停止し、そのIPアドレスへの接続を確立したくありません。

ベストアンサー1

IP 数が多すぎる場合は、以下を使用する必要があります。ipsetsモジュール。 ipset は、iptables が反応できるデータセットを生成します。10〜1000個のアイテムを簡単に処理できます。

あなたが持っていることを確認してくださいEPELリポジトリ以下を介してipsetを有効にしてインストールします。

yum install ipset

一例:

ipset -N blockedip iphash

「iphash」形式で「blockedip」というコレクションを作成します(他の形式がありますが、この形式はIPでのみ機能します)。

ipset -Aを使用すると、データセットにデータ(この場合はIP)を追加できます。

ipset -A blockedip 192.168.1.1
ipset -A blockedip 192.168.1.2

など...

または、IPv4アドレスリストが1行に1つずつあるとipset仮定し、IPアドレスごとに単一の呼び出しを実行せずに一括生成します。big-file.list

ipset -N blockedip iphash
sed 's/^/add blockedip /' < big-file.list | ipsec restore

次のiptablesコマンドを使用すると、このグループのすべてのソースからすべてのパケットをドロップするようにカーネルに指示できます。

iptables -A INPUT -m set --set blockedip src -j DROP

おすすめ記事