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

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

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

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

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

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

要素二:找到日志文件找到攻击ip

[[email protected] 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

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

[[email protected] 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.

[[email protected] logs]# vim /etc/sysconfig/iptables
-A INPUT -s 106.185.53.124  -p tcp -m state --state NEW -j DROP
[[email protected] logs]# service iptables restart

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

[[email protected] 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封杀.

[[email protected] 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 X in $BACKIP
        do
                echo $X ---deny
                iptables -A INPUT -i $wan0 -s $X -p all -j DROP
        done
fi

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

[[email protected] logs]# service iptables restart

就可以把iptbales规则恢复.

时间: 2024-10-13 14:25:22

工作中的一次linux防范ddos攻击的相关文章

如何防范ddos攻击

现如今网络安全是企业发展的一大重要问题,目前最让企业头疼也是最无力的就是网络安全攻击中的DDOS攻击,这种攻击通过僵尸网络无脑的进行恶意攻击,对企业造成了极大的损失,基本上每个企业都会因为恶意竞争或者勒索而受过ddos攻击,那么如何防范ddos攻击呢? 一.理解ddos攻击原理     ddos攻击也就是所说的分布式拒绝服务攻击,攻击者通过手中控制的僵尸网络对目标机器进行快速大批量的网络访问, 1.最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应.这

日常运维工作中如何确保你的linux操作系统安全

在现在这个世道中,Linux操作系统的安全是十分重要的.但是,你得知道怎么干.一个简单反恶意程序软件是远远不够的,你需要采取其它措施来协同工作.下面是日常运维工作中常用的几种Linux安全的策略方法. 1. 使用SELinux SELinux是用来对Linux进行安全加固的,有了它,用户和管理员们就可以对访问控制进行更多控制.SELinux为访问控制添加了更细的颗粒度控制.与仅可以指定谁可以读.写或执行一个文件的权限不同的是,SELinux可以让你指定谁可以删除链接.只能追加.移动一个文件之类的

Azure上Linux VM DDOS攻击预防: 慢速攻击

在上篇博客(http://www.cnblogs.com/cloudapps/p/4996046.html)中,介绍了如何使用Apache的模块mod_evasive进行反DDOS攻击的设置,在这种模式中,主要预防的是对http的volume attack,然而DDOS的攻击方式,各种工具非常多,随便搜一搜就知道了,我们回过头来看看,什么叫DOS/DDOS,看看维基百科: "拒绝服务攻击(Denial of Service Attack,缩写:DoS)亦称洪水攻击,是一种网络攻击手法,其目的在于

配置 Haproxy 防范 DDOS 攻击

作为 load balancer, Happroxy 常常作为服务器的前端,向外界用户提供服务的入口,如果能在入口处处理安全相关问题,将极大简化后端的设计.事实上,Haproxy 不仅仅是一款开源出色的 load balancer(四层和七层),而且在安全上也相当出色.它配合内核 IP/TCP 协议栈,能够较好的抵抗 DOS, DDOS 攻击,还能通过限制单个 IP 的连接数和请求速率等,防止用户的恶意行为. TCP syn flood attacks 通过向服务器发送大量的 TCP syn 分

防范 DDoS 攻击的 15 个方法

为了对抗 DDoS(分布式拒绝服务)攻击,你需要对攻击时发生了什么有一个清楚的理解. 简单来讲,DDoS 攻击可以通过利用服务器上的漏洞,或者消耗服务器上的资源(例如 内存.硬盘等等)来达到目的.DDoS 攻击主要要两大类: 带宽耗尽攻击和资源耗尽攻击. 为了有效遏制这两种类型的攻击,你可以按照下面列出的步骤来做: 1. 如果只有几台计算机是攻击的来源,并且你已经确定了这些来源的 IP 地址, 你就在防火墙服务器上放置一份 ACL(访问控制列表) 来阻断这些来自这些 IP 的访问.如果可能的话

工作中遇到的一些linux常用命令总结

一.root权限: 1.su 之后输入root密码进入root模式 2.root执行相关shell    sudo  sh  demo.sh 二.文件及文件夹相关 1.查看当前工作路径:  pwd 2.查看当前文件夹下的文件:ls 3.进入文件夹:  cd  文件夹名 4.仅仅查看文件内容:cat 文件名 5.编辑文件:  vim 文件名 5.1退出vim(vi): esc   后    输入“:q”不保存退出:    esc   后    输入“:wq”保存退出:    esc   后   

工作中一些常用的linux命令

问题一: 绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 答案:绝对路径:如/etc/init.d当前目录和上层目录:./  ../主目录:~/切换目录:cd 问题二: 怎么查看当前进程?怎么执行退出?怎么查看当前路径?答案:查看当前进程:ps执行退出:exit查看当前路径:pwd 问题三: 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?答案:清屏:clear退出当前命令:ctrl+c 彻底退出执行睡眠

总结工作中常用到的linux命令大全_经典

常用解压命令 tar.bz2 命令: tar -jxvf  *.tar.bz2 tar.z   命令: tar -zxvf  *.tar.z tar.gz   命令: tar -Zxvf  *.tar.gz PS:关于这些参数你可以用man 帮助,注意区分大小写. 大多以tar.gz 和tar.bz2打包软件,大多是通过 ./configure ;make ;make install 来安装的:有的软件是直接make;make install 常用压缩命令 压缩:tar -j c v -f fi

工作中常用到的linux命令总结

linux系统ubantu debian系统下载文件:wget https://github.com/buger/goreplay/releases/download/v1.0.0/gor_1.0.0_amd64.deb linux系统ubantu debian系统安装deb格式安装包 apt-get install gor_1.0.0_amd64.deb 原文地址:https://www.cnblogs.com/to-here/p/11758774.html