- 浏览: 2539892 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
一、什么是DDOS攻击?
DDoS也就是分布式拒绝服务攻击。它使用与普通的拒绝服务攻击同样的方法,但是发起攻击的源是多个。通 常攻击者使用下载的工具渗透无保护的主机,当获得该主机的适当的访问权限后,攻击者在主机中安装软件的服务或进程(以下简称代理)。这些代理保持睡眠状 态,直到从它们的主控端得到指令,对指定的目标发起拒绝服务攻击。
二、如何确认自己受到DDOS攻击?
在系统上执行:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
执行后,将会显示服务器上所有的每个IP多少个连接数。
每个IP几个、十几个或几十个连接数都还算比较正常,如果有成百上千肯定就不正常了。
三、防范DDOS攻击的方法:
一些常用的防DDOS攻击的方法,罗列如下:
1.增加硬件防火墙和增加硬件设备来承载和抵御DDOS攻击,最基本的方法,但成本比较高。
2.修改SYN设置抵御SYN攻击:
SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,用命令:
sysctl -a | grep syn
看到:
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie
功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN
的重试次数。
加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分
SYN攻击,降低重试次数也有一定效果。
调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3
为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
3.安装iptables对特定ip进行屏蔽。
A.安装iptables和系统内核版本对应的内核模块kernel-smp-modules-connlimit
B. 配置相应的iptables规则
示例如下:
(1)控制单个IP的最大并发连接数
iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 50 -j REJECT
#允许单个IP的最大连接数为 30
(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数
iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –update –seconds 60 \
–hitcount 30 -j REJECT
iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –set -j ACCEPT
#单个IP在60秒内只允许最多新建30个连接
(3)用iptables屏蔽IP
iptables -I RH-Lokkit-0-50-INPUT 1 -p tcp -m tcp -s 213.8.166.227 --dport 80 --syn -j REJECT
指定端口的参数是--dport 80;多了--syn参数,可以自动检测sync攻击
(4)使用iptables禁止ping:
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT-A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-port-unreachable
(5)允许某ip连接
iptables -I RH-Firewall-1-INPUT 1 -p tcp -m tcp -s 192.168.0.51 --syn -j ACCEPT
C. 验证
(1)工具:flood_connect.c(用来模拟攻击)
(2)查看效果:
使用
watch ‘netstat -an | grep:21 | \ grep《 模拟攻击客户机的IP》| wc -l’
实时查看模拟攻击客户机建立起来的连接数,
使用
watch ‘iptables -L -n -v | \grep《 模拟攻击客户机的IP》’
查看模拟攻击客户机被 DROP 的数据包数。
D.注意
为了增强iptables防止CC攻击的能力,最好调整一下ipt_recent的参数如下:
#cat/etc/modprobe.conf
options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
#记录1000个IP地址,每个地址记录60个数据包
#modprobe ipt_recent
E.可编写脚本自动提取攻击ip然后自动屏蔽:
*/2 * * * * /usr/local/nginx/var/log/drop.sh
#!/bin/sh
cd /usr/local/nginx/var/log
tail access.log -n 1000 |grep vote.php | |sort |uniq -c |sort -nr |awk ‘{if ($2!=null && $1》50)}’ 》 drop_ip.txt
for i in `cat drop_ip.txt`
do
/sbin/iptables -I INPUT -s $i -j DROP;
done
这shell 每几分钟执行一次,就可自动屏蔽那些不正常IP,相信大家都看的懂,下面是针对连接数屏蔽代码
#!/bin/sh
/bin/netstat -ant |grep 80 |awk ‘{print $5}’ |awk -F : ‘{print $1}’ |sort |uniq -c |sort -rn |grep -v -E ‘192.168|127.0’ |awk ‘{if ($2!=null && $1》50)}’ 》 drop_ip.txt
for i in `cat drop_ip.txt`
do
/sbin/iptables -I INPUT -s $i -j DROP;
done
说下,grep -v -E ‘192.168|127.0’ 也就是排除内网IP,免得把自己给屏蔽了,当然还可以加些自己的IP。
4.安装DDoS deflate自动抵御DDOS攻击:
DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.
DDoS deflate官方网站:
(1)安装DDoS deflate
wget http://www.inetbase.com/scripts/ddos/install.sh chmod 0700 install.sh ./install.sh
(2)配置DDoS deflate
下面是DDoS deflate的默认配置位于/usr/local/ddos/ddos.conf ,内容如下:
##### Paths of the script and other files
PROGDIR=”/usr/local/ddos”
PROG=”/usr/local/ddos/ddos.sh”
IGNORE_IP_LIST=”/usr/local/ddos/ignore.ip.list” //IP地址白名单
CRON=”/etc/cron.d/ddos.cron” //定时执行程序
APF=”/etc/apf/apf”
IPT=”/sbin/iptables”
##### frequency in minutes for running the script
##### Caution: Every time this setting is changed run the script with –cron
##### option so that the new frequency takes effect
FREQ=1 //检查时间间隔,默认1分钟
##### How many connections define a bad IP? Indicate that below.
NO_OF_CONNECTIONS=150 //最大连接数,超过这个数IP就会被屏蔽,一般默认即可
##### APF_BAN=1 (Make sure your APF version is atleast 0.96)
##### APF_BAN=0 (Uses iptables for banning ips instead of APF)
APF_BAN=1 //使用APF还是iptables,推荐使用iptables
##### KILL=0 (Bad IPs are’nt banned good for interactive execution of script)
##### KILL=1 (Recommended setting)
KILL=1 //是否屏蔽IP,默认即可
##### An email is sent to the following address when an IP is banned.
##### Blank would suppress sending of mails
EMAIL_TO=”root” //当IP被屏蔽时给指定邮箱发送邮件,推荐使用,换成自己的邮箱即可
##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整
用户可根据给默认配置文件加上的注释提示内容,修改配置文件。
喜欢折腾的可以用Web压力测试软件(《Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程》)测试一下效果,这东西只能防御小流量的攻击了,聊胜于无吧。
5.APACHE上安装mod_evasive 组件增强抵御力
mod_evasive是一个预防Apache 遭受DDos 攻击的模块,可以防止同一个IP 对相同URI 发出的大量请求,可设定的选项有:
– 限制同一个IP 在一定秒数内请求一个页面或档案的次数。
– 限制同一个IP 一秒内只可发出50 个请求。
– 设定被禁止的 IP 封锁时间。
以下是 mod_evasive 的安装方法:
A. 先将原来的 httpd.conf 备份起来。
B. 到
C. 在指令模式解压及编译 mod_evasive:
tar zxvf mod_evasive_1.10.1.tar.gz
cd mod_evasive/
apxs -cia mod_evasive20.c
以上的apxs 会放在Apache 的bin 目录内;如果Apache 版本是1.3 的话,指令要改为:
apxs -cia mod_evasive.c
安装好mod_evasive 后,便要修改httpd.conf 内容。
D. 开启 httpd.conf,加入以内容:
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 10
DOSBlockingPeriod 600
DOSHashTableSize — 这是占用内存的大小,如果服务器比较繁忙,这个数值要设定大一点。
DOSPageCount — 同一IP 在一个时段内可以存取同一页面的次数,超过会被禁止。
DOSSiteCount — 同一IP 在一个网站内可以占用多少object,超过会禁止。
DOSPageInterval — DOSPageCount 内的时段设定。
DOSSiteInterval — DOSSiteCount 的时间设定,以秒为单位。
DOSBlockingPeriod — 当发现疑似攻击后,使用者会收到403 Forbidden,这是设定封锁的时间,以秒为单位。
E. 最后重新启动 Apache 即可。
不定时补充。
发表评论
-
设置sudo为不需要密码
2015-04-17 09:04 10511有时候我们只需要执 ... -
haproxy 安装配置和负载实例
2015-03-27 11:49 11533一、环境说明实验环境 OS CentOS5.4 192.1 ... -
/dev/mapper/VolGroup00-LogVol00 100% 如何处理
2015-03-03 10:51 8212服务器磁盘跑满了, 命令查看 如下 [root@lo ... -
Tsar开源:淘宝内部大量使用的系统监控工具
2014-08-07 09:51 972Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告 ... -
Linux运维常用命令 (转载)
2013-01-31 10:23 25261 删除0字节文件find-type f - ... -
linux恢复 rm -rf 删除的文件:extundelete
2013-01-24 15:47 8913http://blog.csdn.net/pang6013 ... -
网站排障分析常用的命令
2013-01-21 18:17 1399------------------------------- ... -
迁移vmware服务器后Device eth0 does not seem to be present
2013-01-21 10:58 2251用VMware 安装 linux 6.0 ... -
LoadRunner如何监控Linux系统资源 : rpc.rstatd
2012-12-17 14:49 10297一 简述:LoadRunner监控Linux资源时弹出如下错误 ... -
僵尸Z进程和D进程
2012-12-10 16:47 13149-------------- 1 关于ZOMBIE进 ... -
Unix操作系统硬链接与符号链接的区别
2012-12-10 16:08 2022Unix操作系统有很多值得 ... -
nagios配置参数详解
2012-12-04 14:12 9444# Nagios return codes#定 ... -
nagios自定义监控nginx php和ip_conn
2012-12-03 17:57 3169自定义ip_conn.sh :http://zhume ... -
【汇总】shell show收藏
2012-11-29 14:03 1269================== shell从文本取对应的 ... -
Kickstart+PXE+DHCP+TFTP+NFS自动安装Centos5
2012-11-29 11:34 1603http://5ydycm.blog.51cto.com/11 ... -
haproxy+keepalived高可用负载均衡(七层)
2012-11-29 10:36 4007HAproxy是一款基于TCP( ... -
LVS+Keepalived
2012-11-29 10:10 1736http://www.linuxvirtualserver.o ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7594http://network.51cto.com/art/ ... -
运维架构师-并不遥远的彼岸
2012-11-28 17:45 1736在百度里搜索运维架构师,你会发现招聘的职位还不少并且月薪、年 ... -
puppet模块汇总
2012-11-21 17:08 3028在磁盘上,一个模块对应一个特殊的目录结构: MODULE_ ...
相关推荐
Linux系统提供了多种方式来防御DDOS攻击,本文将介绍其中的一些方法。 1. 调整TCP/IP协议参数 DDOS攻击 thường利用TCP/IP协议的弱点,通过大量的SYN请求来填满服务器的网络队列,使得服务器无法响应正常的用户...
在Linux环境下,防范CC(Challenge Collapsar)这种特定类型的DDoS攻击是一项重要的任务。CC攻击主要针对Web服务,通过模拟大量合法用户请求来耗尽服务器资源。 以下是一些在Linux系统下防止CC攻击的策略和工具: ...
centos,linux使用ddos的防止流量攻击。 一般的vps小服务器使用 小范围的阻止
针对文档“基于DDoS攻击的电商企业网络安全模型的设计与实现.pdf”提供的内容,我们可以提炼出以下知识点: 1. 电子商务网络安全问题:文档指出电子商务中网络安全问题日益凸显,成为电商企业长远发展的重大难题。...
标题中的“awl-0.2.tar.gz”是一个Linux下的开源工具包,用于模拟TCP SYN洪水攻击。这种攻击是网络层DDoS(分布式拒绝服务)攻击的一种常见形式,它利用TCP连接建立过程中的三次握手来消耗目标服务器的资源,从而使...
### 毕业设计——完整...总之,《毕业设计—完整的DDoS攻防策略》这篇论文不仅详细介绍了Linux系统的基本知识,还深入探讨了DDoS攻击的特点及应对方法,为网络安全领域的研究人员和工程师们提供了一份宝贵的参考资料。
【标题】"LOIC(低轨道离子加农炮) 工具使用方法"涉及的是一个名为LOIC(Low Orbit Ion Cannon)的网络攻击工具。这个工具通常被用于分布式拒绝服务(DDoS,Distributed Denial of Service)攻击,这是一种网络攻击...
在本研究中,研究人员在Snort工具上实现了防DDoS攻击的入侵检测功能。Snort是一款开源的网络入侵检测系统,可以实时分析网络流量,识别异常行为并发出警报。 6. **Snort工具的改进**:研究中提到,通过使用IP地址的...
**FastNetMon是一款高效能的DDoS攻击分析工具,它专为快速检测和响应网络中的分布式拒绝服务(DDoS)攻击而设计。该工具利用多种数据包捕获引擎,包括NetFlow、IPFIX、sFLOW、SnabbSwitch、netmap、PF_RING以及PCAP...
【Linux网络流量测试方法】 在当今的数字世界中,分布式拒绝服务(DDoS)...通过深入理解Linux的网络管理功能,并结合实际的测试场景,可以为网络安全专业人员提供有力的工具和方法来保护网络资源免受DDoS攻击的影响。
Linux下的发包工具SendIP是一款强大的网络协议构造和发送工具,它允许用户自定义网络数据包的每一个细节,包括协议头、负载等。这个工具在网络安全测试、网络研究以及故障排查等领域有着广泛的应用。SendIP提供了...
这些工具能够模拟大规模的SYN请求,以评估服务器处理异常流量的能力和恢复速度,帮助用户了解其网络在面临SYN Flood攻击时的防御能力。 【标签】:“发包” "发包"是指在网络通信中发送数据包的行为,这里的“发包...
3. 网络攻击:Sniffer嗅探工具可以检测到网络攻击,例如DDoS攻击、SQL注入攻击等。 4. 安全协议漏洞:Sniffer嗅探工具可以检测到安全协议漏洞,例如SSL/TLS漏洞、SSH漏洞等。 Linux下的Sniffer嗅探可以使用的工具...
本实验报告是关于DDoS模拟与测试的项目,旨在深入理解DDoS攻击机制,并进行实际操作。 1. 开发工具与环境: 实验采用Python 2.7.10作为主要编程语言,PyCharm作为集成开发环境,支持编写和调试代码。同时,...
在Linux环境下,Apache防攻击模块通常是作为Apache服务器的一部分,以模块的形式加载到服务器进程中。Linux_FILTER可能是一个示例,它可能包含了一些过滤规则,用于检查HTTP请求头和请求主体,对潜在的攻击进行拦截...
在处理DDoS攻击时,Linux系统管理员可以利用各种工具,如iptables、netfilter等,构建防火墙规则,限制特定IP地址或流量模式,以减轻DDoS的影响。 数据安全在DDoS防御中扮演着核心角色。通过对网络流量进行深度包...
【描述】中提到的“全套发包机搭建教程”是一个关于构建分布式拒绝服务(DDoS)攻击工具的指南,这通常涉及利用多台计算机或设备向目标服务器发送大量数据包,以使其资源过载并导致服务中断。"附带脚本"指的是可能...
使用Linux内核的安全选项、Linux虚拟服务器、iptables防火墙以及基于类的排队等技术搭建防范DDoS攻击的Web服务器系统环境,设计、实现了流量监控器和分析工具来检测可能发生的DDoS攻击,并降低其危害。实际测试表明...
通过这种方式,可以在一定程度上抵御Webbench等压力测试工具发起的DDoS攻击,同时减少对正常服务的影响。然而,这种方案也有其局限性,例如可能无法应对大规模、复杂多变的DDoS攻击,因此在实际环境中,还应结合...
迪普科技采用智能的 DNS DDoS 攻击识别技术,通过实时分析 DNS 解析失败率、DNS 响应报文与请求报文的比例关系等方法,准确识别各种针对 DNS 的 DDoS 攻击,避免产生漏报和误报,并且通过专业的线性 DNS 攻击防御...