《运维--PlayBook》更新中.......!请访问: https://ops.cnmysql.com

网站防cc攻击iptables方法 不指定

kangyang , 2015/08/20 09:59 , 黑客攻防 , 评论(0) , 阅读(6593) , Via 本站原创
CC攻击原理
CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。


1、第一种
#!/bin/sh
IP=`tail -1000 access.log| awk '{print $1}' | sort | uniq -c | sort -rn|awk '$1 > 100 {print $2}'`
for i in $IP
do
iptables -I INPUT -p tcp --dport 80 -s $i -j DROP
done

2、第二种
#!/bin/sh
status=`netstat -na|awk '$5 ~ /[0-9]+:[0-9]+/ {print $5}' |awk -F ":" -- '{print $1}' |sort -n|uniq -c |sort -n|tail -n 1`
NUM=`echo $status|awk '{print $1}'`
IP=`echo $status|awk '{print $2}'`
result=`echo "$NUM > 100" | bc`
if [ $result = 1 ]
then
echo IP:$IP is over $NUM, BAN IT! >> ip_deny.txt
/sbin/iptables -I INPUT -s $IP -j DROP
fi

DDOS防护抵御方法 不指定

kangyang , 2015/08/20 09:55 , 黑客攻防 , 评论(0) , 阅读(6186) , Via 本站原创
在安全领域,DDoS(分布式拒绝服务攻击)简单粗暴,是常见攻击方法。而网站型应用,由于有公开的域名和IP,并使用特定的通信协议(TCP),很容易被发起DDoS攻击。友好速搭上线9个月以来,遭受DDoS攻击超过20次,有些攻击流量规模超过100Gbps。

用来区分DDoS攻击类型的名词很多,比如SYN Flood、UDP Flood、ICMP Flood、CC攻击等。从防护角度看,主要可以分为两种类型:带宽消耗型和资源消耗型。
带宽消耗型攻击
带宽消耗型攻击,目的是封堵系统的网络出入口,大都是基于简单网络协议,比如UDP或ICMP,向指定IP发送大量数据包。这类攻击,只能通过增加网络带宽来防御,如果流量特别大,超过了机房网络的承受范围,那只能使用第三方的流量清洗服务,例如安全宝、腾讯大禹系统等。
点击在新窗口中浏览此图片
这类清洗服务,主要提供两类帮助:

域名通过CNAME解析,隐藏应用真实IP
域名解析的IP结果,是防护IP地址,攻击的流量只先到防护的机房,应用的真实IP,只对防护服务商可见。

流量清洗,筛选健康流量发回源站
服务商会通过技术手段,将攻击流量拦截,并筛选出健康流量发给应用。
资源消耗型攻击
资源消耗型攻击,主要目的是耗尽系统资源,比如SYN Flood,会导致主机建立大量TCP连接,耗尽系统句柄,CC攻击发起大量正常请求,超出业务应用的处理上限。这类攻击的流量大小,与攻击者使用的肉鸡数量有关。如果流量特别大,也需要使用上面提到的流量清洗服务。如果流量规模不大,可以通过简单的脚本,识别出攻击代理的IP,并进行屏蔽来防御。

网站使用的HTTP或SSL协议,都是基于传输层TCP协议的应用,TCP协议中的状态变化如下:
点击在新窗口中浏览此图片
可以通过识别不同状态的TCP连接数量,来判断是否攻击IP。

例如,SYN Flood攻击,就是通过建立处于SYN状态的TCP连接,消耗服务器的句柄,遭受这种攻击时,服务器可以查看到,很多TCP连接处于syn-recv状态。

而CC攻击,通常都是向网站发起大量请求,与服务器建立大量TCP连接,状态大都处于established,time-wait,close-wait。

通过 Linux 系统中的ss命令,可以查看各种状态的TCP连接:
ss -ntu state syn-recv state established state time-wait
通过查看IP的TCP连接状态和数量,就能判断出这个IP是否用于DDoS攻击。

基于这个思路,针对资源消耗型攻击,我们开发了一个简单的脚本工具:AntiDDoS。在服务器上部署启动后,会定时查看TCP连接,超过指定连接数量的IP,会被加入iptables屏蔽一段时间,并发邮件通知系统管理员。

下载链接:
https://github.com/yeezon/AntiDDoS

iptables简单防护
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT      #每秒中最多允许5个新连接
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT  #防止各种端口扫描
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT     #Ping洪水攻击(Ping of Death


屏蔽一个IP
# iptables -I INPUT -s 192.168.0.1 -j DROP

怎么防止别人ping我??
# iptables -A INPUT -p icmp -j DROP

防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT

防止各种端口扫描
# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT

Ping洪水攻击(Ping of Death)
#iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT

# NMAP FIN/URG/PSH
# iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP


iptables 屏蔽IP 不指定

kangyang , 2014/09/15 14:50 , 黑客攻防 , 评论(0) , 阅读(3000) , Via 本站原创

IPdeny 下载以国家代码编制好的 IP 地址列表,比如下载 cn.zone:
有了国家的所有 IP 地址,要想屏蔽这些 IP 就很容易了,直接写个脚本逐行读取 cn.zone 文件并加入到 iptables 中:

#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com

COUNTRY="cn"
IPTABLES=/sbin/iptables
EGREP=/bin/egrep

if [ "$(id -u)" != "0" ]; then
   echo "you must be root" 1>&2
   exit 1
fi

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in $COUNTRY
do
        country_file=$c.zone

        IPS=$($EGREP -v "^#|^$" $country_file)
        for ip in $IPS
        do
           echo "blocking $ip"
           $IPTABLES -A INPUT -s $ip -j DROP
        done
done

exit 0


以上脚本可以延伸成防ddos攻击!


Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]