Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2060146
  • 博文数量: 178
  • 博客积分: 2076
  • 博客等级: 大尉
  • 技术积分: 2800
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-10 10:50
文章分类

全部博文(178)

文章存档

2010年(4)

2009年(13)

2008年(161)

我的朋友

分类: LINUX

2009-09-02 00:09:13

090901
很久没来这里写东西,乱来吹吹,大家别怪,呵呵
 1。CC攻击占尽服务器的资源,启用了高数的连接进入半连接。使服务器不能处理正常的用户访问流程。
 2. 当攻击开始时,我的短信网关便发短信通知网站有问题。
 3.进入服务器SQUID top 发现负载已经去到5了。于是运行 sh netwc.sh
netstat -na|grep xxx.xx.xxx.xxx(外网服务地址)|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n
查得储如每个IP的连接数都200多了。
     240 60.28.35.66
     241 219.146.189.5
     241 218.18.110.205
     242 121.8.209.206
     246 222.86.88.4
     248 219.132.141.106
     252 59.57.110.114
     253 61.150.115.235
     295 59.37.161.148
 
.。。。。。
于是进行 squid/var/logs
tail -f access.log
 
发现对 网站的某个页面狂xxxxxx
 
 
4.运用老的 的脚本 进行简单的过滤先,保证网站一定的正常。
#!/bin/bash
sh  netwc.sh|tail -10|awk '{print $2}' >tmpfile
for i in `cat tmpfile`
do
iptables -I INPUT -s $i -p tcp --dport 80 -j REJECT
done
 
 
5.因为我没有启用防火墙,是用脚本启动的,所以想到在access.log上过滤IP出来,再总共运行防火墙脚本 包过滤,基本上就能去掉攻击,当然,如果用tcpdump-nxX --S 来取包过滤去掉储如MOLLIZA5等不正常的包头更好,此处利用SQUID。
 
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/ip_forward
IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD DROP
modprobe ip_conntrack_ftp ports=2345 ports=6767
#tail -20000 /usr/local/squid/var/logs/access.log|grep 878888|awk '{print $1}'|sort|uniq -c|sort -n -r|head -n 200 > a
#####################access.log have a path  for bbs.xxx.com or xxx.com as there not the same squid proxy
#看攻击的程度加大tail 的行数 一般30000即够
tail -3000 access.log |awk '{print $1 $2}' |sort -nr|uniq -c >ip_s.txt
#cp /dev/null access_log
#cp /dev/null error_log
#cp /dev/null limit.sh
cp /dev/null attackip.txt
$IPTABLES -A INPUT -s 0/0 -d 0/0 -i eth1 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -d 0/0 -i lo -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p tcp --dport 58022 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p tcp --dport 443 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p udp --sport 53 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p tcp --sport 53 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p tcp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -s 0/0 -p tcp --sport 58022 -j ACCEPT
$IPTABLES -A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT
$IPTABLES -A INPUT -s xxxx.xxx.xxx.xx -j ACCEPT
$IPTABLES -A INPUT -s xxx.xxx.xxx.xx -j ACCEPT
$IPTABLES -A INPUT -s xxx.xxxx.xxx.x.xx -j ACCEPT
$IPTABLES -A INPUT -s xxx.xxx.xxx.xx -p udp --dport 161 -j ACCEPT
$IPTABLES -A INPUT -s xx.xx.xx.xx.xx -p udp --dport 161 -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 3389 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 873 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 50021 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 2121 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 2122 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 10001 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 10002 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 50015 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 50014 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 50030 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 80 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 443 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p udp --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p udp --dport 123 -j ACCEPT
$IPTABLES -A FORWARD -s 0/0 -p tcp --dport 25 -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx -p tcp --dport 50014 -j DNAT --to 192.168.66.4:3389
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx  -p tcp --dport 50015 -j DNAT --to 192.168.66.5:3389
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx  -p tcp --dport 2121 -j DNAT --to 192.168.66.4:2121
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx -p tcp --dport 2122 -j DNAT --to 192.168.66.5:2122
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx  -p tcp --dport 10001 -j DNAT --to 192.168.66.4:10001
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx  -p tcp --dport 10002 -j DNAT --to 192.168.66.5:10002
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx  -p tcp --dport 50030 -j DNAT --to 192.168.66.4:873
$IPTABLES -t nat -A PREROUTING -i eth0 -d xx.xx.x.xx  -p tcp --dport 50021 -j DNAT --to 192.168.66.5:873
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
cat ip_s.txt|while read num ip
do
#如果连接大于100个的话REJECT
if [ "$num" -gt "100" ]
then
echo $ip > attackip.txt
$IPTABLES -I INPUT -s $ip -p tcp --dport 80 -j REJECT
fi
done
 
#$IPTABLES -A INPUT -p icmp --icmp-type 8 -j DROP
$IPTABLES -A INPUT -p icmp -j ACCEPT
 
 
 
阅读(847) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~