<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[防ddos攻击:用 Nginx 限制模块减轻 DDoS 攻击,Apache Anti DDOS安装。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 12 Jun 2011 14:54:26 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	方法一：<br/>防ddos攻击<br/>Sysctl 修改<br/>vi /etc/rc.local<br/>加入如下文本 <br/>sysctl kern.ipc.maxsockets=100000&nbsp;&nbsp;&nbsp;&nbsp;##增加并发的socket，对于ddos很有用<br/>sysctl kern.ipc.somaxconn=65535&nbsp;&nbsp;&nbsp;&nbsp;##打开文件数<br/>sysctl net.inet.tcp.msl=2500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;##timeout时间<br/><br/><br/><br/>优化Linux内核参数<br/>vi /etc/sysctl.conf<br/>在末尾增加如下文本 <br/>net.core.netdev_max_backlog =&nbsp;&nbsp;32768<br/>net.core.somaxconn = 32768<br/>net.core.wmem_default = 8388608<br/>net.core.rmem_default = 8388608<br/>net.core.rmem_max = 16777216<br/>net.core.wmem_max = 16777216<br/><br/>net.ipv4.tcp_max_syn_backlog = 65536<br/>net.ipv4.tcp_timestamps = 0<br/>net.ipv4.tcp_synack_retries = 2<br/>net.ipv4.tcp_syn_retries = 2<br/>net.ipv4.tcp_tw_recycle = 1<br/>net.ipv4.tcp_tw_reuse = 1<br/>net.ipv4.tcp_mem = 94500000 915000000 927000000<br/>net.ipv4.tcp_max_orphans = 3276800<br/>net.ipv4.ip_local_port_range = 1024&nbsp;&nbsp;65535<br/><br/><br/>方法二：<br/>Nginx 内核带有限制并发和速率模块，我们可以用这个模块来缓和 VPS 的 Load。<br/>我们需要 Nginx 的：<br/>limit_zone<br/>语法：limit_zone zone_name $variable memory_max_size<br/>环境：http<br/>limit_conn<br/>语法：limit_conn zone_name max_clients_per_ip<br/>环境：http, server, location<br/>limit_rate （可选）<br/>语法：limit_rate speed<br/>环境：http, server, location, if in location<br/>例子：<br/># 警告！例子仅供参考！记得备份原来的文件！&nbsp;&nbsp;<br/> # Nginx.conf 的位置：/usr/local/nginx/conf/nginx.conf&nbsp;&nbsp;<br/> http&#123;&nbsp;&nbsp;<br/> #... 省掉 N 字&nbsp;&nbsp;<br/># 下面这段受攻击时用，平常不要用&nbsp;&nbsp;<br/> # 来自 http://cd34.com/blog/webserver/ddos-attack-mitigation/&nbsp;&nbsp;<br/> # //------------------------------------&nbsp;&nbsp;<br/> client_body_timeout 10;&nbsp;&nbsp;<br/> # 该指令用于设置读取客户端请求内容的超时时间，默认是 60，&nbsp;&nbsp;<br/>client_header_timeout 10;&nbsp;&nbsp;<br/> # 该指令用于设置读取客户端请求 Header 头信息的超时时间，默认是 60&nbsp;&nbsp;<br/>keepalive_timeout 10;&nbsp;&nbsp;<br/> # 该指令用于设置 keep-alive 连接超时时间，之后服务器会中断连接，默认是 75&nbsp;&nbsp;<br/>send_timeout 10;&nbsp;&nbsp;<br/> # 该指令用于设置发送给客户端的应答超时时间。超时时间是指进行了两次 TCP 握手，&nbsp;&nbsp;<br/> # 还没有转为 established 状态的时间。&nbsp;&nbsp;<br/> # 如果超过这个时间，客户端没有响应，Nginx 关闭连接&nbsp;&nbsp;<br/> # //----------------------------------&nbsp;&nbsp;<br/>limit_zone one $binary_remote_addr 16m;&nbsp;&nbsp;<br/> # one = 区名，可以随便你叫，后面要一致（看 limit_conn）&nbsp;&nbsp;<br/> # $binary_remote_addr = 用二进制来储存客户端的地址，1 MB 可以储存 32000 个会话&nbsp;&nbsp;<br/> &#125;&nbsp;&nbsp;<br/> server&#123;&nbsp;&nbsp;<br/> #... 省掉 N 字&nbsp;&nbsp;<br/>limit_conn one 2;&nbsp;&nbsp;<br/># 允许 2 个连接（one 要跟 limit_zone 的变量对应）&nbsp;&nbsp;<br/>limit_rate_after 5m;&nbsp;&nbsp; <br/># 传送 5Mb 后开始限速（就算没用上，默认是 1m）&nbsp;&nbsp;<br/>limit_rate 100k;&nbsp;&nbsp; <br/># 限速为 100KB/秒&nbsp;&nbsp;<br/>&#125;&nbsp;&nbsp;<br/>总结：<br/>1、总速度可以去到 200KB/秒左右，一个连接可以去到 100KB，两个就 200KB（数学题）<br/>2、如果你在下载， 又打开网页就，会返回 503 “Service unavailable”，因为太多连接<br/>3、缓解 DDoS 还得靠那几个 timeout 的部分<br/>重要提醒：<br/>1、限制模块是不能防止 DDoS，它是用来减小 Load<br/>2、真正的方法应该是，找出那个攻击者 IP，再用 iptables 封掉它<br/>3、非必要时，不要用这个限制模块，它会给你的网站带来不便<br/><br/>来源：http://www.uuhar.com/server/linux/web/24.html<br/>http://www.excms.cn/manual/install-centos-nginx.html#ddos<br/><br/><br/>Apache Anti DDOS：<br/>mod_evasive 是 apache 的 3rd party 模組，利用限定來源的<br/>HTTP 存取方式來避免遭受到拒絕服務攻擊<br/>必要安裝套件<br/>yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel <br/>1. 下載套件<br/>wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz <br/>2. 安裝套件<br/>tar -zxvf mod_evasive_1.10.1.tar.gz <br/>cd mod_evasive <br/>apxs -i -a -c mod_evasive20.c <br/>3. Apache設定檔新增相關設定<br/>vi /etc/httpd/conf/httpd.conf <br/>DDOS Moudle<br/>LoadModule evasive20_module modules/mod_evasive20.so <br/>LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so <br/>Anti D.o.S<br/><IfModule mod_evasive20.c><br/>DOSHashTableSize 3097<br/>DOSPageCount 2<br/>DOSSiteCount 50<br/>DOSPageInterval 1<br/>DOSSiteInterval 1<br/>DOSBlockingPeriod 1800<br/>DOSEmailNotify admin@domain.com<br/>DOSLogdir /var/log/httpd_DoS<br/>DOSWhitelist 127.0.0.1<br/>DOSWhitelist 1.1.1.1 <br/>DOSWhitelist 1.2.3.4 <br/></IfModule><br/>參數說明<br/>DOSmailNotify 發現疑似攻擊時，要寄發通知的信箱<br/>DOSLogdir 設定LOG存放路徑<br/>DOSWhitelist 設定進行不阻擋的白名單IP<br/>4. 重啟Apache服務<br/>/etc/init.d/httpd restart <br/>5. 測試 mod_evasive 是否正常運作<br/>mod_evasive 提供了測試程式 test.pl，可執行下列指令<br/>用以測試該模組是否有正常運作<br/>perl test.pl<br/>如果設定正常，執行 perl.pl 後會回傳 403 forbiden 等相關的訊息<br/>blog.imomo.tw/blog/2013/05/19/apache-anti-ddos/
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 防ddos攻击:用 Nginx 限制模块减轻 DDoS 攻击,Apache Anti DDOS安装。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>