DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.
DDoS deflate其实是一个Shell脚本,使用netstat和iptables工具,对那些链接数过多的IP进行封锁,能有效防止通用的恶意扫描器,但它并不是真正有效的DDoS防御工具。
DDoS deflate工作过程描述:
同一个IP链接到服务器的连接数到达设置的伐值后,所有超过伐值的IP将被屏蔽,同时把屏蔽的IP写入ignore.ip.list文件中,与此同时会在tmp中生成一个脚本文件,这个脚本文件马上被执行,但是一
运行就遇到sleep预设的秒,当睡眠了这么多的时间后,解除被屏蔽的IP,同时把之前写入ignore.ip.list文件中的这个被封锁的IP删除,然后删除临时生成的文或凳明件。
一个事实:如果被屏蔽的IP手工解屏蔽,那么如果这个IP继续产生攻击,那么脚本将不会再次屏蔽它(因为加入到了ignore.ip.list),直到在预设的时间之后才能起作用,加入到了ignore.ip.list中的
IP是检测的时候忽略的IP。可以把IP写入到这个文件以避免这些IP被堵塞,已经堵塞了的IP也会加入到ignore.ip.list中,但堵塞了预定时间后会从它之中删除衫告。
如何确认是否受到DDOS攻击?
[root@test3-237 ~]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1 Address
1 servers)
2 103.10.86.5
4 117.36.231.253
4 19.62.46.24
6 29.140.22.18
8 220.181.161.131
2911 167.215.42.88
每个IP几个、十几个或几十个连接数都还算比较正常,如果像上面成百上千肯定就不正粗颤常了。比如上面的167.215.42.88,这个ip的连接有2911个!这个看起来就很像是被攻击了!
Linux 防止DDOS方法方法一:先说这个简单效果不大的方法,Linux一般是apache做web服务软件,一般来说按照访问习惯全是设置的80端口。你可以改变一下服务端口,编辑httpd.conf文件,Linux下不清楚路径可以
find / -name httpd.conf
然后
vi $path$/httpd.conf
找到里面的
listen:80
更改为
listen:8080
重新启动apache,这样你的站点就运行游汪世在8080端口下了。
方法二:,方法一中攻击者如果对你足够关注的话还是会再攻击你的8080端口,所以还是会死得很惨,那么如何更有效的阻止攻击呢。这就要用到iptables了,安装一下iptables然后再配置一下。
iptables下载:
http://www.netfilter.org/downloads.html
下载文件的名字一般是iptables-1.*.*.tar.bz2
下载完后解压缩
tar -xvjf ./iptables-1.*.*.tar.bz2 -C /usr/src
我是解压到了/usr/src里
然后
cd /usr/src/iptables-1.*.*
安装:
/bin/sh -c make
/bin/sh -c make install
可以用iptables -V来检查安装是否正确。
如果有问题用这个命令修复一下
cp ./iptables /sbin
iptables的使用:
安装了iptables后先关闭ICMP服务
iptables -A OUTPUT -p icmp -d 0/0 -j DROP
这个是做什么的呢,最简单直观的说就是你服务器上的ip不能被ping到了,这个能防止一部分攻击神肢。
比如你跟你的ISP联系了知道了ddos的来源ip 200.200.200.1可以用下面这个命令来阻止来自这个ip的数据流
iptables -A INPUT -s 200.200.200.1 -j DROP
说明:这个命令里200.200.200.1/24 200.200.200.* 格式都是有效的。
执行完后你输入命令
iptables -L
会看到下面的结果
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 200.200.200.1 anywhere
你每输入一个iptables命令都会有个对应的num号,比如上面你执行的这个是第一次执行的那么这个对应的input id就是1,删除这个限制只要
iptables -D INPUT 1就可以了。
因为在DDOS这个过程里很多ip是伪造的,如果你能找到他们的来源的mac地址(你太厉害了,太有关系了)那么你还可以用这个命令来禁止来自这个mac地址的数据流:
iptables -A INPUT --mac-source 00:0B:AB:45:56:42 -j DROP
以上是几个简单应用,关于一些别的陵侍应用我下面给出的英文文献里还有,大家可以根据自己的情况来利用iptables防止DDOS攻击。
服务器出搜脊现缓慢的状况可能由很多事情导致,比如错误的配置,脚本和差的硬件。但是有时候它可能因为有人对你的服务器用DoS或者DDoS进行洪水攻击。如何在Linux上使用netstat命令查证DDOS攻击
DoS攻击或者DDoS攻击是试图让机器或者网络资源不可用的攻击。这种攻击的攻击目标网站或者服务通常是托管在高防服务器比如银行,xyk支付网管,甚至根域名服务器,DOS攻击的实施通常迫使目标重启计算机或者消耗资源,使他们不再提供服务或者妨碍用户,访客访问。
在这篇小文章中,你可以知道在受到攻击之后如何在终端中使用netstat命令检查你的服务器。
一些例子和解释
netstat -na显示所有连接到服务器的活跃的网络连接netstat -an | grep :80 | sort只显示连接到80段口的活跃的网络连接,80是http端口,这对于web服务器非常有用,并且对结果排序.对于你从许多的连接中找出单个发动洪水攻击IP非常有用netstat -n -p|grep SYN_REC | wc -l这个命令对于在服务器上找出活跃的SYNC_REC非常有用,数量应该很低,最好少于5.在dos攻击和邮件炸d,这个数字可能非常高.然而值通世誉渗常依赖于系统,所以高的值可能平分给另外的服务器.netstat -n -p | grep SYN_REC | sort -u列出所有包含的IP地址而不仅仅是计数.netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'列出所有不同的IP地址节点发送SYN_REC的连接状态netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n使用netstat命令来计算每个IP地址对服务器的连接数量netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n列出使用tcp和udp连接到服务器的数目netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr检查ESTABLISHED连接而不是所有连接,这可以每个ip的连接数netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1显示并且列出连接到80端口IP地址和连接数.80被用来作为HTTP
如何缓解DDoS攻击
当你发现攻击你服务器的IP你可以使用下面的命令来关闭他们的连接:
iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
请注意你必须用你使用netstat命令找到的IP数替换$IPADRESS
在完成以上的命令,使用下面的命令杀掉所有httpd连接,清除你的系统,然后重启httpd服务。
killall -KILL httpd service httpd start #For Red Hat systems /etc/init/d/apache2 restar
Linux系统用netstat命令查看DDOS攻击具体命令用法如下:
代码如下:netstat -na
显示所有连接到服务器的活跃的网络连接
代码如下:netstat -an | grep :80 | sort
只显示连接到80段口的活跃的网络连接,80是http端口,这对于web服务器非常有用,并且对结果排序.对于你从许多的连接中找出单个发动洪水攻击IP非常有用
代码如下:netstat -n -p|grep SYN_REC | wc -l
这个命令对于在服务器上找出活跃的SYNC_REC非常有用,数量应该很低,最好少于5.
在dos攻击和邮件炸d,这个数字可能非常高.然而值通常依赖于系统,所以高的值可能平分给虚乱另外的服务器.
代码如下:netstat -n -p | grep SYN_REC | sort -u
列出所有包含的IP地址而不仅仅是计数.
代码如下:netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出所有不同的IP地址节点发送SYN_REC的连接状态
代码如下:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
使用netstat命令来计算每个IP地址对服务器的连接数量
代码如下:netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出使用tcp和udp连接到服务器的数目
代码如下:netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
检查ESTABLISHED连接而不是所有连接,这可以每个ip的连接数
代码如下:netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
显示并且列出连接到80端口IP地址和连接数.80被用来作为HTTP
如何缓解ddos攻击
当你发现攻击你服务器的IP你可以使用下面的命令来关闭他们的连接:
代码如下:iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
请注意你必须用你使用netstat命令找到的IP数替换$IPADRESS
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)