apacheサーバにhttpsでSYN_RECVばかり投げてくるアドレスブロックをnetstatで見つけたので、100エントリくらい溜まってたりだったので、雑にufwでdeleteレコード入れる仕掛け入れとく。
- とりあえず、/16で一レコードだけdrop決め打ちをufw statusに入れる,[ 1]を固定席とする
- rootのcrontabで一時間に一回起動
- コード例には書いてないけど、discord-webhookでログ
#!/bin/bash
VICTIMPORT=...:443
num=$(netstat -tanp | grep $VICTIMPORT | grep SYN_RECV | wc -l)
if [ $num -gt 16 ]; then
dests=$(netstat -tanp | grep $VICTIMPORT | grep SYN_RECV | awk '{ print $5}' | awk -F: '{print $1}' | awk -F. '{ print $1 "." $2}' | uniq)
rule=$(ufw status numbered | grep "[ 1] Anywhere" | grep "DENY IN")
if [ -n "$rule" ];then
ufw delete 1
fi
ufw insert 1 deny from ${dests}.0.0/16
fi
うまくいってない、修正
rule=$(ufw status numbered | grep "\[ \1\] Anywhere" | grep "DENY IN")
ufw --force delete 1