SYN 숫자 체크후 HOST_IP 차단쉘 / syn flooding
# SYN 숫자 체크후 HOST_IP 차단쉘
지금 이 쉘을 보면 웃음이 난다.
한참 SYN flooding 공격으로 고생하고 있을때 막을 수 있는 여러가지 고민을 하고 적용을 했지만
처리를 못했다. 서버는 계속 죽고 서비스는 해야겠고 일단 임시적으로 방법을 만들어 놓고 원인을 분석하고
원천적으로 막을 수 있는 방법을 생각할 수 밖에 없었다.
이 쉘을 만들 당시 공격으로 인해 스트레스도 많이 받고 힘들었지만 어느정도 이 쉘이 시간을 벌어 줬고
원인을 찾을 수 있었다.
필요에 따라 수정 해서 사용 할 수 있는 쉘이다.
#!/bin/sh
# by ForSpeed | i@minsu.net
TODAY=$(date +%Y%m%d.%H:%M:%S)
LOGDIR="/root/bin/syn_log"
LIST="$LOGDIR/syn_list"
netstat -an |grep SYN |awk '{print $5}' | awk -F : '{print $1}' | sort -n -u | grep -v 59.9.140.34 > $LOGDIR/syn_list
for i in `cat $LIST`
do
SYN_NUM=`netstat -an |grep SYN |grep $i|wc -l`
if [ $SYN_NUM -gt 50 ]; then
X=`/sbin/iptables -L -n |grep $i |awk '{print $4}' |sort -u `
if [ $X = $i ]; then
echo "$i already insert iptalbes rule"
else
echo "$TODAY $i DROP" >> $LOGDIR/drop_list.log
/sbin/iptables -I INPUT -s $i -j DROP
fi
fi
done
[출처] 항상 행복한 사람 | 심민수 (http://blog.minsu.net/130037696585)
'리눅스 > Network' 카테고리의 다른 글
CentOS 6 에서 본딩 (bonding) 구성 (0) | 2015.01.26 |
---|---|
nf_conntrack: table full, dropping packet. (0) | 2015.01.26 |
SYN Fooding공격을 감지하여 메일로 받기 (0) | 2015.01.26 |
ip_conntrack 사용 확인 (0) | 2015.01.26 |
TCP TIMEWAIT 값 줄이기 (0) | 2015.01.26 |