SiteGuardで拒否したIPをSwatchでもDROPする
SiteGuardとSwatchの連携
SiteGuardなどのWAFは不正なアクセスを事前に防いでくれて本当に助かります。
しかし、SiteGuardではアクセス毎の拒否のため、同一IPから同じようなアタックを受けることが少なくありません。
サーバー1台あたり1日数千件のログが残ります。
そのようなIPからのアクセスが、他でまともなアクセスであるわけはないと考えました。
SiteGuardで拒否したログは以下にあります。
/opt/jp-secure/siteguardlite/logs/http/detect.log
/opt/jp-secure/siteguardlite/logs/http/form.log
上記ログファイルをSwatchで読み、iptablesで全てDROPするようにしました。
swatchの設定ファイルは以下の2つ
# logfile /opt/jp-secure/siteguardlite/logs/http/form.log
watchfor /http/
pipe "/usr/local/bin/swatch_action.sh ' ' 3"
threshold track_by=/sshd.*Failed password for invalid user/,type=limit,count=3,seconds=10
# logfile /opt/jp-secure/siteguardlite/logs/http/detect.log
watchfor /http/
pipe "/usr/local/bin/swatch_action.sh ' ' 3"
threshold track_by=/sshd.*Failed password for invalid user/,type=limit,count=3,seconds=10
GoogleのBOTのIPを許可リストへ
上記の設定をしていると、GoogleBOTまで遮断していることが分かりました。
Googleには悪意はない事は明らかですが、何かから辿ってアクセスしてほしくないファイルを読みに着ているようです。
そこで、SiteGuardにGoogleのBOTのIPをホワイトリストとして設定しました。