<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chinadu&#039;s Blog &#187; iptables</title>
	<atom:link href="http://www.4shell.org/archives/tag/iptables/feed" rel="self" type="application/rss+xml" />
	<link>http://www.4shell.org</link>
	<description>关注网络安全</description>
	<lastBuildDate>Fri, 10 Feb 2012 03:53:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>用iptables来防止web服务器被CC攻击</title>
		<link>http://www.4shell.org/archives/1091.html</link>
		<comments>http://www.4shell.org/archives/1091.html#comments</comments>
		<pubDate>Sun, 06 Sep 2009 08:16:46 +0000</pubDate>
		<dc:creator>Chinadu</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[CC]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.4shell.org/archives/1091.html</guid>
		<description><![CDATA[当apache站点受到严重的cc攻击，我们可以用iptables来防止web服务器被CC攻击，实现自动屏蔽IP的功能。 1．系统要求 (1)LINUX 内核版本：2.6.9-42ELsmp或2.6.9-55ELsmp（其它内核版本需要重新编译内核，比较麻烦，但是也是可以实现的）。 (2)iptables版本：1.3.7 2. 安装 安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit 3. 配置相应的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 [...]]]></description>
			<content:encoded><![CDATA[<p>当apache站点受到严重的cc攻击，我们可以用iptables来防止web服务器被CC攻击，实现自动屏蔽IP的功能。</p>
<p>1．系统要求</p>
<p>(1)LINUX 内核版本：2.6.9-42ELsmp或2.6.9-55ELsmp（其它内核版本需要重新编译内核，比较麻烦，但是也是可以实现的）。</p>
<p>(2)iptables版本：1.3.7</p>
<p>2. 安装</p>
<p>安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit</p>
<p>3. 配置相应的iptables规则</p>
<p>示例如下：<br />
<span id="more-1091"></span><br />
(1)控制单个IP的最大并发连接数</p>
<p>iptables -I INPUT -p tcp –dport 80 -m connlimit \<br />
–connlimit-above 50 -j REJECT<br />
#允许单个IP的最大连接数为 30</p>
<p>(2)控制单个IP在一定的时间（比如60秒）内允许新建立的连接数</p>
<p>iptables -A INPUT -p tcp –dport 80 -m recent \<br />
–name BAD_HTTP_ACCESS –update –seconds 60 \<br />
–hitcount 30 -j REJECT<br />
iptables -A INPUT -p tcp –dport 80 -m recent \<br />
–name BAD_HTTP_ACCESS –set -j ACCEPT<br />
#单个IP在60秒内只允许最多新建30个连接</p>
<p>4. 验证</p>
<p>（1）工具：flood_connect.c（用来模拟攻击)</p>
<p>（2）查看效果：</p>
<p>使用<br />
watch ‘netstat -an | grep:21 | \ grep< 模拟攻击客户机的IP>| wc -l’</p>
<p>实时查看模拟攻击客户机建立起来的连接数，</p>
<p>使用<br />
watch ‘iptables -L -n -v | \grep< 模拟攻击客户机的IP>’</p>
<p>查看模拟攻击客户机被 DROP 的数据包数。</p>
<p>5．注意</p>
<p>为了增强iptables防止CC攻击的能力，最好调整一下ipt_recent的参数如下：</p>
<p>#cat/etc/modprobe.conf<br />
options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60<br />
#记录1000个IP地址，每个地址记录60个数据包<br />
#modprobe ipt_recent</p>
<p>from:http://tech.ccidnet.com/art/1099/20080429/1434761_1.html</p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2011年11月25日 -- <a href="http://www.4shell.org/archives/2062.html" title="最小化安装CentOS6 VMware-tools安装几点注意事项">最小化安装CentOS6 VMware-tools安装几点注意事项</a></li><li>2011年11月24日 -- <a href="http://www.4shell.org/archives/2059.html" title="linux Backdoor">linux Backdoor</a></li><li>2011年11月24日 -- <a href="http://www.4shell.org/archives/2055.html" title="allinone: Linux pentest tools">allinone: Linux pentest tools</a></li><li>2011年06月10日 -- <a href="http://www.4shell.org/archives/1969.html" title="VMware 硬盘扩容">VMware 硬盘扩容</a></li><li>2011年06月6日 -- <a href="http://www.4shell.org/archives/1958.html" title="Linux下MySQL的load_file常用路径">Linux下MySQL的load_file常用路径</a></li><li>2011年06月6日 -- <a href="http://www.4shell.org/archives/1956.html" title="linux渗透小技巧">linux渗透小技巧</a></li><li>2011年05月26日 -- <a href="http://www.4shell.org/archives/1933.html" title="Linux 安装基于PPTPD的vpn,内网渗透用">Linux 安装基于PPTPD的vpn,内网渗透用</a></li><li>2011年05月16日 -- <a href="http://www.4shell.org/archives/1930.html" title="kernel-2.6.18-164 Local 2010 Exploit Root Private Cant See Images">kernel-2.6.18-164 Local 2010 Exploit Root Private Cant See Images</a></li><li>2011年04月30日 -- <a href="http://www.4shell.org/archives/1920.html" title="Linux基本操作命令">Linux基本操作命令</a></li><li>2011年04月30日 -- <a href="http://www.4shell.org/archives/1919.html" title="让putty支持中文输入和显示">让putty支持中文输入和显示</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.4shell.org/archives/1091.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iptables 指令详解 中文</title>
		<link>http://www.4shell.org/archives/262.html</link>
		<comments>http://www.4shell.org/archives/262.html#comments</comments>
		<pubDate>Mon, 10 Dec 2007 16:17:06 +0000</pubDate>
		<dc:creator>Chinadu</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://202.172.32.240/~shellorg/archives/262.html</guid>
		<description><![CDATA[iptables 指令语法：iptables [-t table] command [match] [-j target/jump]-t 参数用来指定规则表，内建的规则表有三个，分别是：nat、mangle 和 filter，当未指定规则表时，则一律视为是 filter。个规则表的功能如下：nat 此规则表拥有 Prerouting 和 postrouting 两个规则链，主要功能为进行一对一、一对多、多对多等网址转译工作（SNATDNAT），由于转译工作的特性，需进行目的地网址转译的封包，就不...
]]></description>
			<content:encoded><![CDATA[<p>iptables 指令<br />
语法：<br />
iptables [-t table] command [match] [-j target/jump]<br />
-t <span style="color: red;">参数</span>用来指定规则表，内建的规则表有三个，分别是：nat、mangle 和 filter，当未指定规则表时，则一律视为是 filter。<br />
个规则表的功能如下：</p>
<p>nat 此规则表拥有 Prerouting 和 postrouting 两个规则链，主要功能为进行一对一、一对多、多对多等网址转译工作（SNAT<br />
DNAT），由于转译工作的特性，需进行目的地网址转译的封包，就不需要进行来源网址转译，反之亦然，因此为了提升改写封包的<br />
率，在防火墙运作时，每个封包只会经过这个规则表一次。如果我们把封包过滤的规则定义在这个数据表里，将会造成无法对同一<br />
包进行多次比对，因此这个规则表除了作网址转译外，请不要做其它用途。</p>
<p>mangle 此规则表拥有 Prerouting、FORWARD 和 postrouting 三个规则链。<br />
除了进行网址转译工作会改写封包外，在某些特殊应用可能也必须去改写封包（TTL、TOS）或者是设定 MARK（将封包作记号，以<br />
进行后续的过滤），这时就必须将这些工作定义在 mangle 规则表中，由于使用率不高，我们不打算在这里讨论 mangle 的用法。</p>
<p>filter 这个规则表是预设规则表，拥有 INPUT、FORWARD 和 OUTPUT 三个规则链，这个规则表顾名思义是用来进行封包过滤的<br />
理动作（例如：DROP、 LOG、 ACCEPT 或 REJECT），我们会将基本规则都建立在此规则表中。</p>
<p>常用<span style="color: green;">命令</span>列表：<br />
<span style="color: green;">命令</span> -A, --append<br />
范例 iptables -A INPUT ...<br />
说明 新增规则到某个规则链中，该规则将会成为规则链中的最后一条规则。<br />
<span style="color: green;">命令</span> -D, --delete<br />
范例 iptables -D INPUT --dport 80 -j DROP<br />
iptables -D INPUT 1<br />
说明 从某个规则链中删除一条规则，可以输入完整规则，或直接指定规则编号加以删除。<br />
<span style="color: green;">命令</span> -R, --replace<br />
范例 iptables -R INPUT 1 -s 192.168.0.1 -j DROP<br />
说明 取代现行规则，规则被取代后并不会改变顺序。<br />
<span style="color: green;">命令</span> -I, --insert<br />
范例 iptables -I INPUT 1 --dport 80 -j ACCEPT<br />
说明 插入一条规则，原本该位置上的规则将会往后移动一个顺位。<br />
<span style="color: green;">命令</span> -L, --list<br />
范例 iptables -L INPUT<br />
说明 列出某规则链中的所有规则。<br />
<span style="color: green;">命令</span> -F, --flush<br />
范例 iptables -F INPUT<br />
说明 删除某规则链中的所有规则。<br />
<span style="color: green;">命令</span> -Z, --zero<br />
范例 iptables -Z INPUT<br />
说明 将封包计数器归零。封包计数器是用来计算同一封包出现次数，是过滤阻断式攻击不可或缺的工具。<br />
<span style="color: green;">命令</span> -N, --new-chain<br />
范例 iptables -N allowed<br />
说明 定义新的规则链。<br />
<span style="color: green;">命令</span> -X, --delete-chain<br />
范例 iptables -X allowed<br />
说明 删除某个规则链。<br />
<span style="color: green;">命令</span> -P, --policy<br />
范例 iptables -P INPUT DROP<br />
说明 定义过滤政策。 也就是未符合过滤条件之封包，预设的处理方式。<br />
<span style="color: green;">命令</span> -E, --rename-chain<br />
范例 iptables -E allowed disallowed<br />
说明 修改某自订规则链的名称。<br />
常用封包比对<span style="color: red;">参数</span>：<br />
<span style="color: red;">参数</span> -p, --protocol<br />
范例 iptables -A INPUT -p tcp<br />
说明 比对通讯协议类型是否相符，可以使用 ! 运算子进行反向比对，例如：-p ! tcp ，意思是指除 tcp 以外的其它类型，包含<br />
udp、icmp ...等。如果要比对所有类型，则可以使用 all 关键词，例如：-p all。<br />
<span style="color: red;">参数</span> -s, --src, --source<br />
范例 iptables -A INPUT -s 192.168.1.1<br />
说明 用来比对封包的来源 IP，可以比对单机或网络，比对网络时请用数字来表示屏蔽，例如：-s 192.168.0.0/24，比对 IP 时<br />
可以使用 ! 运算子进行反向比对，例如：-s ! 192.168.0.0/24。<br />
<span style="color: red;">参数</span> -d, --dst, --destination<br />
范例 iptables -A INPUT -d 192.168.1.1<br />
说明 用来比对封包的目的地 IP，设定方式同上。<br />
<span style="color: red;">参数</span> -i, --in-interface<br />
范例 iptables -A INPUT -i eth0<br />
说明 用来比对封包是从哪片网卡进入，可以使用通配字符 + 来做大范围比对，例如：-i eth+ 表示所有的 ethernet 网卡，也<br />
以使用 ! 运算子进行反向比对，例如：-i ! eth0。<br />
<span style="color: red;">参数</span> -o, --out-interface<br />
范例 iptables -A FORWARD -o eth0<br />
说明 用来比对封包要从哪片网卡送出，设定方式同上。<br />
<span style="color: red;">参数</span> --sport, --source-port<br />
范例 iptables -A INPUT -p tcp --sport 22<br />
说明 用来比对封包的来源埠号，可以比对单一埠，或是一个范围，例如：--sport 22:80，表示从 22 到 80 埠之间都算是符合<br />
件，如果要比对不连续的多个埠，则必须使用 --multiport <span style="color: red;">参数</span>，详见后文。比对埠号时，可以使用 ! 运算子进行反向比对。<br />
<span style="color: red;">参数</span> --dport, --destination-port<br />
范例 iptables -A INPUT -p tcp --dport 22<br />
说明 用来比对封包的目的地埠号，设定方式同上。<br />
<span style="color: red;">参数</span> --tcp-flags<br />
范例 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN<br />
说明 比对 TCP 封包的状态旗号，<span style="color: red;">参数</span>分为两个部分，第一个部分列举出想比对的旗号，第二部分则列举前述旗号中哪些有被设<br />
，未被列举的旗号必须是空的。TCP 状态旗号包括：SYN（同步）、ACK（应答）、FIN（结束）、RST（重设）、URG（紧急）<br />
PSH（强迫推送） 等均可使用于<span style="color: red;">参数</span>中，除此之外还可以使用关键词 ALL 和 NONE 进行比对。比对旗号时，可以使用 ! 运算子<br />
行反向比对。<br />
<span style="color: red;">参数</span> --syn<br />
范例 iptables -p tcp --syn<br />
说明 用来比对是否为要求联机之 TCP 封包，与 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN 的作用完全相同，如果使用 !<br />
运算子，可用来比对非要求联机封包。<br />
<span style="color: red;">参数</span> -m multiport --source-port<br />
范例 iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110<br />
说明 用来比对不连续的多个来源埠号，一次最多可以比对 15 个埠，可以使用 ! 运算子进行反向比对。<br />
<span style="color: red;">参数</span> -m multiport --destination-port<br />
范例 iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110<br />
说明 用来比对不连续的多个目的地埠号，设定方式同上。<br />
<span style="color: red;">参数</span> -m multiport --port<br />
范例 iptables -A INPUT -p tcp -m multiport --port 22,53,80,110<br />
说明 这个<span style="color: red;">参数</span>比较特殊，用来比对来源埠号和目的埠号相同的封包，设定方式同上。注意：在本范例中，如果来源端口号为 80<br />
目的地埠号为 110，这种封包并不算符合条件。<br />
<span style="color: red;">参数</span> --icmp-type<br />
范例 iptables -A INPUT -p icmp --icmp-type 8<br />
说明 用来比对 ICMP 的类型编号，可以使用代码或数字编号来进行比对。请打 iptables -p icmp --help 来查看有哪些代码可<br />
用。<br />
<span style="color: red;">参数</span> -m limit --limit<br />
范例 iptables -A INPUT -m limit --limit 3/hour<br />
说明 用来</p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2009年09月6日 -- <a href="http://www.4shell.org/archives/1091.html" title="用iptables来防止web服务器被CC攻击">用iptables来防止web服务器被CC攻击</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.4shell.org/archives/262.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

