web-dev-qa-db-ja.com

1秒間に多くのhttpリクエストを受け取った場合、どうすればIPをブロックできますか?

誰かが私のウェブサイトで強制バースト攻撃を試みた場合、どうすればそれらをブロックできますか?

理想的には、1秒間に多くのhttp/Apacheリクエストがある場合は、IPをブロックする必要があります。

17
lee peat

fail2banは、これを行うように構成できます。ログファイルの正規表現の一致でトリガーするように構成でき、1分あたりの発生回数が多すぎる場合(秒の解像度になるかどうかはわかりませんが、1秒あたりに考えていたものに60を掛けるだけ)、クライアントIPをドロップできますiptablesパケットフィルターまたはその他の必要なアクションに追加します。または、iptables最近のモジュールを使用して、ここで行ったことをSIPブルートフォース攻撃に適合させて、Webサーバーで使用することができます。

# Deal with SIP brute forcing
iptables -N SIP_WHITELIST
# home
iptables -A SIP_WHITELIST -s 1.2.3.0/24 -m recent --remove --name SIP -j ACCEPT
# voip provider
iptables -A SIP_WHITELIST -s 4.5.6.0/24 -m recent --remove --name SIP -j ACCEPT
# remote location
iptables -A SIP_WHITELIST -s 7.8.9.0/24 -m recent --remove --name SIP -j ACCEPT

iptables -N SIP_BRUTEFORCE
iptables -A SIP_BRUTEFORCE -m recent --set --name SIP
iptables -A SIP_BRUTEFORCE -p udp --dport 5060 -m state --state NEW -j SIP_WHITELIST
iptables -A SIP_BRUTEFORCE -m recent --update --seconds 30 --hitcount 3 --name SIP -j LOG
iptables -A SIP_BRUTEFORCE -m recent --update --seconds 30 --hitcount 3 --name SIP -j DROP

iptables -A INPUT -p udp --dport 5060 -m state --state NEW -j SIP_BRUTEFORCE

出典:https://web.archive.org/web/20180901235739/http://tracyreed.org/blog/2010/ 12/26/sip-brute-force-attacks

10
Tracy Reed

fail2ban は、これらの場合に実装が簡単なソリューションです。

次のようなblock-all-dem-noobs.confファイルをfilter.dディレクトリに追加します

[Definition]
failregex = ^<Host> -.*"GET.*

翻訳:GETリクエストを見つけるためのRegExp

次に、jail.confに次のような新しいエントリを作成します

[block-all-dem-noobs]
enabled = true
port = http,https
filter = block-all-dem-noobs
logpath = /var/log/httpd/access.log
maxretry = 100
findtime = 5
bantime = 600
action = iptables[name=HTTP, port=http, protocol=tcp]

翻訳:access.logファイルを調べ、5秒で100リクエストを行ったIPアドレスを600秒(10分)ブロックします

ただし、主な欠点の1つは、 [〜#〜] nat [〜#〜] edのユーザーがすべて1つのIPアドレスとして表示されるため、誤検知が発生する可能性があることです。

13
Adi

Apache mod_evasiveモジュールを構成できます。このモジュールは、要求されたIPとページのハッシュテーブルを保持することによって非常に基本的な機能を提供し、ターゲットページまたはサイトでしきい値レベルを超えると、403「禁止」エラーでIPを「ブロック」します。設定の詳細については、「 mod_evasiveでApache DDoS攻撃を停止する方法 」を参照してください。

2
Ali Ahmad