<?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>LinuxByte &#187; Firewall</title>
	<atom:link href="http://www.linuxbyte.org/tag/firewall/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linuxbyte.org</link>
	<description>一个Linux Blog</description>
	<lastBuildDate>Tue, 22 Jun 2010 15:10:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>LINUX下的SYN攻击防御</title>
		<link>http://www.linuxbyte.org/linux-syn-attack-defense.html</link>
		<comments>http://www.linuxbyte.org/linux-syn-attack-defense.html#comments</comments>
		<pubDate>Tue, 12 Feb 2008 13:08:28 +0000</pubDate>
		<dc:creator>xiao H</dc:creator>
				<category><![CDATA[系统网络安全]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[SYN]]></category>

		<guid isPermaLink="false">http://www.linuxbyte.org/linux%e4%b8%8b%e7%9a%84syn%e6%94%bb%e5%87%bb%e9%98%b2%e5%be%a1</guid>
		<description><![CDATA[在怀疑有Dos攻击的时候，可以输入
netstat -an &#124; grep -i &#8220;服务器ip地址:80&#8243; &#124; awk &#8216;{print }&#8217;&#124; sort &#124; uniq -c &#124; sort -n
这个命令会自动统计Tcp连接各个状态的数量，如果SYN_R... ]]></description>
			<content:encoded><![CDATA[<p>在怀疑有Dos攻击的时候，可以输入</p>
<p>netstat -an | grep -i &#8220;服务器ip地址:80&#8243; | awk &#8216;{print }&#8217;| sort | uniq -c | sort -n</p>
<p>这个命令会自动统计Tcp连接各个状态的数量，如果SYN_RECV很高的话，就不能排除有基于tcp协议的ddos攻击的可能，这个时候可以打开tcp_syncookies，输入如下命令<span id="more-6"></span><br />
echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies<br />
如果没有 /proc/sys/net/ipv4/tcp_syncookies说明你的内核不支持，需要重新编译内核<br />
同时 降低syn重试次数</p>
<p>echo 1 &gt; /proc/sys/net/ipv4/tcp_syn_retries<br />
echo 1 &gt; /proc/sys/net/ipv4/tcp_synack_retries<br />
 <br />
加大syn_backlog，以保证用户的访问（消耗内存为代价，设的太高）<br />
echo &#8220;2048&#8243; &gt; /proc/sys/net/ipv4/tcp_max_syn_backlog<br />
 <br />
如果还是不行，那么只能交给相应的硬件防火墙了。</p>
<p>#防止SYN攻击 轻量<br />
/sbin/iptables -N syn-flood<br />
/sbin/iptables -A INPUT -p tcp &#8211;syn -j syn-flood<br />
/sbin/iptables -I syn-flood -p tcp -m limit &#8211;limit 3/s &#8211;limit-burst 6 -j RETURN<br />
/sbin/iptables -A syn-flood -j REJECT</p>
<p>#为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃<br />
/sbin/iptables -A INPUT -s $INNET -p tcp -m state &#8211;state ESTABLISHED,RELATED -j ACCEPT<br />
/sbin/iptables -A INPUT -i $EXTIF -p tcp &#8211;syn -m connlimit &#8211;connlimit-above 15 -j DROP<br />
/sbin/iptables -A INPUT -s $INNET -p tcp &#8211;syn -m connlimit &#8211;connlimit-above 15 -j DROP</p>
<p>#设置icmp阔值 ,并对攻击者记录在案<br />
/sbin/iptables -A INPUT -p icmp -m limit &#8211;limit 3/s -j LOG &#8211;log-level INFO &#8211;log-prefix &#8220;ICMP packet IN:&#8221;<br />
/sbin/iptables -A INPUT -p icmp -m limit &#8211;limit 6/m -j ACCEPT<br />
/sbin/iptables -A INPUT -p icmp -j DROP</p>
<p># 防止端口扫描<br />
iptables -I INPUT -p icmp &#8211;icmp-type echo-request -m state &#8211;state NEW -j DROP<br />
#禁止PING</p>
<p>iptables -A INPUT -i eth0 -p tcp &#8211;tcp-flags ALL FIN,URG,PSH -j DROP<br />
#标志为FIN，URG，PSH拒绝</p>
<p>iptables -A INPUT -i eth0 -p tcp &#8211;tcp-flags SYN,RST SYN,RST -j DROP<br />
iptables -A INPUT -i eth0 -p tcp &#8211;tcp-flags SYN,FIN SYN,FIN -j DROP<br />
iptables -A INPUT -i eth0 -p tcp &#8211;tcp-flags ALL ALL -j DROP<br />
iptables -A INPUT -i eth0 -p tcp &#8211;tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP<br />
iptables -A INPUT -i eth0 -p tcp &#8211;tcp-flags ALL NONE -j DROP</p>
<p>（附：218。94。6。179/188两台服务器安装的WEBMIN限定*。181网关连接，密码为：fangzhi790529）<br />
# 防止SYN FLOOD<br />
iptables -N synfoold<br />
iptables -A synfoold -p tcp &#8211;syn -m limit &#8211;limit 1/s -j RETURN<br />
iptables -A synfoold -p tcp -j REJECT &#8211;reject-with tcp-reset<br />
iptables -A INPUT -p tcp -m state &#8211;state NEW -j synfoold<br />
# 禁止PING</p>
<p>iptables -N ping<br />
iptables -A ping -p icmp &#8211;icmp-type echo-request -m limit &#8211;limit 1/second -j RETURN<br />
iptables -A ping -p icmp -j REJECT<br />
iptables -I INPUT -p icmp &#8211;icmp-type echo-request -m state &#8211;state NEW -j ping<br />
# 端口过滤</p>
<p>#这个script 内容，很适合只允许外面链接特定的 port服务，剩下其余的 port 就拒绝外面主动链接<br />
iptables -A INPUT -i eth0 -p tcp &#8211;dport 21 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 22 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 80 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 389 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 1002 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 1720 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p udp &#8211;dport 2121 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 3306 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 8009 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 8080 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 8081 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -p tcp &#8211;dport 10000 -j ACCEPT<br />
  iptables -A INPUT -i eth0 -m state &#8211;state RELATED,ESTABLISHED -j ACCEPT<br />
  iptables -A INPUT -i eth0 -m state &#8211;state NEW,INVALID -j DROP</p>
<p>ipdrop<br />
　　如果能创建一个特殊的&#8221;ipdrop&#8221;脚本，其被设计为能方便地插入一个规则来阻塞指定的IP，那么将上面的工作将非常容易。通过该脚本阻塞某个IP将是非常容易的工作，只需要几秒钟就可以实现。而且通过该脚本还可以防止手工加入规则时容易出现的错误。因此阻塞黑客的攻击将变为确定其攻击源地址。然后通过如下命令：</p>
<p># ipdrop 129.24.8.1 on</p>
<p>IP 129.24.8.1 drop on.<br />
　　<br />
ipdrop脚本将立即阻塞129.24.8.1。通过使用该脚本能显著地提高你的防卫能力。下面就是ipdrop脚本的</p>
<p>实现：<br />
The ipdrop bash script<br />
#!/bin/bash<br />
source /usr/local/share/dynfw.sh<br />
args 2 $# &#8220;${0} IPADDR {on/off}&#8221; &#8220;Drops packets to/from IPADDR Good for obnoxious networks/hosts/DoS&#8221;<br />
if [ "$2" == "on" ]<br />
   then</p>
<p>#rules will be appended or inserted as normal</p>
<p>APPEND=&#8221;-A&#8221;<br />
INSERT=&#8221;-I&#8221;<br />
rec_check ipdrop $1 &#8220;$1 already blocked&#8221; on<br />
record ipdrop $1<br />
elif [ "$2" == "off" ]<br />
     then</p>
<p>#rules will be deleted instead</p>
<p>APPEND=&#8221;-D&#8221;<br />
INSERT=&#8221;-D&#8221;<br />
rec_check ipdrop $1 &#8220;$1 not currently blocked&#8221;off<br />
unrecord ipdrop $1<br />
     else<br />
      echo &#8220;Error: &#8220;off&#8221; or &#8220;on&#8221; expected as second argument&#8221;<br />
exit 1<br />
   fi</p>
<p>#block outside IP address thats causing problems<br />
#attackers incoming TCP connections will take a minute or so to time out,<br />
#reducing DoS effectiveness.</p>
<p>iptables $INSERT INPUT -s $1 -j DROP<br />
iptables $INSERT OUTPUT -d $1 -j DROP<br />
iptables $INSERT FORWARD -d $1 -j DROP<br />
iptables $INSERT FORWARD -s $1 -j DROP</p>
<p>echo &#8220;IP ${1} drop ${2}&#8221;<br />
ipdrop:解释<br />
　　从上面的脚本源代码中最后四行内容可以看到实际的命令是在防火墙表中插入适当的规则。可以看到$INSERT变量的值取决于在命令行参数中是使用&#8221;on&#8221;还是&#8221;off&#8221;模式。当iptables行被执行时特定的规则将被适当的插入或删除。</p>
<p>　　现在我们看看这些规则本身的功能，它们能和任何类型的防火墙一起发挥作用，甚至在没有部署防火墙的系统上。需要的条件仅仅是支持iptables的Linux2.4版本的内核。我们阻塞来自恶意IP的攻击数据报(第一条iptables语句)，阻塞发向恶意攻击IP的数据报(第二条iptables语句)，并且对该IP关闭任意方向的数据转发(最后两条iptables工具)。一旦这些规则发挥作用系统将丢弃满足这些条件的任何数据报。<br />
　　<br />
    另外一个需要注意的是：脚本中调用了&#8221;rec_check&#8221;, &#8220;unrecord&#8221;, &#8220;record&#8221;,和&#8221;args&#8221;。这些都是定义在&#8221;dynfw.sh&#8221;中的特殊的bash函数。&#8221;record&#8221;函数实现将被阻塞的IP记录在文件/root下隐藏文件dynfw-tcplimit中，而&#8221;unrecord&#8221;则是将其从文件/root下隐藏文件dynfw-tcplimit中去除。&#8221;rec_check&#8221;函数是在发现试图重新阻塞某个已经阻塞的IP地址或取消某个没有被阻塞的IP地址时输出错误信息并停止脚本执行。&#8221;args&#8221;函数实现确保命令行参数的正确性，并实现打印脚本帮助命令。文件dynfw-1.0.tar.gz包含所有的这些工具。<br />
 <br />
 <br />
tcplimit<br />
　　如果你需要对某个特殊的基于TCP的网络服务的使用进行限制(例如在端系统上产生严重负载时)，则tcplimit脚本则可以帮助你达到这个目的，该脚本使用TCP端口、一个率值和&#8221;on&#8221;或&#8221;off&#8221;作为参数：<br />
# tcplimit 873 5 minute on<br />
Port 873 new connection limit (5/minute, burst=5) on.<br />
　　<br />
    tcplimit使用iptables的&#8221;state&#8221;模块(应确保在内核中打开该选项或加载模块)来实现在某段时间内只允许特定数目的连接请求通过。在本例中防火墙将限制每分钟只允许5个新连接到我的rsync服务器(port 873)。当然你可以根据需要选择时间单位为秒钟/分钟/小时。<br />
　　<br />
    tcplimit提供了一个限制对非关键服务的使用的非常好的方法－这样大量到非关键服务的数据不会破坏服务器。在上面的例子中使用tcplimit来设置使用rsync的限制，以防止tsync数据占用了Internet连接的所有带宽。其中连接服务限制信息记录在文件/root下隐藏文件dynfw-tcplimit中。若想关闭该限制只需要键入如下命令：<br />
# tcplimit 873 5 minute off<br />
Port 873 new connection limit off.<br />
　　<br />
    tcplimit通过在&#8221;filter&#8221;表中创建一个新的规则链来实现。这个新的规则链将拒绝所有超过指定限制的数据报，同时将一个规则插入到INPUT规则链中，其将所有的到目标端口(在本例中是873端口)的新连接数据报定向到这个新的规则链。新规则链只会影响新的超过限制的连接而不会影响已经建立的连接。<br />
　　<br />
   当tcplimit定义的规则被关闭，INPUT规则和新规则链则会被删除。象ipdrop一样其tcplimit可以和任何类型的防火墙一起工作。<br />
 <br />
host-tcplimit<br />
　　host-tcplimit和tcplimit非常类似，但是它是限制来自一个特定的IP的到服务器上某个特定端口的TCP连接数量。host-tcplimit在防止某个特定的人滥用你的网络资源时非常有用处。例如你维护有一个CVS服务器，有一天突然发现一个特殊的新开发者出现了，他好像建立了一个脚本每十分钟更新它的资源。占用了大量的网络资源。<br />
　　<br />
   对于这种情况，使用host-tcplimit可以非常容易的解决问题：<br />
 <br />
# host-tcplimit 1.1.1.1 2401 1 day on<br />
　　<br />
现在IP地址为1.1.1.1被限制为每天只能进行一次CVS连接从而节省了网络带宽。</p>
<h3  class="related_post_title">与本文关系暧昧的文字</h3><ul class="related_post"><li><a href="http://www.linuxbyte.org/syn-cookie-firewall.html" title="SYN Cookie Firewall ">SYN Cookie Firewall </a></li><li><a href="http://www.linuxbyte.org/iptables%ef%bc%8dtc-wang-ba-mei-ip-xian-su-jiao-ben.html" title="Iptables＋tc 网吧每IP 限速脚本">Iptables＋tc 网吧每IP 限速脚本</a></li><li><a href="http://www.linuxbyte.org/yong-iptables-er-fei-tc-xian-zhi-liu-liang.html" title="用Iptables 而非tc 限制流量">用Iptables 而非tc 限制流量</a></li><li><a href="http://www.linuxbyte.org/linux-iptables-nat-squid-pdnsd.html" title="网吧Linux 网关设置记录">网吧Linux 网关设置记录</a></li><li><a href="http://www.linuxbyte.org/iptables-command-example.html" title="iptables 基本命令使用举例">iptables 基本命令使用举例</a></li></ul><hr />
<p><small>© xiao H for <a href="http://www.linuxbyte.org">LinuxByte</a>, 2008<br />
Source: <a href="http://www.linuxbyte.org/linux-syn-attack-defense.html">LINUX下的SYN攻击防御</a><br />
<a href="http://www.linuxbyte.org/linux-syn-attack-defense.html#comments">No comment</a><br />
Post tags: <a href="http://www.linuxbyte.org/tag/firewall" rel="tag">Firewall</a>, <a href="http://www.linuxbyte.org/tag/iptables" rel="tag">iptables</a>, <a href="http://www.linuxbyte.org/tag/syn" rel="tag">SYN</a><br/>
</small></p>
	标签：<a href="http://www.linuxbyte.org/tag/firewall" title="Firewall" rel="tag">Firewall</a>, <a href="http://www.linuxbyte.org/tag/iptables" title="iptables" rel="tag">iptables</a>, <a href="http://www.linuxbyte.org/tag/syn" title="SYN" rel="tag">SYN</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.linuxbyte.org/syn-cookie-firewall.html" title="SYN Cookie Firewall (2008-02-12)">SYN Cookie Firewall</a> (1)</li>
	<li><a href="http://www.linuxbyte.org/linux-iptables-nat-squid-pdnsd.html" title="网吧Linux 网关设置记录 (2008-05-27)">网吧Linux 网关设置记录</a> (0)</li>
	<li><a href="http://www.linuxbyte.org/yong-iptables-er-fei-tc-xian-zhi-liu-liang.html" title="用Iptables 而非tc 限制流量 (2009-04-18)">用Iptables 而非tc 限制流量</a> (5)</li>
	<li><a href="http://www.linuxbyte.org/iptables%ef%bc%8dtc-wang-ba-mei-ip-xian-su-jiao-ben.html" title="Iptables＋tc 网吧每IP 限速脚本 (2009-05-09)">Iptables＋tc 网吧每IP 限速脚本</a> (5)</li>
	<li><a href="http://www.linuxbyte.org/iptables-command-example.html" title="iptables 基本命令使用举例 (2008-03-03)">iptables 基本命令使用举例</a> (0)</li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxbyte.org/linux-syn-attack-defense.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SYN Cookie Firewall</title>
		<link>http://www.linuxbyte.org/syn-cookie-firewall.html</link>
		<comments>http://www.linuxbyte.org/syn-cookie-firewall.html#comments</comments>
		<pubDate>Tue, 12 Feb 2008 07:20:49 +0000</pubDate>
		<dc:creator>xiao H</dc:creator>
				<category><![CDATA[精品文档]]></category>
		<category><![CDATA[系统网络安全]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[SYN]]></category>

		<guid isPermaLink="false">http://www.linuxbyte.org/syn-cookie-firewall</guid>
		<description><![CDATA[本文介绍了４个概念
一：介绍SYN
二：什么是SYN洪水攻击
三：什么是SYN cookie
四：什么是SYN cookie防火... ]]></description>
			<content:encoded><![CDATA[<p>原文在：<a target="_blank" href="http://www.bronzesoft.org/projects/scfw/"><font color="#000000">http://www.bronzesoft.org/projects/scfw/</font></a> 翻译：包子</p>
<p>本文介绍了４个概念<br />
一：介绍SYN<br />
二：什么是SYN洪水攻击<br />
三：什么是SYN cookie<br />
<span id="more-5"></span><br />
四：什么是SYN cookie防火墙<br />
C=client(客户器)<br />
S=Server(服务器)<br />
FW=Firewall(防火墙)</p>
<p>一：介绍SYN<br />
SYN cookie是一个防止SYN洪水攻击技术。他由D. J. Bernstein和Eric Schenk发明。现在SYN COOKIE已经是linux内核的一部分了（我插一句，默认的stat是no),但是在linux系统的执行过程中它只保护linux系统。我们这里只是说创建一个linux防火墙，他可以为整个网络和所有的网络操作系统提供SYN COOKIE保护你可以用这个防火墙来阻断半开放式tcp连接，所以这个受保护的系统不会进入半开放状态(TCP_SYN_RECV)。当连接完全建立的时候，客户机到服务器的连接要通过防火墙来中转完成。二：什么是SYN洪水攻击？（来自CERT的警告）<br />
当一个系统（我们叫他客户端）尝试和一个提供了服务的系统（服务器）建立TCP连接，C和服务端会交换一系列报文。这种连接技术广泛的应用在各种TCP连接中，例如telnet,Web,email,等等。<br />
首先是C发送一个SYN报文给服务端，然后这个服务端发送一个SYN-ACK包以回应C，接着，C就返回一个ACK包来实现一次完整的TCP连接。就这样，C到服务端的连接就建立了，这时C和服务端就可以互相交换数据了。下面是上文的图片说明：）<br />
Client Server<br />
&#8212;&#8212; &#8212;&#8212;<br />
SYN&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&gt;</p>
<p>&lt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;SYN-ACK</p>
<p>ACK&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&gt;</p>
<p>Client and server can now<br />
send service-specific data</p>
<p>在S返回一个确认的SYN-ACK包的时候有个潜在的弊端，他可能不会接到C回应的ACK包。这个也就是所谓的半开放连接，S需要耗费一定的数量的系统资源来等待这个未决的连接，虽然这个数量是受限的，但是恶意者可以通过创建很多的半开放式连接来发动SYN洪水攻击。</p>
<p>通过ip欺骗可以很容易的实现半开放连接。攻击者发送SYN包给受害者系统，这个看起来是合法的，但事实上所谓的C根本不会回应这个SYN-ACK报文，这意味着受害者将永远不会接到ACK报文。<br />
而此时，半开放连接将最终耗用受害者所有的系统资源，受害者将不能再接收任何其他的请求。通常等待ACK返回包有超时限制，所以半开放连接将最终超时，而受害者系统也会自动修复。虽然这样，但是在受害者系统修复之前，攻击者可以很容易的一直发送虚假的SYN请求包来持续攻击。<br />
在大多数情况下，受害者几乎不能接受任何其他的请求，但是这种攻击不会影响到已经存在的进站或者是出站连接。虽然这样，受害者系统还是可能耗尽系统资源，以导致其他种种问题。攻击系统的位置几乎是不可确认的，因为SYN包中的源地址多数都是虚假的。当SYN包到达受害者系统的时候，没有办法找到他的真实地址，因为在基于源地址的数据包传输中，源ip过滤是唯一可以验证数据包源的方法。</p>
<p>三：什么是SYN cookie？<br />
SYN cookie就是用一个cookie来响应TCP SYN请求的TCP实现，根据上面的描述，在正常的TCP实现中，当S接收到一个SYN数据包，他返回一个SYN-ACK包来应答，然后进入TCP-SYN-RECV（半开放连接）状态来等待最后返回的ACK包。S用一个数据空间来描述所有未决的连接，然而这个数据空间的大小是有限的，所以攻击者将塞满这个空间。在TCP SYN COOKIE的执行过程中，当S接收到一个SYN包的时候，他返回一个SYN-ACK包，这个数据包的ACK序列号是经过加密的，也就是说，它由源地址，端口源次序，目标地址，目标端口和一个加密种子计算得出。然后S释放所有的状态。如果一个ACK包从C返回，S将重新计算它来判断它是不是上个SYN-ACK的返回包。如果这样，S就可以直接进入TCP连接状态并打开连接。这样，S就可以避免守侯半开放连接了。<br />
以上只是SYN COOKIE的基本思路，它在应用过程中仍然有许多技巧。请在前几年的kernel邮件列表查看archive of discussions的相关详细</p>
<p>内容。<br />
4，什么是SYN COOKIE 防火墙<br />
SYN COOKIE 防火墙是SYN cookie的一个扩展，SYN cookie是建立在TCP堆栈上的，他为linux操作系统提供保护。SYN cookie防火墙是linux的一大特色，你可以使用一个防火墙来保护你的网络以避免遭受SYN洪水攻击。<br />
下面是SYN cookie防火墙的原理<br />
client firewall server<br />
&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;<br />
1. SYN&#8212;&#8212;&#8212;&#8211; &#8211; - &#8211; - &#8211; - &#8211; - &#8211; -&gt;<br />
2. &lt;&#8212;&#8212;&#8212;&#8212;SYN-ACK(cookie)<br />
3. ACK&#8212;&#8212;&#8212;&#8211; &#8211; - &#8211; - &#8211; - &#8211; - &#8211; -&gt;<br />
4. &#8211; - &#8211; - &#8211; - -SYN&#8212;&#8212;&#8212;&#8212;&#8212;&gt;<br />
5. &lt;- &#8211; - &#8211; - &#8211; - &#8211; - &#8212;&#8212;&#8212;&#8212;SYN-ACK<br />
6. &#8211; - &#8211; - &#8211; - -ACK&#8212;&#8212;&#8212;&#8212;&#8212;&gt;</p>
<p>7. &#8212;&#8212;&#8212;&#8211;&gt; relay the &#8212;&#8212;-&gt;<br />
&lt;&#8212;&#8212;&#8212;&#8211; connection &lt;&#8212;&#8212;-<br />
1:一个SYN包从C发送到S<br />
2：防火墙在这里扮演了S的角色来回应一个带SYN cookie的SYN-ACK包给C<br />
3：C发送ACK包，接着防火墙和C的连接就建立了。<br />
4：防火墙这个时候扮演C的角色发送一个SYN给S<br />
5：S返回一个SYN给C<br />
6：防火墙扮演C发送一个ACK确认包给S，这个时候防火墙和S的连接也就建立了<br />
7：防火墙转发C和S间的数据<br />
如果系统遭受SYN Flood，那么第三步就不会有，而且无论在防火墙还是S都不会收到相应在第一步的SYN包，所以我们就击退了这次SYN洪水攻击</p>
<p>五：下载</p>
<p>ip_scfw-0.92.tar.gzhttp://www.bronzesoft.org/projects/scfw/ip_scfw-0.9.2.tar.gz)是最新的版本，他包括一个for linux 2.2.17内核的补丁和管理工具，下载他并按照readme文件安装。</p>
<p>Designhttp://www.bronzesoft.org/projects/scfw/Design）是一个详细的解释了这个代码的文档，它也包含在这个tar-gz包内，你也可以在线阅读它</p>
<p>ChangeLoghttp://www.bronzesoft.org/projects/scfw/ChangeLog）说到了这个计划的进展。</p>
<p>tcpdos.tgzhttp://www.bronzesoft.org/projects/scfw/tcpdos.tgz)是一个发起SYN洪水攻击的工具，你可以使用它来测试你的SYN cookie防火墙</p>
<h3  class="related_post_title">与本文关系暧昧的文字</h3><ul class="related_post"><li><a href="http://www.linuxbyte.org/linux-syn-attack-defense.html" title="LINUX下的SYN攻击防御">LINUX下的SYN攻击防御</a></li></ul><hr />
<p><small>© xiao H for <a href="http://www.linuxbyte.org">LinuxByte</a>, 2008<br />
Source: <a href="http://www.linuxbyte.org/syn-cookie-firewall.html">SYN Cookie Firewall</a><br />
<a href="http://www.linuxbyte.org/syn-cookie-firewall.html#comments">One comment</a><br />
Post tags: <a href="http://www.linuxbyte.org/tag/firewall" rel="tag">Firewall</a>, <a href="http://www.linuxbyte.org/tag/syn" rel="tag">SYN</a><br/>
</small></p>
	标签：<a href="http://www.linuxbyte.org/tag/firewall" title="Firewall" rel="tag">Firewall</a>, <a href="http://www.linuxbyte.org/tag/syn" title="SYN" rel="tag">SYN</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.linuxbyte.org/linux-syn-attack-defense.html" title="LINUX下的SYN攻击防御 (2008-02-12)">LINUX下的SYN攻击防御</a> (0)</li>
</ul>


<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxbyte.org/syn-cookie-firewall.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
