ゲームサーバーがあり、誰かがボットにスパムを送っています。 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