工作中的一次linux防范ddos攻击

简介:

   在上班路上,看到手机短信里面发送报警信息,一台服务器凌晨4点下线了.匆忙到工位,检查机器果然下线了,报告老板,然后联系机房.大概十分钟后机房回复,机器受到攻击,机房切断了Ip.

   机器用电信联通双网络,既然电信ip被封,那就用联通的ip进入机器.

要素一:机器的硬件信息以及Ip信息平时一定要保管好.免得有问题了还要去问机房,白白浪费很多时间.

进入机器后top等发现机器硬件性能ok,再用iptraf,流量也不高(当然不高,主ip都被切了).

机器跑的是网站业务,所以要找问题,去日志文件里面找访问量最高的ip即可.

要素二:找到日志文件找到攻击ip,前面为访问数量,后面为访问ip

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@localhost logs] # awk '{print $1}' xxx.xxx.com.access.log-20160616| sort | uniq -c | sort -n -k 1 -r | head -n 20
   91653 106.185.53.124
   59492 113.116.56.80
   56556 106.186.18.224
   48629 106.187.45.172
   26962 103.61.136.93
   22825 191.101.1.49
   21068 103.61.136.168
    8947 207.46.13.2
    7508 157.55.39.95
    6392 40.77.167.49
    3673 62.210.247.93
    2827 46.4.94.226
    2670 207.46.13.1
    2576 58.60.220.128
    2402 61.143.205.246
    2035 157.55.39.80
    2029 45.33.44.22
    1953 157.55.39.105
    1872 157.55.39.242
    1862 183.8.3.47

这是我第一次想到的命令,其实在网站访问日志里面应该过滤掉各种蜘蛛爬虫才对,封错了,老板会跟你急眼.所以,正确的命令应该是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@localhost logs] # cat xxx.xxx.com.access.log-20160616|grep -i -v -E "bing|baidu|google|sougou"|awk '{print $1}'|sort | uniq -c | sort -n -k 1 -r | head -n 20
   91653 106.185.53.124
   59492 113.116.56.80
   56556 106.186.18.224
   48629 106.187.45.172
   26962 103.61.136.93
   22825 191.101.1.49
   21068 103.61.136.168
    3661 62.210.247.93
    2814 46.4.94.226
    2576 58.60.220.128
    2402 61.143.205.246
    2029 45.33.44.22
    1862 183.8.3.47
    1300 103.61.136.164
    1066 218.6.71.194
     880 14.125.142.195
     683 61.158.163.117
     682 61.158.180.226
     680 218.29.54.198
     678 118.212.147.71

把前几个ip查询,都是日本,台湾,德国.再配合访问日志,得知是cc攻击.

先把这几个Ip用iptables封掉.输入封杀内容,重启iptables.

1
2
3
[root@localhost logs] # vim /etc/sysconfig/iptables
-A INPUT -s 106.185.53.124  -p tcp -m state --state NEW -j DROP
[root@localhost logs] # service iptables restart

使用iptables查看就可以看到,很多流量包被丢弃;

1
2
3
4
5
6
7
8
[root@localhost logs] # iptables -nvL
Chain INPUT (policy ACCEPT 4045K packets, 604M bytes)
  pkts bytes target     prot opt  in      out      source                destination         
     0     0 DROP       tcp  --  *      *       103.61.136.167       0.0.0.0 /0            state NEW 
  382K   18M DROP       tcp  --  *      *       106.186.18.85        0.0.0.0 /0            state NEW 
    97  4920 DROP       tcp  --  *      *       183.8.3.47           0.0.0.0 /0            state NEW 
  380K   18M DROP       tcp  --  *      *       106.187.45.172       0.0.0.0 /0            state NEW 
   300 15204 DROP       tcp  --  *      *       46.4.94.226          0.0.0.0 /0            state NEW

这个时候机房那边也解封了电信Ip.观察一段时间,流量正常.


事后,研究写过脚本,把访问量异常的ip获取然后放在一个文件里面,使用iptbales封杀.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost logs] # cat /sbin/cc.sh 
#!/bin/sh
LOG_FILE= /usr/local/nginx/logs/xxx .xxx.com.access.log    #访问日志
IP_FILE= /etc/black        #存放需要禁止的ip文件
NUMBER=2000               #非法访问量的值
wan0=eth0                 #网卡
BACKIP=` cat  $IP_FILE`    #每次操作先清空之前的ip
` cat  /dev/null  > $IP_FILE`
Denyip=` cat  $LOG_FILE| grep  -i - v  -E  "bing|baidu|google|sougou" | awk  '{print $1}' | sort  uniq  -c |  sort  -n -k 1 -r |  head  -n 1000000| awk  '{if($1>' $NUMBER ')print $2}' `
echo  $Denyip > $IP_FILE
if  "$BACKIP"  !=  ""  ]; then
         for  in  $BACKIP
         do
                 echo  $X ---deny
                 iptables -A INPUT -i $wan0 -s $X -p all -j DROP
         done
fi

清空规则很简单,因为没有把规则保存,所以只要用

1
[root@localhost logs] # service iptables restart

就可以把iptbales规则恢复.



反思:1.使用netstat把非法ip列出

           2.不遍历整个日志,假设当前被攻击,列出1小时内访问异常的Ip并封杀.

欢迎各位提出解决方案,或者链接



本文转自 yawei555 51CTO博客,原文链接:http://blog.51cto.com/huwei555/1790185,如需转载请自行联系原作者

相关文章
|
6小时前
|
运维 安全 网络安全
DDoS攻击升级,解读防御DDoS攻击的几大有效方法
DDoS攻击升级,解读防御DDoS攻击的几大有效方法
41 0
|
7小时前
|
存储 人工智能 安全
DDoS攻击激增,分享高效可靠的DDoS防御方案
DDoS攻击激增,分享高效可靠的DDoS防御方案
65 0
|
7小时前
|
缓存 运维 网络协议
Linux内核参数调优以应对SYN攻击
Linux内核参数调优以应对SYN攻击
52 3
|
6小时前
|
安全 网络协议 网络安全
DDOS攻击原理
DDOS攻击原理
6 0
|
6小时前
|
机器学习/深度学习 监控 安全
【网安】DDoS攻击:方法、影响与防御策略
【网安】DDoS攻击:方法、影响与防御策略
13 0
|
6小时前
|
存储 Serverless 网络安全
Serverless 应用引擎产品使用之阿里云函数计算中的Web云函数可以抵抗网站对DDoS攻击如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
23 0
|
6小时前
|
安全 网络安全 API
DDoS攻击愈演愈烈,谈如何做好DDoS防御
DDoS攻击愈演愈烈,谈如何做好DDoS防御
34 0
|
6小时前
|
存储 安全 应用服务中间件
解密Nginx限流机制:有效应对DDoS攻击与高并发流量
解密Nginx限流机制:有效应对DDoS攻击与高并发流量
57 0
|
6小时前
|
负载均衡 安全 网络协议
突发!亚洲游戏行业遭遇史上最大黑客 DDoS 攻击
游戏行业遭受频繁DDoS攻击,导致服务中断,例如欧洲国家安道尔全国近断网半小时。黑客利用低成本的DDoS手段勒索,尤其是针对中日韩印的手游市场。最常见的攻击方式是UDP洪水。防御措施包括使用硬件防火墙、抗D盾、负载均衡、SCDN流量清洗和分布式集群防御。游戏公司需平衡成本与安全,以确保服务稳定和玩家体验。在中国,此类攻击属犯罪行为,最高可判处有期徒刑。
|
7小时前
|
Linux 网络安全 Windows
如何通过隐藏服务器真实IP来防御DDOS攻击
如何通过隐藏服务器真实IP来防御DDOS攻击