<?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>PT Ubuntu Blog &#187; iptables</title>
	<atom:link href="http://www.ptubuntu.com/tag/iptables/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ptubuntu.com</link>
	<description>Ruijin to linux 生活中的每一点点滴滴……</description>
	<lastBuildDate>Mon, 30 Jan 2012 09:17:42 +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>linux 简单架设防火墙路由器</title>
		<link>http://www.ptubuntu.com/2011/01/4076.html</link>
		<comments>http://www.ptubuntu.com/2011/01/4076.html#comments</comments>
		<pubDate>Tue, 11 Jan 2011 06:57:54 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[系统工具]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=4076</guid>
		<description><![CDATA[操作基于ubuntu server10.10 上进行安装配置.进行配置iptables.ip转换.mac过虑功能. 1.建iptables root@ptubuntufirewall:/# vi /etc/init.d/iptables #fLUSH THE FILTER,NAT,Mangle chain! /sbin/iptables -F -t filter /sbin/iptables -F -t nat /sbin/iptables -F -t mangle &#160; #Flush the user&#39;s chain /sbin/iptables -t filter -X /sbin/iptables -t nat -X /sbin/iptables -t mangle -X &#160; #Set default policies to DROP /sbin/iptables -P INPUT ACCEPT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables [...]]]></description>
			<content:encoded><![CDATA[<p>操作基于ubuntu server10.10 上进行安装配置.进行配置iptables.ip转换.mac过虑功能.</p>
<p>1.建iptables</p>
<blockquote><p><span style="color:#f00;">root@ptubuntufirewall:/# vi /etc/init.d/<a href="http://www.ptubuntu.com/tag/iptables" class="st_tag internal_tag" rel="tag" title="标签 iptables 下的日志">iptables</a></span></p>
</blockquote>
<blockquote><div>#fLUSH THE FILTER,NAT,Mangle chain!</div>
<div>/sbin/iptables -F -t filter</div>
<div>/sbin/iptables -F -t nat</div>
<div>/sbin/iptables -F -t mangle</div>
<div>&nbsp;</div>
<div>#Flush the user&#39;s chain</div>
<div>/sbin/iptables -t filter -X</div>
<div>/sbin/iptables -t nat -X</div>
<div>/sbin/iptables -t mangle -X</div>
<div>&nbsp;</div>
<div>#Set default policies to DROP</div>
<div>/sbin/iptables -P INPUT ACCEPT</div>
<div>/sbin/iptables -P OUTPUT ACCEPT</div>
<div>/sbin/iptables -P FORWARD ACCEPT</div>
<div>&nbsp;</div>
<div>#LAN NAT</div>
<div>/sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE</div>
<div>#/sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE</div>
<div>&nbsp;</div>
<div>if [ -f /etc/access_mac.conf ] &nbsp; &nbsp;</div>
<div>then</div>
<div>&nbsp;&nbsp; &nbsp;for i in `cat /etc/access_mac.conf | grep &quot;^[^#]&quot; | tr -s &quot;[\012]&quot; | cut -c1-17` ; do</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;/sbin/iptables -A FORWARD -m mac &#8211;mac-source $i -i eth0 -j ACCEPT</div>
<div>&nbsp;&nbsp; &nbsp;done</div>
<div>fi</div>
<div>&nbsp;</div>
<div>/sbin/iptables -A FORWARD -i eth0 -j DROP</div>
<div>
<div>#VNC View Ptubuntu 这下面两条指:访问外网ip可以转换到内网ip:端口</div>
<div>/sbin/iptables -A PREROUTING -t nat -p tcp -m tcp -i eth1 &#8211;dport 5888 -j DNAT &#8211;to-destination 192.168.0.110:5888</div>
<div>/sbin/iptables -A PREROUTING -t nat -p tcp -m tcp -i eth1 &#8211;dport 5988 -j DNAT &#8211;to-destination 192.168.0.110:5988</div>
</div>
<div>&nbsp;</div>
</blockquote>
<div>2.设置要过虑的网卡:access_mac.conf</div>
<div><span id="more-4076"></span></div>
<blockquote><div><meta content="text/html; charset=utf-8" http-equiv="content-type" /><span style="color:#f00;">root@ptubuntufirewall:/#vi /etc/access_mac.conf&nbsp;</span></div>
</blockquote>
<div>
<blockquote>
<div>#MAC address &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Employee Name OR SERVER Name</div>
<div>#Server Netcard Mac Address</div>
<div>00:e0:4c:39:00:00 &nbsp; &nbsp; &nbsp; System Server eth0</div>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
<div>00:e0:4c:39:00:00&nbsp;&nbsp; &nbsp; &nbsp; System Server eth1</div>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
<div>00:e0:4c:39:00:00&nbsp;&nbsp; &nbsp; &nbsp;ptubuntu Server eth0 在这里添加你需要上网的网卡mac地址</div>
</blockquote>
<div>3.<span class="Apple-style-span" style="font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 18px; color: rgb(0, 0, 0); ">sysctl设置参数．能用sysctl来设置或重新设置连网功能，如IP转发、IP碎片去除及源路由检查等</span></div>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /><br />
<blockquote>
<div><span class="Apple-style-span" style="color: rgb(255, 0, 0); ">root@ptubuntufirewall:/#</span><span style="color:#f00;">&nbsp;cat /etc/sysctl.conf<br />
			</span>net.ipv4.ip_forward=<span style="color:#f00;">1</span>&nbsp;&nbsp;#把０改为１就可以了</div>
</blockquote>
</div>
<div>４.设置让它自动启动iptalbes.</div>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
<blockquote><div><span class="Apple-style-span" style="color: rgb(255, 0, 0); ">root@ptubuntufirewall:/#</span><span style="color:#f00;">&nbsp;update-rc.d iptables defaults 99<br />
		显示如下表示成功.</span></div>
</blockquote>
<div>
<blockquote>
<div>update-rc.d: warning: /etc/init.d/iptables missing LSB information</div>
<div>update-rc.d: see &lt;http://wiki.debian.org/LSBInitScripts&gt;</div>
<div>&nbsp;Adding system startup for /etc/init.d/iptables &#8230;</div>
<div>&nbsp;&nbsp; /etc/rc0.d/K99iptables -&gt; ../init.d/iptables</div>
<div>&nbsp;&nbsp; /etc/rc1.d/K99iptables -&gt; ../init.d/iptables</div>
<div>&nbsp;&nbsp; /etc/rc6.d/K99iptables -&gt; ../init.d/iptables</div>
<div>&nbsp;&nbsp; /etc/rc2.d/S99iptables -&gt; ../init.d/iptables</div>
<div>&nbsp;&nbsp; /etc/rc3.d/S99iptables -&gt; ../init.d/iptables</div>
<div>&nbsp;&nbsp; /etc/rc4.d/S99iptables -&gt; ../init.d/iptables</div>
<div>&nbsp;&nbsp; /etc/rc5.d/S99iptables -&gt; ../init.d/iptables</div>
</blockquote>
<div>5.还需要安装dhcp服务器.</div>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /><br />
<blockquote>
<div><span class="Apple-style-span" style="color: rgb(255, 0, 0); ">root@ptubuntufirewall:/#</span>aptitude install dhcp3-server</div>
<div><meta content="text/html; charset=utf-8" http-equiv="content-type" /><span class="Apple-style-span" style="color: rgb(255, 0, 0); ">root@ptubuntufirewall:/#</span>vi /etc/dhcp3/dhcpd.conf</div>
<div>文档内容:</div>
<div>
<div>option domain-name &quot;ptubuntufirewall.com&quot;;</div>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" />
<div>option domain-name-servers 8.8.4.4, 8.8.8.8;</div>
<div>&nbsp;</div>
<div>default-lease-time 18000;</div>
<div>max-lease-time 36000;</div>
</div>
<div>
<div>subnet 192.168.0.0 netmask 255.255.255.0 {</div>
<div>&nbsp;&nbsp;range dynamic-bootp 192.168.0.100 192.168.0.255;</div>
<div>&nbsp;&nbsp;option subnet-mask 255.255.255.0;</div>
<div>&nbsp;&nbsp;option broadcast-address 192.168.0.255;</div>
<div>&nbsp;&nbsp;option routers 192.168.0.252;</div>
<div>&nbsp;&nbsp;option time-offset -18000;</div>
<div>}</div>
</div>
</blockquote>
<div>完后需要重启计算机才可以使用.</div>
<div>6.设置网卡的IP地址.</div>
<blockquote><div><meta content="text/html; charset=utf-8" http-equiv="content-type" /><span class="Apple-style-span" style="color: rgb(255, 0, 0); ">root@ptubuntufirewall:/#</span><span style="color: rgb(255, 0, 0); ">&nbsp;vi /etc/network/interfaces</span></div>
</blockquote>
<div>
<blockquote>
<div>文档内容:</div>
<div>auto lo</div>
<div>iface lo inet loopback</div>
<div>&nbsp;</div>
<div># The primary network interface</div>
<div>auto eth0</div>
<div>#iface eth0 inet dhcp</div>
<div>iface eth0 inet static</div>
<div>address 192.168.0.252</div>
<div>netmask 255.255.255.0</div>
<div>auto eth1</div>
<div>iface eth1 inet static</div>
<div>&nbsp;&nbsp; &nbsp;address 59.58.*.6 &nbsp; 外网IP地址</div>
<div>&nbsp;&nbsp; &nbsp;netmask 255.255.255.248</div>
<div>&nbsp;&nbsp; &nbsp;gateway 59.58.*.1　外网网关</div>
</blockquote>
</div>
<div>&nbsp;</div>
<div>6.测试:ping</div>
<div><meta content="text/html; charset=utf-8" http-equiv="content-type" /><br />
<blockquote>
<div><span class="Apple-style-span" style="color: rgb(255, 0, 0); ">root@ptubuntufirewall:/#</span>&nbsp;ping 192.168.0.252</div>
<div><meta content="text/html; charset=utf-8" http-equiv="content-type" /><span class="Apple-style-span" style="color: rgb(255, 0, 0); ">root@ptubuntufirewall:/#ping 8.8.8.8外网IP都可以正常.</span></div>
</blockquote>
<div>7.设置客户端.</div>
<div>现在就可以自动获取ip地址.如果你需要手动设置IP那么你的默认网关就是你路由的IP地址.192.168.0.252</div>
<div>&nbsp;</div>
<div>注:在dhcp没有配置好启动会出错.Starting DHCP server: dhcpd3 failed to start &#8211; check syslog for diagnostics.</div>
</div>
</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2011%2F01%2F4076.html&amp;title=linux%20%E7%AE%80%E5%8D%95%E6%9E%B6%E8%AE%BE%E9%98%B2%E7%81%AB%E5%A2%99%E8%B7%AF%E7%94%B1%E5%99%A8" id="wpa2a_2"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2011/01/4076.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>使用iptables保护邮件服务器</title>
		<link>http://www.ptubuntu.com/2009/08/3015.html</link>
		<comments>http://www.ptubuntu.com/2009/08/3015.html#comments</comments>
		<pubDate>Wed, 12 Aug 2009 15:06:20 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[技术类]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=3015</guid>
		<description><![CDATA[在订阅extmail的文章会不定时发送一些内容.但有些觉的还不错.特别是这个有关iptables的设置邮件方面.现在很多做防火墙只是专一的防火墙.所以你在做邮件服务器可以同时使用这个那更加不错了.下面这些是来处extmail. 以下是我测试iptables的一些实例,相信在邮件服务器也用得着,所以分享给大家看看. 实验环境: 192.168.1.0/255.255.255.0 服务器 Debian(etch)4.0 IP:192.168.1.96 客户机1 Windows XP SP2 IP:192.168.1.90 客户机2 Windows XP SP2 IP:192.168.1.234 iptables以顺序方式执行,从上到下! 常用iptables维护命令： #iptables -L -n  显示当前iptables规则 #iptables-save &#62; /etc/iptables-script 保存规则 #iptables-restore /etc/iptables-script 恢复保存的规则 设置iptables开机自动加载规则,添加以下内容至/etc/rc.local文件中即可 /sbin/iptables-restore /etc/iptables-script 需要注意的是，必须写完全路径，要不然系统找不到命令与规则及脚本 1,缺省策略，让信息毫无限制地流出，但不允许信息流入 #iptables -P INPUT DROP #iptables -P FORWARD DROP #iptables -P OUTPUT ACCEPT 2,允许192.168.1.90无限制连接至192.168.1.96服务器(便于维护与测试服务器) #iptables -A INPUT -s 192.168.1.90 -d 192.168.1.96 -j [...]]]></description>
			<content:encoded><![CDATA[<p>在订阅extmail的文章会不定时发送一些内容.但有些觉的还不错.特别是这个有关iptables的设置邮件方面.现在很多做防火墙只是专一的防火墙.所以你在做邮件服务器可以同时使用这个那更加不错了.下面这些是来处<a href="http://www.extmail.org/forum/viewthread.php?tid=11309" target="_self">extmail</a>.</p>
<p>以下是我测试iptables的一些实例,相信在<span onclick="tagshow(event)">邮件</span><span onclick="tagshow(event)">服务器</span>也用得着,所以分享给大家看看.</p>
<p>实验环境: 192.168.1.0/255.255.255.0<br />
服务器 Debian(etch)4.0 IP:192.168.1.96<br />
客户机1 Windows XP SP2 IP:192.168.1.90<br />
客户机2 Windows XP SP2 IP:192.168.1.234</p>
<p>iptables以顺序方式执行,从上到下!<br />
<span id="more-3015"></span><br />
常用iptables维护命令：<br />
#<a href="http://www.ptubuntu.com/tag/iptables" class="st_tag internal_tag" rel="tag" title="标签 iptables 下的日志">iptables</a> -L -n  显示当前iptables规则<br />
#iptables-save &gt; /etc/iptables-script 保存规则<br />
#iptables-restore /etc/iptables-script 恢复保存的规则</p>
<p>设置iptables开机自动加载规则,添加以下内容至/etc/rc.local文件中即可<br />
/sbin/iptables-restore /etc/iptables-script<br />
需要注意的是，必须写完全路径，要不然<span onclick="tagshow(event)">系统</span>找不到命令与规则及脚本</p>
<p>1,缺省策略，让信息毫无限制地流出，但不允许信息流入<br />
#iptables -P INPUT DROP<br />
#iptables -P FORWARD DROP<br />
#iptables -P OUTPUT ACCEPT</p>
<p>2,允许192.168.1.90无限制连接至192.168.1.96服务器(便于维护与测试服务器)<br />
#iptables -A INPUT -s 192.168.1.90 -d 192.168.1.96 -j ACCEPT</p>
<p>3,允许127.0.0.1环路<br />
#iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT<br />
#iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT</p>
<p>4,允许局域网192.168.1.0内的所有机器能访问192.168.1.96服务器的80端口<br />
#iptables -A INPUT -p tcp -s 192.168.1.0/24 -d 192.168.1.96 &#8211;dport 80 -j ACCEPT</p>
<p>5,拒绝192.168.1.92 Ping 192.168.1.96<br />
#iptables -A INPUT -p icmp -s 192.168.1.92 -d 192.168.1.96 -j DROP</p>
<p>6,拒绝所有Ping<br />
#iptables -A INPUT -p icmp -j DROP</p>
<p>7,拒绝192.168.1.96 Ping 192.168.1.8<br />
#iptables -A OUTPUT -p icmp -s 192.168.1.96 -d 192.168.1.8 -j DROP</p>
<p>8,拒绝192.168.1.234连接192.168.1.96的80端口<br />
#iptables -A INPUT -p tcp -s 192.168.1.234 -d 192.168.1.96 &#8211;dport 80 -j DROP</p>
<p>9,允许192.168.1.96服务器使用Ping<br />
#iptables -A INPUT -p icmp -d 192.168.1.96 -j ACCEPT</p>
<p>10,允许<span onclick="tagshow(event)"><a href="http://www.ptubuntu.com/tag/dns" class="st_tag internal_tag" rel="tag" title="标签 dns 下的日志">DNS</a></span>查询<br />
#iptables -A INPUT -p udp &#8211;sport 53 -j ACCEPT<br />
#iptables -A INPUT -p tcp &#8211;sport 80 -j ACCEPT (注:上网好像需要开这个端口???)</p>
<p>11,允许来自192.168.1.234的电脑Ping服务器192.168.1.96<br />
#iptables -A INPUT -p icmp -s 192.168.1.234 -j ACCEPT</p>
<p>12,如果要自己能ping人家，而人家不能ping你，可以：<br />
#iptables -A INPUT -p icmp &#8211;icmp-type 8 -s 0/0 -j DROP<br />
#iptables -A INPUT -p icmp &#8211;icmp-type 0 -s 0/0 -j ACCEPT<br />
#iptables -A OUTPUT -p icmp &#8211;icmp-type 0 -s 192.168.1.96 -j DROP<br />
#iptables -A OUTPUT -p icmp &#8211;icmp-type 8 -s 192.168.1.96 -j DROP<br />
注:icmp的type 0为回显应答(Ping应答),8为请求回显(Ping请求).Tcpip第6章ICMP:Internet控制报文协议</p>
<p>13,无法使用apt-get update解决方法<br />
iptables -A INPUT -m state &#8211;state ESTABLISHED,RELATED -j ACCEPT</p>
<p>14,使用FTP问题<br />
#modprobe ip_nat_ftp 加载模块<br />
#modprobe ip_conntrack<br />
#modprobe ip_conntrack_ftp<br />
#iptables -A INPUT -p tcp &#8211;sport 21 -j ACCEPT<br />
#iptables -A INPUT -P tcp &#8211;dport 21 -j ACCEPT<br />
#iptables -A INPUT -m state &#8211;state ESTABLISHED,RELATED -j ACCEPT</p>
<p>15,查看某一条规则序号并删除<br />
#iptables -L -n &#8211;line-numbers<br />
iptables -D INPUT 8</p>
<p>16,拒绝192.168.1.90连接服务器的80端口(注意,必须放在允许规则前面)<br />
#iptables -I INPUT 1 -p tcp -s 192.168.1.90 -d 192.168.1.96 &#8211;dport 80 -j DROP<!--more--></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F08%2F3015.html&amp;title=%E4%BD%BF%E7%94%A8iptables%E4%BF%9D%E6%8A%A4%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8" id="wpa2a_4"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/08/3015.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iptables 控制企业内部网络的安全</title>
		<link>http://www.ptubuntu.com/2009/08/3003.html</link>
		<comments>http://www.ptubuntu.com/2009/08/3003.html#comments</comments>
		<pubDate>Mon, 10 Aug 2009 15:51:04 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux Server]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=3003</guid>
		<description><![CDATA[相信大家懂的Iptables吧.但是很多新手还不是很熟练.或是你还没有找到一个合适你模板.不过要先iptables那么你先要了解相关的基础本命令.那下面先了解一下.后面再给你介绍详细配置方案.配置基于debian. 先给你介绍的是网卡的设置这是一个关键: # ifconfig eth0      Link encap:Ethernet  HWaddr 00:e0:4c:c8:39:b9 inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0 inet6 addr: fe80::2e0:4cff:fec8:39b9/64 Scope:Link UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 RX packets:502065636 errors:22329 dropped:21701 overruns:8006 frame:0 TX packets:401033134 errors:0 dropped:0 overruns:2 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3487518346 (3.2 GiB)  TX bytes:2143557870 (1.9 GiB) Interrupt:5 Base address:0xd000 eth1      Link encap:Ethernet [...]]]></description>
			<content:encoded><![CDATA[<p>相信大家懂的Iptables吧.但是很多新手还不是很熟练.或是你还没有找到一个合适你模板.不过要先iptables那么你先要了解相关的基础本命令.那下面先了解一下.后面再给你介绍详细配置方案.配置基于debian.</p>
<p>先给你介绍的是网卡的设置这是一个关键:</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># ifconfig</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">eth0      Link encap:Ethernet  HWaddr 00:e0:4c:c8:39:b9</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">inet6 addr: fe80::2e0:4cff:fec8:39b9/64 Scope:Link</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">RX packets:502065636 errors:22329 dropped:21701 overruns:8006 frame:0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TX packets:401033134 errors:0 dropped:0 overruns:2 carrier:0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">collisions:0 txqueuelen:1000</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">RX bytes:3487518346 (3.2 GiB)  TX bytes:2143557870 (1.9 GiB)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Interrupt:5 Base address:0xd000</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">eth1      Link encap:Ethernet  HWaddr 00:d0:4c:bf:64:7b</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">inet addr:59.58.97.2  Bcast:59.58.97.7  Mask:255.255.255.248</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">inet6 addr: fe80::2d0:4cff:febf:647b/64 Scope:Link</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">RX packets:406220891 errors:50131 dropped:38667 overruns:17485 frame:0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TX packets:505473378 errors:0 dropped:0 overruns:1 carrier:0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">collisions:0 txqueuelen:1000</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">RX bytes:1976175154 (1.8 GiB)  TX bytes:3851143830 (3.5 GiB)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Interrupt:10 Base address:0xb800</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">eth2      Link encap:Ethernet  HWaddr 00:ee:b1:02:55:91</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">inet addr:192.168.9.1  Bcast:192.168.9.255  Mask:255.255.255.0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">inet6 addr: fe80::2ee:b1ff:fe02:5591/64 Scope:Link</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">RX packets:439427 errors:1892 dropped:1776 overruns:724 frame:0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TX packets:273258 errors:0 dropped:0 overruns:0 carrier:0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">collisions:0 txqueuelen:1000</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">RX bytes:616630361 (588.0 MiB)  TX bytes:22112074 (21.0 MiB)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Interrupt:11 Base address:0xb400</div>
<p>ptubuntu.com# ifconfig</p>
<blockquote><p><span style="color: #ff0000;">eth0</span> Link encap:Ethernet  HWaddr 00:e0:pt:ub:un:tu</p>
<p>inet addr:<span style="color: #ff0000;">192.168.0.1</span> Bcast:192.168.0.255  Mask:255.255.255.0</p>
<p><span style="color: #ff0000;">eth1</span> Link encap:Ethernet  HWaddr 00:e0:pt:ub:un:tu</p>
<p>inet addr:<span style="color: #ff0000;">58.58.98.8</span> Bcast:58.58.98.8   Mask:255.255.255.248</p>
<p><span style="color: #ff0000;">eth2</span> Link encap:Ethernet  HWaddr 00:e0:pt:ub:un:tu</p>
<p>inet addr:<span style="color: #ff0000;">192.168.9.1</span> Bcast:192.168.9.255  Mask:255.255.255.0</p>
<p><span style="color: #ff0000;"> 注:eht0,eht2 内网IP地址 eth1外网IP地址</span></p></blockquote>
<p>下面这个是配置iptables配置文档.</p>
<blockquote><p>ptubuntu.com#vi /etc/init.d/<a href="http://www.ptubuntu.com/tag/iptables" class="st_tag internal_tag" rel="tag" title="标签 iptables 下的日志">iptables</a></p></blockquote>
<p><span id="more-3003"></span></p>
<blockquote><p>#fLUSH THE FILTER,NAT,Mangle chain!</p>
<p>/sbin/iptables -F -t filter</p>
<p>/sbin/iptables -F -t nat</p>
<p>/sbin/iptables -F -t mangle</p>
<p>#Flush the user&#8217;s chain</p>
<p>/sbin/iptables -t filter -X</p>
<p>/sbin/iptables -t nat -X</p>
<p>/sbin/iptables -t mangle -X</p>
<p>#Set default policies to DROP</p>
<p>/sbin/iptables -P INPUT ACCEPT</p>
<p>/sbin/iptables -P OUTPUT ACCEPT</p>
<p>/sbin/iptables -P FORWARD ACCEPT</p>
<p>#LAN NAT  内网转外网.</p>
<p>/sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE</p>
<p>#/sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE</p>
<p>/sbin/iptables -A POSTROUTING -t nat -s 192.168.9.2 -o eth1 -j MASQUERADE</p>
<p>#Drop Web Server  阻止外网的IP地址.</p>
<p>/sbin/iptables -A FORWARD -i eth0 -p tcp -d 218.5.00.116 -j DROP</p>
<p>#Drop out 80 port (FORWARD -i <span style="font-family: Verdana; line-height: 15px; ">-i -in-interface [!] [name]</span></p>
<p><span style="font-family: Verdana; line-height: 15px; ">i -进入的（网络）接口 [!][名称]<br />
</span></p>
<p><span style="font-family: Verdana; line-height: 15px; ">这是包经由该接口接收的可选的入口名称，包通过该接口接收（在链INPUT、FORWORD和PREROUTING中进入的包）。当在接口名前使用”!”说明后，指的是相反的名称。如果接口名后面加上”+”，则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略，会假设为”+”，那么将匹配任意接口。</span> )</p>
<p>#/sbin/iptables -A FORWARD -i eth0 -p tcp &#8211;dport 80 -j DROP</p>
<p>所以上面这行说明阻止任何80端口进入服务器.</p>
<p>if [ -f /etc/access_mac.conf ]</p>
<p>then</p>
<p>for i in `cat /etc/access_mac.conf | grep “^[^#]” | tr -s “[\012]” | cut -c1-17` ; do</p>
<p>/sbin/iptables -A FORWARD -m mac &#8211;mac-source $i -i eth0 -j ACCEPT</p>
<p>done</p>
<p>fi</p>
<p>上面这段是设置相关的mac地址.只有在这个mac地址的电脑才可以上网.这个主要是用shell语言写的.</p>
<p>/sbin/iptables -A FORWARD -i eth0 -j DROP</p>
<p>#Drop Incomeing Hacker</p>
<p>/sbin/iptables -A INPUT -s 202.194.0.0 -i eth1 -j DROP</p>
<p>#Http Services DNAT</p>
<p>/sbin/iptables -A PREROUTING -t nat -p tcp -m tcp -i eth0 -d 59.00.00.0 &#8211;dport 8080 -j DNAT &#8211;to-destination 192.168.0.2:80</p>
<div>这个是内部机器的端口转换.</div>
</blockquote>
<p><span style="color: #ff0000;">有关mac址地的格式.</span></p>
<p><span style="color: #ff0000;"> </span></p>
<blockquote><p><span style="color: #000000;">ptubuntu.com#/etc/access_mac.conf</span></p>
<p><span style="color: #000000;">#MAC address            Employee Name OR SERVER Name</span></p>
<p><span style="color: #000000;">#Server Netcard Mac Address</span></p>
<p><span style="color: #000000;">00:14:38:0d:00:00     test</span></p>
<p><span style="color: #000000;">00:e0:4c:00:00:01       System Server eth0</span></p>
<p><span style="color: #000000;">00:e0:4c:00:00:02       System Server eth1</span></p></blockquote>
<p>相关参考如下:<a href="http://www.ptubuntu.com/tag/shell" class="st_tag internal_tag" rel="tag" title="标签 shell 下的日志">shell</a> tr语法查看:<a href="http://www.chinaitpower.com/2005September/2005-09-13/204673.html">http://www.chinaitpower.com</a></p>
<blockquote><p><span style="line-height: 15px;"><span style="color: #008000;">IPtables命令详解</span></span></p>
<p><span style="color: #008000;">用iptables -ADC 来指定链的规则，-A添加 -D删除 -C 修改<br />
iptables - [RI] chain rule num rule-specification[option]<br />
用iptables - RI 通过规则的顺序指定</span></p>
<p><span style="color: #008000;">iptables -D chain rule num[option]<br />
删除指定规则<br />
iptables -[LFZ] [chain][option]<br />
用iptables -LFZ 链名 [选项]</span></p>
<p><span style="color: #008000;">iptables -[NX] chain<br />
用 -NX 指定链</span></p>
<p><span style="color: #008000;">iptables -P chain target[options]<br />
指定链的默认目标</span></p>
<p><span style="color: #008000;">iptables -E old-chain-name new-chain-name<br />
-E 旧的链名 新的链名<br />
用新的链名取代旧的链名<br />
说明<br />
Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。<br />
可以定义不同的表，每个表都包含几个内部的链，也能包含用户定义的链。每个链都是一个规则列表，对对应的包进行匹配：每条规则指定应当如何处理与之相匹配的包。这被称作&#8217;target&#8217;（目标），也可以跳向同一个表内的用户定义的链。</span></p>
<p><span style="color: #008000;">TARGETS<br />
防火墙的规则指定所检查包的特征，和目标。如果包不匹配，将送往该链中下一条规则检查；如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者 RETURN[返回]。<br />
ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配，到前一个链的规则重新开始。如果到达了一个内建的链(的末端)，或者遇到内建链的规则是RETURN，包的命运将由链准则指定的目标决定。</span></p>
<p><span style="color: #008000;">TABLES<br />
当前有三个表（哪个表是当前表取决于内核配置选项和当前模块)。<br />
-t table<br />
这个选项指定命令要操作的匹配包的表。如果内核被配置为自动加载模块，这时若模块没有加载，(系统)将尝试(为该表)加载适合的模块。这些表如下：filter,这是默认的表，包含了内建的链INPUT（处理进入的包）、FORWORD（处理通过的包）和OUTPUT（处理本地生成的包）。nat,这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成：PREROUTING (修改到来的包)、OUTPUT（修改路由之前本地的包）、POSTROUTING（修改准备出去的包）。mangle 这个表用来对指定的包进行修改。它有两个内建规则：PREROUTING（修改路由之前进入的包）和OUTPUT（修改路由之前本地的包）。<br />
OPTIONS<br />
这些可被iptables识别的选项可以区分不同的种类。</span></p>
<p><span style="color: #008000;">COMMANDS<br />
这些选项指定执行明确的动作：若指令行下没有其他规定,该行只能指定一个选项.对于长格式的命令和选项名,所用字母长度只要保证iptables能从其他选项中区分出该指令就行了。<br />
-A -append<br />
在所选择的链末添加一条或更多规则。当源（地址）或者/与 目的（地址）转换为多个地址时，这条规则会加到所有可能的地址(组合)后面。</span></p>
<p><span style="color: #008000;">-D -delete<br />
从所选链中删除一条或更多规则。这条命令可以有两种方法：可以把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规则。</span></p>
<p><span style="color: #008000;">-R -replace<br />
从选中的链中取代一条规则。如果源（地址）或者/与 目的（地址）被转换为多地址，该命令会失败。规则序号从1开始。</span></p>
<p><span style="color: #008000;">-I -insert<br />
根据给出的规则序号向所选链中插入一条或更多规则。所以，如果规则序号为1，规则会被插入链的头部。这也是不指定规则序号时的默认方式。</span></p>
<p><span style="color: #008000;">-L -list<br />
显示所选链的所有规则。如果没有选择链，所有链将被显示。也可以和z选项一起使用，这时链会被自动列出和归零。精确输出受其它所给参数影响。</span></p>
<p><span style="color: #008000;">-F -flush<br />
清空所选链。这等于把所有规则一个个的删除。</span></p>
<p><span style="color: #008000;">&#8211;Z -zero<br />
把所有链的包及字节的计数器清空。它可以和 -L配合使用，在清空前察看计数器，请参见前文。</span></p>
<p><span style="color: #008000;">-N -new-chain<br />
根据给出的名称建立一个新的用户定义链。这必须保证没有同名的链存在。</span></p>
<p><span style="color: #008000;">-X -delete-chain<br />
删除指定的用户自定义链。这个链必须没有被引用，如果被引用，在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数，这条命令将试着删除每个非内建的链。</span></p>
<p><span style="color: #008000;">-P -policy<br />
设置链的目标规则。</span></p>
<p><span style="color: #008000;">-E -rename-chain<br />
根据用户给出的名字对指定链进行重命名，这仅仅是修饰，对整个表的结构没有影响。TARGETS参数给出一个合法的目标。只有非用户自定义链可以使用规则，而且内建链和用户自定义链都不能是规则的目标。</span></p>
<p><span style="color: #008000;">-h Help.<br />
帮助。给出当前命令语法非常简短的说明。</span></p>
<p><span style="color: #008000;">PARAMETERS<br />
参数<br />
以下参数构成规则详述，如用于add、delete、replace、append 和 check命令。</span></p>
<p><span style="color: #008000;">-p -protocal [!]protocol<br />
规则或者包检查(待检查包)的协议。指定协议可以是tcp、udp、icmp中的一个或者全部，也可以是数值，代表这些协议中的某一个。当然也可以使用在/etc/protocols中定义的协议名。在协议名前加上”!”表示相反的规则。数字0相当于所有all。Protocol all会匹配所有协议，而且这是缺省时的选项。在和check命令结合时，all可以不被使用。<br />
-s -source [!] address[/mask]<br />
指定源地址，可以是主机名、网络名和清楚的IP地址。mask说明可以是网络掩码或清楚的数字，在网络掩码的左边指定网络掩码左边”1&#8243;的个数，因此，mask值为24等于255.255.255.0。在指定地址前加上”!”说明指定了相反的地址段。标志 &#8211;src 是这个选项的简写。</span></p>
<p><span style="color: #008000;">-d &#8211;destination [!] address[/mask]<br />
指定目标地址，要获取详细说明请参见 -s标志的说明。标志 &#8211;dst 是这个选项的简写。</span></p>
<p><span style="color: #008000;">-j &#8211;jump target<br />
-j 目标跳转<br />
指定规则的目标；也就是说，如果包匹配应当做什么。目标可以是用户自定义链（不是这条规则所在的），某个会立即决定包的命运的专用内建目标，或者一个扩展（参见下面的EXTENSIONS）。如果规则的这个选项被忽略，那么匹配的过程不会对包产生影响，不过规则的计数器会增加。</span></p>
<p><span style="color: #008000;">-i -in-interface [!] [name]<br />
i -进入的（网络）接口 [!][名称]<br />
这是包经由该接口接收的可选的入口名称，包通过该接口接收（在链INPUT、FORWORD和PREROUTING中进入的包）。当在接口名前使用”!”说明后，指的是相反的名称。如果接口名后面加上”+”，则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略，会假设为”+”，那么将匹配任意接口。</span></p>
<p><span style="color: #008000;">-o &#8211;out-interface [!][name]<br />
-o &#8211;输出接口[名称]<br />
这是包经由该接口送出的可选的出口名称，包通过该口输出（在链FORWARD、OUTPUT和POSTROUTING中送出的包）。当在接口名前使用”!”说明后，指的是相反的名称。如果接口名后面加上”+”，则所有以此接口名开头的接口都会被匹配。如果这个选项被忽略，会假设为”+”，那么将匹配所有任意接口。</span></p>
<p><span style="color: #008000;">[!] -f, &#8211;fragment<br />
[!] -f &#8211;分片<br />
这意味着在分片的包中，规则只询问第二及以后的片。自那以后由于无法判断这种把包的源端口或目标端口（或者是ICMP类型的），这类包将不能匹配任何指定对他们进行匹配的规则。如果”!”说明用在了”-f”标志之前，表示相反的意思。</span></p>
<p><span style="color: #008000;">OTHER OPTIONS<br />
其他选项<br />
还可以指定下列附加选项：</span></p>
<p><span style="color: #008000;">-v &#8211;verbose<br />
-v &#8211;详细<br />
详细输出。这个选项让list命令显示接口地址、规则选项（如果有）和TOS（Type of Service）掩码。包和字节计数器也将被显示，分别用K、M、G(前缀)表示1000、1,000,000和1,000,000,000倍（不过请参看-x标志改变它），对于添加,插入,删除和替换命令，这会使一个或多个规则的相关详细信息被打印。</span></p>
<p><span style="color: #008000;">-n &#8211;numeric<br />
-n &#8211;数字<br />
数字输出。IP地址和端口会以数字的形式打印。默认情况下，程序试显示主机名、网络名或者服务（只要可用）。</span></p>
<p><span style="color: #008000;">-x -exact<br />
-x -精确<br />
扩展数字。显示包和字节计数器的精确值，代替用K,M,G表示的约数。这个选项仅能用于 -L 命令。</span></p>
<p><span style="color: #008000;">&#8211;line-numbers<br />
当列表显示规则时，在每个规则的前面加上行号，与该规则在链中的位置相对应。</span></p>
<p><span style="color: #008000;">MATCH EXTENSIONS<br />
对应的扩展<br />
iptables能够使用一些与模块匹配的扩展包。以下就是含于基本包内的扩展包，而且他们大多数都可以通过在前面加上!来表示相反的意思。</span></p>
<p><span style="color: #008000;">tcp<br />
当 &#8211;protocol tcp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载。它提供以下选项：</span></p>
<p><span style="color: #008000;">&#8211;source-port [!] [port[:port]]<br />
源端口或端口范围指定。这可以是服务名或端口号。使用格式端口：端口也可以指定包含的（端口）范围。如果首端口号被忽略，默认是”0&#8243;，如果末端口号被忽略，默认是”65535&#8243;，如果第二个端口号大于第一个，那么它们会被交换。这个选项可以使用 &#8211;sport的别名。</span></p>
<p><span style="color: #008000;">&#8211;destionation-port [!] [port:[port]]<br />
目标端口或端口范围指定。这个选项可以使用 &#8211;dport别名来代替。</span></p>
<p><span style="color: #008000;">&#8211;tcp-flags [!] mask comp<br />
匹配指定的TCP标记。第一个参数是我们要检查的标记，一个用逗号分开的列表，第二个参数是用逗号分开的标记表,是必须被设置的。标记如下：SYN ACK FIN RST URG PSH ALL NONE。因此这条命令：iptables -A FORWARD -p tcp &#8211;tcp-flags SYN, ACK, FIN, RST SYN只匹配那些SYN标记被设置而ACK、FIN和RST标记没有设置的包。</span></p>
<p><span style="color: #008000;">[!] &#8211;syn<br />
只匹配那些设置了SYN位而清除了ACK和FIN位的TCP包。这些包用于TCP连接初始化时发出请求；例如，大量的这种包进入一个接口发生堵塞时会阻止进入的TCP连接，而出去的TCP连接不会受到影响。这等于 &#8211;tcp-flags SYN, RST, ACK SYN。如果”&#8211;syn”前面有”!”标记，表示相反的意思。</span></p>
<p><span style="color: #008000;">&#8211;tcp-option [!] number<br />
匹配设置了TCP选项的。</span></p>
<p><span style="color: #008000;">udp<br />
当protocol udp 被指定,且其他匹配的扩展未被指定时,这些扩展被装载,它提供以下选项：</span></p>
<p><span style="color: #008000;">&#8211;source-port [!] [port:[port]]<br />
源端口或端口范围指定。详见 TCP扩展的&#8211;source-port选项说明。</span></p>
<p><span style="color: #008000;">&#8211;destination-port [!] [port:[port]]<br />
目标端口或端口范围指定。详见 TCP扩展的&#8211;destination-port选项说明。</span></p>
<p><span style="color: #008000;">icmp<br />
当protocol icmp被指定,且其他匹配的扩展未被指定时,该扩展被装载。它提供以下选项：<br />
&#8211;icmp-type [!] typename<br />
这个选项允许指定ICMP类型，可以是一个数值型的ICMP类型，或者是某个由命令iptables -p icmp -h所显示的ICMP类型名。</span></p>
<p><span style="color: #008000;">mac<br />
&#8211;mac-source [!] address<br />
匹配物理地址。必须是XX:XX:XX:XX:XX这样的格式。注意它只对来自以太设备并进入PREROUTING、FORWORD和INPUT链的包有效。</span></p>
<p><span style="color: #008000;">limit<br />
这个模块匹配标志用一个标记桶过滤器一一定速度进行匹配,它和LOG目标结合使用来给出有限的登陆数.当达到这个极限值时,使用这个扩展包的规则将进行匹配.(除非使用了”!”标记)</span></p>
<p><span style="color: #008000;">&#8211;limit rate<br />
最大平均匹配速率：可赋的值有&#8217;/second&#8217;, &#8217;/minute&#8217;, &#8217;/hour&#8217;, or &#8217;/day&#8217;这样的单位，默认是3/hour。</span></p>
<p><span style="color: #008000;">&#8211;limit-burst number<br />
待匹配包初始个数的最大值:若前面指定的极限还没达到这个数值,则概数字加1.默认值为5</span></p>
<p><span style="color: #008000;">multiport<br />
这个模块匹配一组源端口或目标端口,最多可以指定15个端口。只能和-p tcp 或者 -p udp 连着使用。</span></p>
<p><span style="color: #008000;">&#8211;source-port [port[, port]]<br />
如果源端口是其中一个给定端口则匹配</span></p>
<p><span style="color: #008000;">&#8211;destination-port [port[, port]]<br />
如果目标端口是其中一个给定端口则匹配</span></p>
<p><span style="color: #008000;">&#8211;port [port[, port]]<br />
若源端口和目的端口相等并与某个给定端口相等,则匹配。<br />
mark<br />
这个模块和与netfilter过滤器标记字段匹配（就可以在下面设置为使用MARK标记）。</span></p>
<p><span style="color: #008000;">&#8211;mark value [/mask]<br />
匹配那些无符号标记值的包（如果指定mask，在比较之前会给掩码加上逻辑的标记）。</span></p>
<p><span style="color: #008000;">owner<br />
此模块试为本地生成包匹配包创建者的不同特征。只能用于OUTPUT链，而且即使这样一些包（如ICMP ping应答）还可能没有所有者，因此永远不会匹配。</span></p>
<p><span style="color: #008000;">&#8211;uid-owner userid<br />
如果给出有效的user id，那么匹配它的进程产生的包。</span></p>
<p><span style="color: #008000;">&#8211;gid-owner groupid<br />
如果给出有效的group id，那么匹配它的进程产生的包。</span></p>
<p><span style="color: #008000;">&#8211;sid-owner seessionid<br />
根据给出的会话组匹配该进程产生的包。</span></p>
<p><span style="color: #008000;">state<br />
此模块，当与连接跟踪结合使用时，允许访问包的连接跟踪状态。</span></p>
<p><span style="color: #008000;">&#8211;state state<br />
这里state是一个逗号分割的匹配连接状态列表。可能的状态是:INVALID表示包是未知连接，ESTABLISHED表示是双向传送的连接，NEW表示包为新的连接，否则是非双向传送的，而RELATED表示包由新连接开始，但是和一个已存在的连接在一起，如FTP数据传送，或者一个ICMP错误。</span></p>
<p><span style="color: #008000;">unclean<br />
此模块没有可选项，不过它试着匹配那些奇怪的、不常见的包。处在实验中。</span></p>
<p><span style="color: #008000;">tos<br />
此模块匹配IP包首部的8位tos（服务类型）字段（也就是说，包含在优先位中）。</span></p>
<p><span style="color: #008000;">&#8211;tos tos<br />
这个参数可以是一个标准名称，（用iptables -m tos -h 察看该列表），或者数值。</span></p>
<p><span style="color: #008000;">TARGET EXTENSIONS<br />
iptables可以使用扩展目标模块：以下都包含在标准版中。</span></p>
<p><span style="color: #008000;">LOG<br />
为匹配的包开启内核记录。当在规则中设置了这一选项后，linux内核会通过printk()打印一些关于全部匹配包的信息（诸如IP包头字段等）。<br />
&#8211;log-level level<br />
记录级别（数字或参看 syslog.conf(5)）。<br />
&#8211;log-prefix prefix<br />
在纪录信息前加上特定的前缀：最多14个字母长，用来和记录中其他信息区别。</span></p>
<p><span style="color: #008000;">&#8211;log-tcp-sequence<br />
记录TCP序列号。如果记录能被用户读取那么这将存在安全隐患。</span></p>
<p><span style="color: #008000;">&#8211;log-tcp-options<br />
记录来自TCP包头部的选项。<br />
&#8211;log-ip-options<br />
记录来自IP包头部的选项。</span></p>
<p><span style="color: #008000;">MARK<br />
用来设置包的netfilter标记值。只适用于mangle表。</span></p>
<p><span style="color: #008000;">&#8211;set-mark mark</span></p>
<p><span style="color: #008000;">REJECT<br />
作为对匹配的包的响应，返回一个错误的包：其他情况下和DROP相同。</span></p>
<p><span style="color: #008000;">此目标只适用于INPUT、FORWARD和OUTPUT链，和调用这些链的用户自定义链。这几个选项控制返回的错误包的特性：</span></p>
<p><span style="color: #008000;">&#8211;reject-with type<br />
Type可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port-nreachable、icmp-proto-unreachable、 icmp-net-prohibited 或者 icmp-host-prohibited，该类型会返回相应的ICMP错误信息（默认是port-unreachable）。选项 echo-reply也是允许的；它只能用于指定ICMP ping包的规则中，生成ping的回应。最后，选项tcp-reset可以用于在INPUT链中,或自INPUT链调用的规则，只匹配TCP协议：将回应一个TCP RST包。<br />
TOS<br />
用来设置IP包的首部八位tos。只能用于mangle表。</span></p>
<p><span style="color: #008000;">&#8211;set-tos tos<br />
你可以使用一个数值型的TOS 值，或者用iptables -j TOS -h 来查看有效TOS名列表。<br />
MIRROR<br />
这是一个试验示范目标，可用于转换IP首部字段中的源地址和目标地址，再传送该包,并只适用于INPUT、FORWARD和OUTPUT链，以及只调用它们的用户自定义链。</span></p>
<p><span style="color: #008000;">SNAT<br />
这个目标只适用于nat表的POSTROUTING链。它规定修改包的源地址（此连接以后所有的包都会被影响），停止对规则的检查，它包含选项：</span></p>
<p><span style="color: #008000;">&#8211;to-source [:port-port]<br />
可以指定一个单一的新的IP地址，一个IP地址范围，也可以附加一个端口范围（只能在指定-p tcp 或者-p udp的规则里）。如果未指定端口范围，源端口中512以下的（端口）会被安置为其他的512以下的端口；512到1024之间的端口会被安置为1024以下的，其他端口会被安置为1024或以上。如果可能，端口不会被修改。</span></p>
<p><span style="color: #008000;">&#8211;to-destiontion [:port-port]<br />
可以指定一个单一的新的IP地址，一个IP地址范围，也可以附加一个端口范围（只能在指定-p tcp 或者-p udp的规则里）。如果未指定端口范围，目标端口不会被修改。</span></p>
<p><span style="color: #008000;">MASQUERADE<br />
只用于nat表的POSTROUTING链。只能用于动态获取IP（拨号）连接：如果你拥有静态IP地址，你要用SNAT。伪装相当于给包发出时所经过接口的IP地址设置一个映像，当接口关闭连接会终止。这是因为当下一次拨号时未必是相同的接口地址（以后所有建立的连接都将关闭）。它有一个选项：</span></p>
<p><span style="color: #008000;">&#8211;to-ports<br />
指定使用的源端口范围，覆盖默认的SNAT源地址选择（见上面）。这个选项只适用于指定了-p tcp或者-p udp的规则。</span></p>
<p><span style="color: #008000;">REDIRECT<br />
只适用于nat表的PREROUTING和OUTPUT链，和只调用它们的用户自定义链。它修改包的目标IP地址来发送包到机器自身（本地生成的包被安置为地址127.0.0.1）。它包含一个选项：</span></p>
<p><span style="color: #008000;">&#8211;to-ports<br />
指定使用的目的端口或端口范围：不指定的话，目标端口不会被修改。只能用于指定了-p tcp 或 -p udp的规则。</span></p>
<p><span style="color: #008000;">DIAGNOSTICS<br />
诊断<br />
不同的错误信息会打印成标准错误：退出代码0表示正确。类似于不对的或者滥用的命令行参数错误会返回错误代码2，其他错误返回代码为1。</span></p>
<p><span style="color: #008000;">BUGS<br />
臭虫<br />
Check is not implemented (yet).<br />
检查还未完成。</span></p>
<p><span style="color: #008000;">COMPATIBILITY WITH IPCHAINS<br />
与ipchains的兼容性<br />
iptables和Rusty Russell的ipchains非常相似。主要区别是INPUT 链只用于进入本地主机的包,而OUTPUT只用于自本地主机生成的包。因此每个包只经过三个链的一个；以前转发的包会经过所有三个链。其他主要区别是 -i 引用进入接口；-o引用输出接口，两者都适用于进入FORWARD链的包。当和可选扩展模块一起使用默认过滤器表时，iptables是一个纯粹的包过滤器。这能大大减少以前对IP伪装和包过滤结合使用的混淆，所以以下选项作了不同的处理：<br />
-j MASQ<br />
-M -S<br />
-M -L<br />
在iptables中有几个不同的链。</span></p>
<p><span style="color: #008000;">看完那么多.那你还需要再看一些命吧&#8230;&#8230;接下看.</span></p>
<p><span style="color: #008000;">Iptables 命令使用举例<br />
1、链的基本操作 </span></p>
<p><span style="color: #008000;">（1） 清除所有规则</span></p>
<p><span style="color: #008000;">1）          清除预设表filter中所有规则链中的规则</span></p>
<p><span style="color: #008000;"># iptables –F</span></p>
<p><span style="color: #008000;">2) 清除预设表filter中使用者自定链中的规则</span></p>
<p><span style="color: #008000;"># iptables –X</span></p>
<p><span style="color: #008000;">3)将指定链中所有规则的包字节计数器清零</span></p>
<p><span style="color: #008000;">#  iptables –Z</span></p>
<p><span style="color: #008000;">(2)设置链的默认策略</span></p>
<p><span style="color: #008000;">1）先允许，再禁止</span></p>
<p><span style="color: #008000;">用下面的命令初始化</span></p>
<p><span style="color: #008000;"># iptables –P INPUT  ACCEPT</span></p>
<p><span style="color: #008000;"># iptables –P OUTPUT  ACCEPT</span></p>
<p><span style="color: #008000;"># iptables –P FORWARD  ACCEPT</span></p>
<p><span style="color: #008000;">2）          先禁止，再允许</span></p>
<p><span style="color: #008000;">用下面的命令初始化</span></p>
<p><span style="color: #008000;"># iptables –P INPUT  DROP</span></p>
<p><span style="color: #008000;"># iptables –P OUTPUT  DROP</span></p>
<p><span style="color: #008000;"># iptables –P FORWARD  DROP</span></p>
<p><span style="color: #008000;">（3）列出表/链中的所有规则</span></p>
<p><span style="color: #008000;"># iptables –L –n</span></p>
<p><span style="color: #008000;">（4）向链中添加规则。下面的语句用于开放网络接口</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –i lo –j ACCEPT</span></p>
<p><span style="color: #008000;">#  iptables –A OUTPUT –o lo –j ACCEPT</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –i eth0 –j ACCEPT</span></p>
<p><span style="color: #008000;">#  iptables –A OUTPUT –o eth0 –j ACCEPT</span></p>
<p><span style="color: #008000;">#  iptables –A FORWARD –i eth0 –j ACCEPT</span></p>
<p><span style="color: #008000;">#  iptables –A FORWARD –o eth0 –j ACCEPT</span></p>
<p><span style="color: #008000;">（5）使用用户自定义链</span></p>
<p><span style="color: #008000;">#  iptables –N custom</span></p>
<p><span style="color: #008000;">#  iptables –A custom –s 0/0 –d 0/0 –p icmp –j DROP</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –s 0/0 –d 0/0 –j custom </span></p>
<p><span style="color: #008000;">2、设置基本的规则匹配（忽略目标动作）<br />
（1） 指定协议匹配</span></p>
<p><span style="color: #008000;">1）          匹配指定的协议</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp</span></p>
<p><span style="color: #008000;">2）          匹配指定协议之外的所有协议</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p ! tcp</span></p>
<p><span style="color: #008000;">（2） 指定地址匹配</span></p>
<p><span style="color: #008000;">1）          指定匹配的主机</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –s 192.168.0.1</span></p>
<p><span style="color: #008000;">2）          指定匹配的网络</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –s 192.168.0.0/24</span></p>
<p><span style="color: #008000;">3）          匹配指定主机之外的地址</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –s ! 192.168.0.1</span></p>
<p><span style="color: #008000;">4）          匹配指定网络之外的网络</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –s ! 192.168.0.1/24</span></p>
<p><span style="color: #008000;">（3） 指定网络接口匹配</span></p>
<p><span style="color: #008000;">1）          指定单一的网络接口匹配</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –i eth0</span></p>
<p><span style="color: #008000;">#  iptables –A FORWARD –o eth0</span></p>
<p><span style="color: #008000;">2）          指定同类型的网络接口匹配</span></p>
<p><span style="color: #008000;">#  iptables –A FORWARD –o ppp+</span></p>
<p><span style="color: #008000;">（4） 指定端口匹配</span></p>
<p><span style="color: #008000;">1）          指定单一的端口匹配</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp –sport wwww</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp –sport 80</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p udp –sport 53</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p udp –dport 53</span></p>
<p><span style="color: #008000;">2）          匹配指定端口之外的端口</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp –dport !22</span></p>
<p><span style="color: #008000;">3）          匹配指定的端口范围</span></p>
<p><span style="color: #008000;">#  ipbables –A INPUT –p tcp –sport 22:80</span></p>
<p><span style="color: #008000;">4）          匹配ICMP端口和ICMP 类型</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p icmp-type 8</span></p>
<p><span style="color: #008000;">（5） 指定IP碎片</span></p>
<p><span style="color: #008000;">#  iptables –A FORWARD –p tcp –s 192.168.0.0/24 –d 192.168.2.100 –dport 80 –f ACCEPT</span></p>
<p><span style="color: #008000;">#  iptables –A FORWARD –f –s 192.168.0.0/24 –d 192.168.2.100 –j ACCEPT<br />
3、设置扩展的规则匹配（忽略目标动作）（1）多端口匹配扩展</span></p>
<p><span style="color: #008000;">1）匹配多个源端口</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp –m multiport –source-port 22,53,80,110</span></p>
<p><span style="color: #008000;">2）匹配多个目的端口</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp –m multiport –destination-port 22,53,80,110</span></p>
<p><span style="color: #008000;">3）匹配多个端口</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp –m multiport –prot 22,53,80,110</span></p>
<p><span style="color: #008000;">（2）指定TCP匹配扩展</span></p>
<p><span style="color: #008000;">通过使用&#8211;tcp-flags 选项可以根据TCP包的标志位进行过滤，第一个参数为要检查的标志位；第二个参数是标志位为1的标志</span></p>
<p><span style="color: #008000;">#  iptables –A INPUT –p tcp &#8211;tcp-flags SYN,FIN,ACK SYN</span></p>
<p><span style="color: #008000;">#  iptables –p tcp &#8211;syn</span></p>
<p><span style="color: #008000;">表示SYN、ACK、FIN的标志都要检查，但是只有设置了SYN的才匹配</span></p>
<p><span style="color: #008000;"># iptables –A INPUT –p tcp &#8211;tcp-flags ALL SYN,ACK</span></p>
<p><span style="color: #008000;">表示ALL（SYN，ACK，FIN，RST，USG，PSH）的标志都要检查，但是只有设置了SYN和ACK的才匹配</span></p>
<p><span style="color: #008000;">（3）limit速率匹配扩展</span></p>
<p><span style="color: #008000;">1）指定单位时间内允许通过的数据包个数</span></p>
<p><span style="color: #008000;"># iptables –A INPUT –m limit &#8211;limit 300/hour</span></p>
<p><span style="color: #008000;">表示限制每小时允许通过300个数据包</span></p>
<p><span style="color: #008000;">2）指定触发事件的阀值（默认值是5）</span></p>
<p><span style="color: #008000;"># iptables –A INPUT –m limit &#8211;limit-burst 10</span></p>
<p><span style="color: #008000;">表示一次涌入的封包超过10个将被直接丢弃</span></p>
<p><span style="color: #008000;">3）同时指定速率限制和触发阀值</span></p>
<p><span style="color: #008000;"># iptables –A INPUT –p icmp –m limit –limit 3/m –limit-burst 3</span></p>
<p><span style="color: #008000;">以上命令参考内容来处<a href="http://www.blogjava.net/fanyingjie/archive/2009/03/02/257301.html">http://www.blogjava.net</a></span></p>
<p><span style="color: #008000;"><a href="http://blog.chinaunix.net/u/5591/showart_304835.html">http://blog.chinaunix.net/</a><!--more--><br />
</span></p></blockquote>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F08%2F3003.html&amp;title=Iptables%20%E6%8E%A7%E5%88%B6%E4%BC%81%E4%B8%9A%E5%86%85%E9%83%A8%E7%BD%91%E7%BB%9C%E7%9A%84%E5%AE%89%E5%85%A8" id="wpa2a_6"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/08/3003.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Linux防火墙 iptables 1.4.4 发布</title>
		<link>http://www.ptubuntu.com/2009/06/2805.html</link>
		<comments>http://www.ptubuntu.com/2009/06/2805.html#comments</comments>
		<pubDate>Wed, 24 Jun 2009 08:28:19 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux Server]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=2805</guid>
		<description><![CDATA[ptables 是与最新的 2.4.x 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器， 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。 该版本更新了为最新的Linux内核版本 2.6.30 的扩展以及相应的文档更新。 下载地址： http://www.netfilter.org/projects/iptables/downloads.html]]></description>
			<content:encoded><![CDATA[<p><strong>ptables</strong> 是与最新的 2.4.x 版本 <a href="http://www.ptubuntu.com/tag/linx" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a>  内核集成的 IP 信息包过滤系统。如果 <a href="http://www.ptubuntu.com/tag/linx" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a> 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器， 则该系统有利于在 <a href="http://www.ptubuntu.com/tag/linx" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a> 系统上更好地控制 IP 信息包过滤和防火墙配置。</p>
<p><strong>该版本更新了为最新的Linux内核版本 2.6.30 的扩展以及相应的文档更新。</strong></p>
<p>下载地址： <a href="http://www.netfilter.org/projects/iptables/downloads.html" target="_blank">http://www.netfilter.org/projects/iptables/downloads.html</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F06%2F2805.html&amp;title=Linux%E9%98%B2%E7%81%AB%E5%A2%99%20iptables%201.4.4%20%E5%8F%91%E5%B8%83" id="wpa2a_8"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/06/2805.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>m0n0安装心得</title>
		<link>http://www.ptubuntu.com/2009/02/1559.html</link>
		<comments>http://www.ptubuntu.com/2009/02/1559.html#comments</comments>
		<pubDate>Mon, 16 Feb 2009 08:11:46 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux Server]]></category>
		<category><![CDATA[技术类]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=1559</guid>
		<description><![CDATA[在网上找了一些相关的安装方法.但是自己也安装了很久.主要是通过硬盘安装.但是这个也有光盘安装.但使用光盘还需要一张软盘才行.所以最后是放弃了光盘安装.选择硬盘安装.要必备的硬件. (U盘,光驱,格式化硬盘光盘). 1.先用光盘选择winPE系统.把硬盘格式化.特别是有装过linux那需要更新一下MBR. 2.格式化一个盘.把要安装的软件和程序COPY 到硬盘上. generic-pc-1.231+zh.img     physdiskwrite.exe  在使用physdiskwrite时如果你的硬盘超过2G大的. 输入该命令:physdiskwrite.exe -u generic-pc-1.231+zh.img 会让你选择你要安装的硬盘符(0..1) 然后再选硬盘，我这是第一个，你们写的时候要看清楚是写哪个。所以就选0，然后出一些警告，意思为这样操作会把硬盘里的以前的数据会全删除，按Y继续。如果要继续操作，按Y，等待写盘完成。写盘很快，就几秒钟。否则按N就退出。 这样就安装成功了.进入系统.会自动查到网卡.配置网卡 按1 加网卡，然后下面就会出 vro 00:0c:29:60:f2:56 set0 00:0c:29:60:f2:60 后面按提示输入第一个是LAN 第二个是WAN.设置完了.再选择第二个.设置LAN的IP地址.还有一个设置DHCP的. 这样就算是基本完了.就可以进入系统. 在这里安装花最多的就是安装系统了.因为格式化不对.老安装不上系统.觉的很烦.后来才知道原来硬盘符改按错了.老装不上. 相关的软件路由网 WayOS PC版路由器软件]]></description>
			<content:encoded><![CDATA[<p>在网上找了一些相关的安装方法.但是自己也安装了很久.主要是通过硬盘安装.但是这个也有光盘安装.但使用光盘还需要一张软盘才行.所以最后是放弃了光盘安装.选择硬盘安装.要必备的硬件. (U盘,光驱,格式化硬盘光盘).</p>
<p>1.先用光盘选择winPE系统.把硬盘格式化.特别是有装过linux那需要更新一下MBR.</p>
<p>2.格式化一个盘.把要安装的软件和程序COPY 到硬盘上.</p>
<p>generic-pc-1.231+zh.img     physdiskwrite.exe  在使用physdiskwrite时如果你的硬盘超过2G大的.</p>
<blockquote><p>输入该命令:physdiskwrite.exe -u generic-pc-1.231+zh.img</p></blockquote>
<p>会让你选择你要安装的硬盘符(0..1)</p>
<p>然后再选硬盘，我这是第一个，你们写的时候要看清楚是写哪个。所以就选0，然后出一些警告，意思为这样操作会把硬盘里的以前的数据会全删除，按Y继续。如果要继续操作，按Y，等待写盘完成。写盘很快，就几秒钟。否则按N就退出。</p>
<p>这样就安装成功了.进入系统.会自动查到网卡.配置网卡<br />
按1 加网卡，然后下面就会出</p>
<p>vro 00:0c:29:60:f2:56<br />
set0 00:0c:29:60:f2:60</p>
<p>后面按提示输入第一个是LAN 第二个是WAN.设置完了.再选择第二个.设置LAN的IP地址.还有一个设置DHCP的.</p>
<p>这样就算是基本完了.就可以进入系统.</p>
<p>在这里安装花最多的就是安装系统了.因为格式化不对.老安装不上系统.觉的很烦.后来才知道原来硬盘符改按错了.老装不上.</p>
<p>相关的<a href="http://www.router.net.cn/softrouter/List_125.html">软件路由网</a></p>
<p><a href="http://bbs.wayos.cn/thread-1102-1-1.html">WayOS PC版路由器软件</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F02%2F1559.html&amp;title=m0n0%E5%AE%89%E8%A3%85%E5%BF%83%E5%BE%97" id="wpa2a_10"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/02/1559.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>免费的专业级防火墙M0n0wall</title>
		<link>http://www.ptubuntu.com/2009/02/1553.html</link>
		<comments>http://www.ptubuntu.com/2009/02/1553.html#comments</comments>
		<pubDate>Sat, 14 Feb 2009 02:17:23 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=1553</guid>
		<description><![CDATA[免费的专业级防火墙M0n0wall 网络技术的飞速发展给我们的工作和生活带来了便利，然而一些非法侵入他人系统、窃取他人机密、破坏他人系统等恶性行为也悄然而至，给网络安装防火墙保护网络安全是行之有效的办法。硬件防火墙是大家熟知的,对于硬件防火墙我们不多介绍。 软件防火墙是个新兴的产品，从软件防火墙的运行平台可以分为基于windows平台和基于Unix/Linux平台的软件防火墙。基于Windows平台 的软件防火墙常见的有ISA Server、 Winroute Firewall等，这些属于商业化的产品，通常根据授权用户数不同收费而不同，购买正版的软件防火墙的费用一笔不小的开支。而基于Unix/Linux 平台的软件防火墙大家一般接触较少，受益于开放源代码运动，目前基于Unix/Linux平台的软件防火墙如雨后春笋般不断推出，这些软件防火墙大多是免 费的，从实际使用的情况来看，免费的的软件防火墙无论是从功能、性能与商业的软件防火墙产品对比毫不逊色，完全可以满足一般的应用,可以预见基于 Unix/Linux软件防火墙将会被越来越多人所接受,大力推广这类软件防火墙的使用,对众多的中小型企业、学校、网吧等用户将从中受益。 基于Unix/Linux平台的软件防火墙常见的有m0n0Wall、SmoothWall、Ipcop、CoyoteLinux等，这些系统共有的特点 是一般对硬件要求较低，这对很多有淘汰下来的低档电脑的朋友来说，意味着拿一台淘汰的电脑，安装一套免费的防火墙软件，不花一分钱就DIY出一台专业的防 火墙，而且这些系统自身也包含了NAT功能，可以实现共享上网。上期我们介绍了IPcop，相信很多朋友都已经成功使用了,这期我们一起来学习功能更加强 大的M0n0wall，其它软件防火墙我们将在以后介绍。 一、 认识M0n0wall M0n0wall是基于FreeBsd内核开发的免费软件防火墙。m0n0wall提供基于web的配置管理、提供VPN功能、支持DHCP Server、DNS转发、动态DNS、Ipsec、流量控制、无线网络支持等功能。该系统最新版本是1.2b8，最稳定版是1.1版，本文以1.1版进 行介绍。 &#60;图1—m0n0wall标志&#62; 二、m0n0wall安装 m0n0wall可以安装在IDE硬盘、电子硬盘（DOM）、CF存储卡、光盘＋软盘上。任何486以上的电脑，只要配备二块网卡，不小于64M内存就可 以运行该系统。下面分别介绍这几种安装方式，读者可以根据自身情况选择一种最适合自己的运行模式。m0n0wall虽然可以在很低的硬件环境下使用，但笔 者建议最好还是采用586以上的计算机，不低于128M内存，M0n0wall可以RTL8139、DFE530-TX等常见的网卡，但从笔者所安装的防 火墙的使用情况来看，要充分发挥m0n0wall的性能，性能优良的网卡是必不可少的，所以我们建议有条件的朋友选用Intel或3COM等品牌的网卡。 （一）、硬盘运行模式 m0n0wall对硬盘没有特殊要求，只需准备容量大于8MB以上的硬盘就可以了，m0n0wall启动完成后，所有的运行都是在内存中进行的，但由于路 由器通常是长时间的连续运行的，普通IDE硬盘长时间运行容易出现故障，在笔者维护的网络中，最容易出现问题的就是IDE硬盘的损坏，建议有条件的朋友使 用电子硬盘（图2）或CF存储卡，电子硬盘是非机械式的不容易坏损，电子硬盘市面一般较少见，做工控产品的厂商一般都有出售，64M 的DOM大概需要200元左右；CF存储卡市场容易购得，但CF-IDE转接卡（图3）市场很难见到，每块售价一般在80元左右，读者可以根据实际情况进 行选择。 &#60;图2—电子硬盘图&#62; &#60;图3&#8211;CF-IDE转接卡和CF存储卡图&#62; M0n0wall可以在Windows和Unix/Linux平台下把系统IMG文件写到硬盘中，无论是使用IDE硬盘，还是DOM或CF卡，安装M0n0wall的方法是相同的，下面我们以在Windows 2000下安装m0n0wall到IDE硬盘为例进行说明。 步骤一：把IDE硬盘安装到一台安装有Windows 2000的电脑的主板的另一个IDE接口，连接好电源线。 步骤二： 下载M0n0wall系统和physdiskwrite工具，官方下载网址：http://www.m0n0.ch/wall/download.php?file=generic-pc-1.11.img，选择任何一个镜像站下载，我们把下载的文件保存在c:\m0n0目录，1.1 版的文件名为generic-pc-1.11.img，m0n0wall是用img格式打包的，我们还需要下载physdiskwrite工具，该工具的下载地址：http://www.m0n0.ch/wall/downloads/physdiskwrite-0.5.zip。官方的下载速度较慢，大家也可以到到：http://www.router.nt.cn下载。下载后对physdiskwrite-0.5.zip进行解压并拷贝到C:\M0N0目录中（图4）。 &#60;图4—m0n0目录&#62; 步骤三：开始运行cmd回车，cd c:\m0n0进入m0n0目录中运行physdiskwrite -u generic-pc-1.11.img （只有当硬盘容易大于800MB时才需要-u）。系统显示你电脑中的两个硬盘的一些信息，并提示Which disk do you want to write?(0..1)，我们这里选择1（图5）。屏幕显示“6291456/6291456 bytes written in [...]]]></description>
			<content:encoded><![CDATA[<div class="cnt"><span style="font-size: large;">免费的专业级防火墙M0n0wall</p>
<p></span>网络技术的飞速发展给我们的工作和生活带来了便利，然而一些非法侵入他人系统、窃取他人机密、破坏他人系统等恶性行为也悄然而至，给网络安装防火墙保护网络安全是行之有效的办法。硬件防火墙是大家熟知的,对于硬件防火墙我们不多介绍。</p>
<p>软件防火墙是个新兴的产品，从软件防火墙的运行平台可以分为基于windows平台和基于Unix/Linux平台的软件防火墙。基于Windows平台 的软件防火墙常见的有ISA Server、 Winroute Firewall等，这些属于商业化的产品，通常根据授权用户数不同收费而不同，购买正版的软件防火墙的费用一笔不小的开支。而基于Unix/<a href="http://www.ptubuntu.com/tag/linx" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">Linux</a> 平台的软件防火墙大家一般接触较少，受益于开放源代码运动，目前基于Unix/Linux平台的软件防火墙如雨后春笋般不断推出，这些软件防火墙大多是免 费的，从实际使用的情况来看，免费的的软件防火墙无论是从功能、性能与商业的软件防火墙产品对比毫不逊色，完全可以满足一般的应用,可以预见基于 Unix/Linux软件防火墙将会被越来越多人所接受,大力推广这类软件防火墙的使用,对众多的中小型企业、学校、网吧等用户将从中受益。</p>
<p>基于Unix/Linux平台的软件防火墙常见的有m0n0Wall、SmoothWall、Ipcop、CoyoteLinux等，这些系统共有的特点 是一般对硬件要求较低，这对很多有淘汰下来的低档电脑的朋友来说，意味着拿一台淘汰的电脑，安装一套免费的防火墙软件，不花一分钱就DIY出一台专业的防 火墙，而且这些系统自身也包含了NAT功能，可以实现共享上网。上期我们介绍了IPcop，相信很多朋友都已经成功使用了,这期我们一起来学习功能更加强 大的M0n0wall，其它软件防火墙我们将在以后介绍。</p>
<p>一、 认识M0n0wall<br />
<span id="more-1553"></span><br />
M0n0wall是基于FreeBsd内核开发的免费软件防火墙。m0n0wall提供基于web的配置管理、提供VPN功能、支持DHCP Server、DNS转发、动态DNS、Ipsec、流量控制、无线网络支持等功能。该系统最新版本是1.2b8，最稳定版是1.1版，本文以1.1版进 行介绍。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/1.jpg" border="0" alt="" /><br />
&lt;图1—m0n0wall标志&gt;</p>
<p>二、m0n0wall安装</p>
<p>m0n0wall可以安装在IDE硬盘、电子硬盘（DOM）、CF存储卡、光盘＋软盘上。任何486以上的电脑，只要配备二块网卡，不小于64M内存就可 以运行该系统。下面分别介绍这几种安装方式，读者可以根据自身情况选择一种最适合自己的运行模式。m0n0wall虽然可以在很低的硬件环境下使用，但笔 者建议最好还是采用586以上的计算机，不低于128M内存，M0n0wall可以RTL8139、DFE530-TX等常见的网卡，但从笔者所安装的防 火墙的使用情况来看，要充分发挥m0n0wall的性能，性能优良的网卡是必不可少的，所以我们建议有条件的朋友选用Intel或3COM等品牌的网卡。</p>
<p>（一）、硬盘运行模式</p>
<p>m0n0wall对硬盘没有特殊要求，只需准备容量大于8MB以上的硬盘就可以了，m0n0wall启动完成后，所有的运行都是在内存中进行的，但由于路 由器通常是长时间的连续运行的，普通IDE硬盘长时间运行容易出现故障，在笔者维护的网络中，最容易出现问题的就是IDE硬盘的损坏，建议有条件的朋友使 用电子硬盘（图2）或CF存储卡，电子硬盘是非机械式的不容易坏损，电子硬盘市面一般较少见，做工控产品的厂商一般都有出售，64M 的DOM大概需要200元左右；CF存储卡市场容易购得，但CF-IDE转接卡（图3）市场很难见到，每块售价一般在80元左右，读者可以根据实际情况进 行选择。<br />
<img src="http://www.routerbbs.com/attachment/cjq/2.jpg" border="0" alt="" width="732" height="550" /><br />
&lt;图2—电子硬盘图&gt;</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/3.jpg" border="0" alt="" /><br />
&lt;图3&#8211;CF-IDE转接卡和CF存储卡图&gt;</p>
<p>M0n0wall可以在Windows和Unix/Linux平台下把系统IMG文件写到硬盘中，无论是使用IDE硬盘，还是DOM或CF卡，安装M0n0wall的方法是相同的，下面我们以在Windows 2000下安装m0n0wall到IDE硬盘为例进行说明。</p>
<p>步骤一：把IDE硬盘安装到一台安装有Windows 2000的电脑的主板的另一个IDE接口，连接好电源线。</p>
<p>步骤二： 下载M0n0wall系统和physdiskwrite工具，官方下载网址：<a href="http://www.m0n0.ch/wall/download.php?file=generic-pc-1.11.img" target="_blank"><span style="color: #0556d0;">http://www.m0n0.ch/wall/download.php?file=generic-pc-1.11.img</span></a>，选择任何一个镜像站下载，我们把下载的文件保存在c:\m0n0目录，1.1 版的文件名为generic-pc-1.11.img，m0n0wall是用img格式打包的，我们还需要下载physdiskwrite工具，该工具的下载地址：<a href="http://www.m0n0.ch/wall/downloads/physdiskwrite-0.5.zip" target="_blank"><span style="color: #0556d0;">http://www.m0n0.ch/wall/downloads/physdiskwrite-0.5.zip</span></a>。官方的下载速度较慢，大家也可以到到：<a href="http://www.router.nt.cn/" target="_blank"><span style="color: #0556d0;">http://www.router.nt.cn</span></a>下载。下载后对physdiskwrite-0.5.zip进行解压并拷贝到C:\M0N0目录中（图4）。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/4.jpg" border="0" alt="" width="484" height="221" /></p>
<p>&lt;图4—m0n0目录&gt;</p>
<p>步骤三：开始运行cmd回车，cd c:\m0n0进入m0n0目录中运行physdiskwrite -u generic-pc-1.11.img （只有当硬盘容易大于800MB时才需要-u）。系统显示你电脑中的两个硬盘的一些信息，并提示Which disk do you want to write?(0..1)，我们这里选择1（图5）。屏幕显示“6291456/6291456 bytes written in total”则表示m0n0wall系统已经安装到硬盘中了。<br />
提示：不要选错，否则硬盘数据将全部被清除。<br />
<img src="http://www.routerbbs.com/attachment/cjq/5.jpg" border="0" alt="" width="586" height="393" /></p>
<p>&lt;图5—选择硬盘&gt;</p>
<p>步骤四：把安装好m0n0wall的硬盘安装到作为防火墙的电脑，在系统BIOS中设置从硬盘启动。<br />
（二）、光盘+软盘运行模式<br />
光盘+软盘运行模式需要准备一个光驱和一个3.5英寸软驱，光盘用于存储m0n0wall 系统，软盘存储配置文件。从网站上下载m0n0wall光盘版文件，并把文件刻录到光盘，具体操作步骤如下。<br />
步骤一：m0n0wall光盘版文件下载。官方下载地址：<a href="http://www.m0n0.ch/wall/download.php?file=cdrom-1.11.iso" target="_blank"><span style="color: #0556d0;">http://www.m0n0.ch/wall/download.php?file=cdrom-1.11.iso</span></a>，选择任一下载链接下载。国内下载地址:<a href="http://www.router.net.cn/" target="_blank"><span style="color: #0556d0;">http://www.Router.Net.cn</span></a>。<br />
步骤二：把下载的cdrom-1.11.iso文件刻录到光盘，推荐使用nero进行刻录。不要解压后再刻录，否则刻录出来的光盘将无法启动。<br />
步骤三：格式化一张1.44MB软盘，在Windows命令符方式下输入：format a:。<br />
步骤四：把刻录成功的光盘和软盘插入作为路由器的电脑上，在BIOS设置中设置成从光盘启动。</p>
<p>三、M0n0wall的配置实例</p>
<p>为了让大家更容易的学会使用m0n0wall，笔者以安装某学校校园网络的m0n0wall防火墙为例进行说明。该学校约有200余台电脑，已经申请电信 的2M光纤，分得一个固定IP地址，为了节约经费决定使用M0n0wall作为防火墙并使用NAT功能，实现该校园内全部电脑共享上网，该校架设一台 web和FTP服务器（网络拓扑图6）。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/6.jpg" border="0" alt="" width="687" height="454" /><br />
&lt;图6—网络拓扑&gt;</p>
<p>安装M0n0wall的PC硬件配置如下：<br />
CPU P3 933，256M RAM，64M DOM，两块Intel 82559服务器版网卡。</p>
<p>IP分配规划<br />
（１） m0n0wall 网络配置<br />
外接网卡配置<br />
IP地址: 219.159.82.XXX<br />
子网掩码：255.255.255.252<br />
网关:219.159.82.xxx<br />
<a href="http://www.ptubuntu.com/tag/dns" class="st_tag internal_tag" rel="tag" title="标签 dns 下的日志">DNS</a>1：202.103.224.XXX <a href="http://www.ptubuntu.com/tag/dns" class="st_tag internal_tag" rel="tag" title="标签 dns 下的日志">DNS</a>2:202.103.225.XXX<br />
接局域网网卡配置<br />
IP：192.168.1.1 子网：255.255.255.0<br />
（２）Web和ftp服务器网卡配置<br />
IP地址: 192.168.1.2<br />
子网掩码：255.255.255.0<br />
网关:192.168.1.1<br />
DNS1：192.168.1.1 DNS2:192.168.1.1<br />
（3）客户机网卡配置：<br />
IP：192.168.1.(11~250)、子网：255.255.255.0<br />
网关：192.168.1.1<br />
DNS1：192.168.1.1 DNS2:192.168.1.1<br />
1、 通过控制台进行设置<br />
步骤一：按照以上介绍的方法制作好m0n0wall，把安装有m0n0wall的硬盘安装到目标机，在BIOS中设置从硬盘启动，启动完成后出现图7所示。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/7.jpg" border="0" alt="" width="643" height="357" /><br />
&lt;图7—启动完成&gt;</p>
<p>下面对菜单进行简单介绍。<br />
1)Interfaces:assign network ports（网卡：指定网络端口），指定安装的网卡，用那一块连接WAN，那一块连接LAN。<br />
2）Set UP LAN IP Address（设定LAN网卡的IP地址）。<br />
3）Reset WebGui Password（重设Webgui密码为Mono）；<br />
4）Reset to factory defaults（恢复成出厂设置）；<br />
5)Reboot system（重新启动）。<br />
在这里我们输入1并回车。系统提示是否设置对VLAN（虚拟局域网）的支持，回答N（图8），系统接着提示：“Enter the LAN interface name or &#8216;a&#8217; for auto-detection:”（输入LAN网卡名称或输入a自动检测），在这里输入”fxp0”，回车后系统再提示“Enter the WAN interface name or &#8216;a&#8217; for auto-detection:”fxp1”，回车后系统再提示“Enter the Option 1 interface name or &#8216;a&#8217; for auto-detection(or nothing if finished):，按回车键。<br />
提示The firewall will reboot after saving the changes.Do you want to proceed?(y/n)输入y，系统将重新启动。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/8.jpg" border="0" alt="" width="559" height="310" /></p>
<p>&lt;图8&#8211;vlans&gt;</p>
<p>提示：要求输入的网卡名称不同品牌的网卡的名称是不一样的，RTL8139系列网卡提示为rtlx，530tx网卡提示为dfex，Intel网卡提示为 fxpx，读者请根据屏幕显示输入（x为数字）。从提示通常分不清那块网卡是连接到wan，那块网卡连接Lan，可以采取单接wan或lan连线的方法， 连线正常的会有up显示。</p>
<p>2、 进入防火墙Web管理界面<br />
在局域网内找一台安装有Windows系统的电脑，设置ＩＰ设置与防火墙同一网段（图9）。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/9.jpg" border="0" alt="" /><br />
&lt;图9—windowsip设置&gt;</p>
<p>在命令提示符下用Ping 命令测试与防火墙是否连通（图10），则说明与防火墙已经连通了。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/10.jpg" border="0" alt="" width="621" height="311" /></p>
<p>&lt;图10&#8211;Ping&gt;</p>
<p>接着我们就在游览器地址栏输入：<a href="http://192.168.1.1/" target="_blank"><span style="color: #0556d0;">http://192.168.1.1</span></a> 在用户名处输入admin，密码处输入mono（英文字母o，非数字0）就可以通过web进行管理了（图11）。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/11.jpg" border="0" alt="" width="628" height="432" /><br />
&lt;图11—第一个页面&gt;</p>
<p>3、常规信息的设置<br />
首先对系统的基本信息进行设置，m0n0wall的管理界面还是比较直观明了的，遗憾的是现在还没有中文版本，单击System下面的General setup（常规设置）在这里我们可以进行admin用户密码，dns服务器，Web管理界面的协议，端口进行设置。为了防火墙的安全我们建议对 admin用户密码、访问协议、端口等信息进行重新设置。<br />
我把webGUI protocol设为HTTPS，webGUI port设为8080，DNS为：和192.168.1.1 和202.103.224.xxx（请根据网络环境进行设置），按Save保存配置，这时系统提示重新启动防火墙，点YES，防火墙将重启。<br />
防火墙启动完成后，请用修改后的协议、端口、新密码访问防火墙。<br />
4、设置共享上网<br />
m0n0wall支持光纤、ADSL、ISDN、有线电视宽带等常见的接入方式，下面我们对WAN进行设置。点击Interfaces WAN（图12）。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/12.jpg" border="0" alt="" /><br />
&lt;图12—WAN设置&gt;</p>
<p>在TYPE（类型）中有Static（固定）、DHCP（动态）、PPPoE、PPTP、BigPond等五种类型，这里我们介绍固定IP和ADSL的设置，另外的设置方式类似。<br />
a. 固定IP方式设置<br />
如果您使用的固定IP请选择选择Static，在这里我选择了Static，Static IP configuration(静态IP地址配置)IP Address（IP地址）输入外网IP地址219.159.82.XXX/30，Gateway（网关）输入外网网关地址 219.159.82.xxx。<br />
提示：m0n0wall子网掩码采用的是CIDR标记法，如255.255.255.0用/24表示,255.255.0.0用/16表 示，255.0.0.0用/8表示等，实际上x中的就是子网掩码二进制表示的数位1的个数，如255.255.255.252,用CIDR标记为/30。<br />
b. ADSL宽带设置<br />
如果你使用的是ADSL，请在type中选择PPPoE在PPPoE Configuration下的username（用户名）处输入用户名，Password处输入密码，Service name（服务商名称）可以随意输入或留空，最后点击Save保存配置。<br />
提示：只需设置一种上网方式。<br />
c. 静态路由设置<br />
完成WAN的设置后，我们可以继续设置Static routes（静态路由），如果你使用的是动态的ＡＤＳＬ接入方式Static Routers可以不设置，固定ＩＰ方式的用户建议进行设置。点击System Static routes点击＋号符号在Interface选择LAN，Destination network（目标网络）我这里输入192.168.1.0/24，Gateway（网关）我这里输入219.159.82.xxx，　 Description（描述信息）可以随意输入（图13）。<br />
<img src="http://www.routerbbs.com/attachment/cjq/13.jpg" border="0" alt="" /></p>
<p>&lt;图13—静态路由&gt;</p>
<p>５、工作站的设置<br />
完成以上设置后，我们就可以对工作站进行设置，让工作站可以通过m0n0wall共享上网了，根据我们原来的ＩＰ分配规划，192.168.1.2至 192.168.1.10分配给网络中心其他服务器使用，192.168.1.11至192.168.1.250分配给其他部门计算机使用，所以其他部门 户的计算机只需把ＩＰ地址设置为192.168.1.x（x从11至250），网关设置为 192.168.1.1，DNS1:192.168.1.1，DNS2:192.168.1.1，就可以实现共享上网了。<br />
６、发布Web和ftp服务器<br />
该校在网络中心安装有对外开放的web和ftp服务器，配置m0n0wall让校外和校内都可以访问web和ftp服务器。<br />
步骤一：点击Firewall NAT，将出现图14，点击Inbound的+号增加配置信息。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/14.jpg" border="0" alt="" /><br />
&lt;图14&gt;</p>
<p>步骤二：配置Web端口映射。其中Interface设置为ＷＡＮ，Protocol设置为tcp，External port range设置为http, NAT IP设置为192.168.1.2，Local port设置为http，Description（描述信息）设置为web Server，最后Auto-add a firewall rule to permit traffic through this NAT rule一定要选定，否则必须手动在Firewall中rules 加规则，所有设置如图15所示，点击save键。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/15.jpg" border="0" alt="" width="693" height="576" /></p>
<p>&lt;图15&gt;</p>
<p>步骤三：配置FTP端口映射。其中Interface设置为ＷＡＮ，Protocol设置为tcp，External port range设置为FTP, NAT IP设置为192.168.1.2，Local port设置为FTP，Description（描述信息）设置为FTP Server，最后Auto-add a firewall rule to permit traffic through this NAT rule一定要选定，否则必须手动在Firewall中rules 加规则，点击save键，再点击“apply Changes”（修改确认），系统提示应用生效，通过查看Firewallrules，发现系统已经有二条新加入的规则（图16）。在外网输入 [url]www.router.net.cn[/url]就可以访问发布的web服务器了。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/16.jpg" border="0" alt="" width="690" height="531" /></p>
<p>&lt;图16&gt;</p>
<p>提示：局域网内的电脑还无法用域名访问校内的web和ftp。<br />
步骤四：实现内网用户用域名访问本地web和ftp站点。点击ServicesDNS forwarder（DNS转发），点击+号按钮，在host输入主机名（如www），domain输入你将使用的域名（如 router.net.cn），Ip Address输入作为web服务器的IP地址（如192.168.1.2），最后Description可以输入如www server（图17）。FTP DNS转发的设置与WWW DNS转发设置类似。设置完成后内部网计算机DNS设置为防火墙的LAN IP（如192.168.1.1），就可以通过输入[url]www.router.net.cn[/url]访问网站了。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/17.jpg" border="0" alt="" width="687" height="532" /></p>
<p>&lt;图17&gt;</p>
<p>四、其他常用功能介绍<br />
1、 流量限制</p>
<p>m0n0wall具有强大流量整形功能，可以对基于IP地址、mac地址、网段、p2p软件、协议等方式来实现对上传下载速度的控制。下面举一个例子进行说明,如要求限制IP地址为192.168.1.20的计算机下载速度不得超过200Kbit/S。<br />
步骤一：Firewall: Traffic shaperRulesEnable traffic shaper打勾，按Save按钮保存。<br />
步骤二：点击Pipes，按+号按钮，在Bandwidth（带宽）处输入200，Description处随意输入一些说明，其它设置不可以不设。<br />
步骤三：点击Firewall: Traffic shaperrules，按+符号按钮，Interface处设置为LAN，Protocol设置为tcp，DestinationType处选择 Single host or alias，在address处输入你将要控制的IP地址如192.168.1.20，其他设置一般可以不设，最后按Save保存（图18）。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/18.jpg" border="0" alt="" width="672" height="546" /></p>
<p>&lt;图18&gt;</p>
<p>步骤四：按Apply changes（确认修改），让系统生效，经测试IP为192.168.1.20的计算机下载速度在25KB/S(200/8=25)左右，说明设置生效了。</p>
<p>2、 备份/恢复配置文件<br />
配置备份：点击Diagnostics Backup/restore，点击Download configuration按钮，选定备份配置的目录，按保存键完成配置的备份。<br />
配置恢复：如果m0n0wall设置出现问题，可以通过从备份配置文件进行恢复。点击Diagnostics Backup/restore，点击游览按钮选择配件文件所在位置，点击Restore configuration（恢复配置），m0n0wall将自动重启，配置恢复完成。</p>
<p>3、 系统运行状态监视<br />
m0n0wall可以对CPU、内存、网卡工作状态、网络流量状态进行监视。CPU、内存使用情况对m0n0wall的性能有很大的影响，通过点击 StatusSystem可以看到cpu和内存使用情况。通过点击StatusInterface可以监看网卡的工作状态。网络流量监视必须安装安装 Adobe SVG viewer组件，下载地址：<a href="http://www.adobe.com/svg/viewer/install/" target="_blank"><span style="color: #0556d0;">http://www.adobe.com/svg/viewer/install/</span></a>，安装完成后可以点击Status Traffic graph就可以对LAN和WAN网卡的数据流量情况进行动态监视，如图19。</p>
<p><img src="http://www.routerbbs.com/attachment/cjq/19.jpg" border="0" alt="" width="498" height="370" /></p>
<p>（图19）</p>
<p>4、 升级m0n0wall<br />
一般情况下如果你使用的m0n0wall工作很正常，如果没有新的m0n0wall正式版本推出(版本号带b为测试版本)，建议不升级。M0n0wall 可以通过web界面进行升级，升级后可以使用原有的配置。下面以1.1版升级到1.2b8版为例进行说明，其他版本的升级类似。<br />
步骤一：到<a href="http://www.m0n0.ch/wall" target="_blank"><span style="color: #0556d0;">http://www.m0n0.ch/wall</span></a>下载generic-pc-1.2b8.img文件。<br />
步骤二：在浏览器中输入http://防火墙IP，在SystemFirmware（固件），点击Enable firmware upload（允许固件上载），点击游览选定新版本文件（如generic-pc-1.2b8.img），点击Upgrade firmware（更新固件）开始更新，如图20所示，完成后系统提示This image is not digitally signed…，无须理会，按YES系统将重新启动，启动完成后发现版本已经从原来的1.1变为1.2b8了，说明升级成功。在升级过程中不要关闭IE， 否则m0n0wall系统将可能无法启动。<br />
<img src="http://www.routerbbs.com/attachment/cjq/20.jpg" border="0" alt="" width="483" height="269" /></div>
<div class="cnt"></div>
<div class="cnt"><!--more--></div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F02%2F1553.html&amp;title=%E5%85%8D%E8%B4%B9%E7%9A%84%E4%B8%93%E4%B8%9A%E7%BA%A7%E9%98%B2%E7%81%AB%E5%A2%99M0n0wall" id="wpa2a_12"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/02/1553.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>layer7 在linux上的安装（转载）</title>
		<link>http://www.ptubuntu.com/2009/02/1540.html</link>
		<comments>http://www.ptubuntu.com/2009/02/1540.html#comments</comments>
		<pubDate>Thu, 12 Feb 2009 08:39:29 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux Server]]></category>
		<category><![CDATA[技术类]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=1540</guid>
		<description><![CDATA[http://ms.ntcb.edu.tw/~steven/ 實作 Layer 7 封包過濾 參考資訊 L7-filter Kernel Version HOWTO L7-filter 安裝實錄 下載檔案 要手動編譯新版本的核心並加入 layer7 封包過濾選項的話，需要俱備以下套件： linux kernel source iptables source l7-filter patch l7-filter protocols 在本文當中，所重新編譯的版本如下： kernel：2.6.24.4 iptables：1.4.0 l7-filter patch：2.17 l7-filter protocols：2008-02-20 為了方便管理，把以上套件均放在 /usr/src/kernels。 0001 root # cd /usr/src/kernels/ 可以選擇任何可下載網路檔案的工具，如 lynx、wget，或 mozilla、firefox 等等工具下載，在此範例使用 wget，方法如下： 0001 0002 0003 0004 root # wget ftp://ftp.tw.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.4.tar.bz2 root # wget [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ms.ntcb.edu.tw/%7Esteven/">http://ms.ntcb.edu.tw/~steven/</a></p>
<p class="head">實作 Layer 7 封包過濾</p>
<p class="title">參考資訊</p>
<ul>
<li><a href="http://l7-filter.sourceforge.net/HOWTO-kernel" target="_blank">L7-filter Kernel Version HOWTO</a></li>
<li><a href="http://cha.homeip.net/blog/archives/2005/12/l7filter.html" target="_blank">L7-filter 安裝實錄</a></li>
</ul>
<p class="title">下載檔案</p>
<p>要手動編譯新版本的核心並加入 layer7 封包過濾選項的話，需要俱備以下套件：</p>
<ul>
<li><a href="http://www.ptubuntu.com/tag/linx" class="st_tag internal_tag" rel="tag" title="标签 Linux 下的日志">linux</a> kernel source</li>
<li><a href="http://www.ptubuntu.com/tag/iptables" class="st_tag internal_tag" rel="tag" title="标签 iptables 下的日志">iptables</a> source</li>
<li>l7-filter patch</li>
<li>l7-filter protocols</li>
</ul>
<p>在本文當中，所重新編譯的版本如下：</p>
<ul>
<li>kernel：2.6.24.4</li>
<li>iptables：1.4.0</li>
<li>l7-filter patch：2.17</li>
<li>l7-filter protocols：2008-02-20</li>
</ul>
<p>為了方便管理，把以上套件均放在 /usr/src/kernels。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>cd /usr/src/kernels/</strong></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>可以選擇任何可下載網路檔案的工具，如 lynx、wget，或 mozilla、firefox 等等工具下載，在此範例使用 wget，方法如下：</p>
<p><span id="more-1540"></span></p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>wget ftp://ftp.tw.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.4.tar.bz2</strong>
root # <strong>wget ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.0.tar.bz2</strong>
root # <strong>wget http://nchc.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.17.tar.gz</strong>
root # <strong>wget http://nchc.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2008-02-20.tar.gz</strong></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>將套件解壓縮。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>tar -jxvf linux-2.6.24.4.tar.bz2; tar -zxvf l7-protocols-2008-02-20.tar.gz; tar -zxvf netfilter-layer7-v2.17.tar.gz; tar -jxvf iptables-1.4.0.tar.bz2</strong></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p class="title">更新 kernel</p>
<p>為了安裝方便，我們為 linux-2.6.24.4 這個目錄建位一個軟連結，以便切換目錄。</p>
<p>更新 kernel patch，增加 layer7 filter 選項。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>ln -s linux-2.6.24.4 linux; cd linux</strong></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>若您想延續使用舊版 kernel 的選項的話，您可以把 .config 檔案複制到新 kernel 的目錄下，此時重新選擇項目時就會延用之前的設定。</p>
<p>為 kernel source 上 layer7 的 patch。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>patch -p1 &lt; ../netfilter-layer7-v2.17/kernel-2.6.22-2.6.24-layer7-2.17.patch</strong>
patching file net/netfilter/Kconfig
patching file net/netfilter/Makefile
patching file net/netfilter/xt_layer7.c
patching file net/netfilter/regexp/regexp.c
patching file net/netfilter/regexp/regexp.h
patching file net/netfilter/regexp/regmagic.h
patching file net/netfilter/regexp/regsub.c
patching file net/netfilter/nf_conntrack_core.c
patching file net/netfilter/nf_conntrack_standalone.c
patching file include/net/netfilter/nf_conntrack.h
patching file include/linux/netfilter/xt_layer7.h</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>選擇 layer 7 相關選項</p>
<p>在 kernel 選項裡，需要把相關的設定選擇起來才可以，以下為完整有關 layer 7 的項目。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>make menuconfig</strong>
 General setup  ---&gt;
     [*] Prompt for development and/or incomplete code/drivers
 Networking  ---&gt;
       Networking options  ---&gt;
           [*] Network packet filtering framework (Netfilter)  ---&gt;
                 Core Netfilter Configuration  ---&gt;
                     &lt;M&gt; Netfilter connection tracking support
                     -*- Connection tracking flow accounting
                     -*- Connection mark tracking support
                     [*] Connection tracking security mark support
                     [*] Connection tracking events (EXPERIMENTAL)
                     &lt;M&gt; SCTP protocol connection tracking support (EXPERIMENTAL)
                     &lt;M&gt; UDP-Lite protocol connection tracking support (EXPERIMENTAL)
                     &lt;M&gt; Amanda backup protocol support
                     &lt;M&gt; FTP protocol support
                     &lt;M&gt; H.323 protocol support (EXPERIMENTAL)
                     &lt;M&gt; IRC protocol support
                     &lt;M&gt; NetBIOS name service protocol support (EXPERIMENTAL)
                     &lt;M&gt; PPtP protocol support
                     &lt;M&gt; SANE protocol support (EXPERIMENTAL)
                     &lt;M&gt; SIP protocol support (EXPERIMENTAL)
                     &lt;M&gt; TFTP protocol support
                     &lt;M&gt; Connection tracking netlink interface (EXPERIMENTAL)
                     {M} Netfilter Xtables support (required for ip_tables)
                     &lt;M&gt;   "CLASSIFY" target support
                     &lt;M&gt;   "CONNMARK" target support
                     &lt;M&gt;   "DSCP" target support
                     &lt;M&gt;   "MARK" target support
                     &lt;M&gt;   "NFQUEUE" target Support
                     &lt;M&gt;   "NFLOG" target support
                     &lt;M&gt;   "NOTRACK" target support
                     &lt;M&gt;   "TRACE" target support
                     &lt;M&gt;   "TRACE" target support
                     &lt;M&gt;   "SECMARK" target support
                     &lt;M&gt;   "CONNSECMARK" target support
                     &lt;M&gt;   "TCPMSS" target support
                     &lt;M&gt;   "comment" match support
                     &lt;M&gt;   "connbytes" per-connection counter match support
                     &lt;M&gt;   "connlimit" match support"
                     &lt;M&gt;   "connmark" connection mark match support
                     &lt;M&gt;   "conntrack" connection tracking match support
                     &lt;M&gt;   "DCCP" protocol match support
                     &lt;M&gt;   "DCCP" protocol match support
                     &lt;M&gt;   "DSCP" match support
                     &lt;M&gt;   "ESP" match support
                     &lt;M&gt;   "helper" match support
                     &lt;M&gt;   "length" match support
                     &lt;M&gt;   "limit" match support
                     &lt;M&gt;   "mac" address match support
                     &lt;M&gt;   "mark" match support
                     &lt;M&gt;   IPsec "policy" match support
                     &lt;M&gt;   Multiple port match support
                     &lt;M&gt;   "physdev" match support
                     &lt;M&gt;   "pkttype" packet type match support
                     &lt;M&gt;   "quota" match support
                     &lt;M&gt;   "realm" match support
                     &lt;M&gt;   "sctp" protocol match support (EXPERIMENTAL)
                     &lt;M&gt;   "state" match support
                     &lt;M&gt;   "layer7" match support
                     [*]     Layer 7 debugging output
                     &lt;M&gt;   "statistic" match support
                     &lt;M&gt;   "string" match support
                     &lt;M&gt;   "tcpmss" match support
                     &lt;M&gt;   "time" match support
                     &lt;M&gt;   "u32" match support
                     &lt;M&gt;   "hashlimit" match support
                 IP: Netfilter Configuration  ---&gt;
                     &lt;M&gt; IPv4 connection tracking support (required for NAT)
                     [*]   proc/sysctl compatibility with old connection tracking (NEW
                     &lt;M&gt; IP Userspace queueing via NETLINK (OBSOLETE)
                     &lt;M&gt; IP tables support (required for filtering/masq/NAT)
                     &lt;M&gt;   IP range match support
                     &lt;M&gt;   TOS match support
                     &lt;M&gt;   recent match support
                     &lt;M&gt;   ECN match support
                     &lt;M&gt;   AH match support
                     &lt;M&gt;   TTL match support
                     &lt;M&gt;   Owner match support
                     &lt;M&gt;   address type match support
                     &lt;M&gt;   Packet filtering
                     &lt;M&gt;     REJECT target support
                     &lt;M&gt;   LOG target support
                     &lt;M&gt;   ULOG target support
                     &lt;M&gt;   Full NAT (NEW)
                     &lt;M&gt;     MASQUERADE target support
                     &lt;M&gt;     REDIRECT target support
                     &lt;M&gt;     NETMAP target support
                     &lt;M&gt;     SAME target support (OBSOLETE)
                     &lt;M&gt;     Basic SNMP-ALG support (EXPERIMENTAL)
                     &lt;M&gt;   Packet mangling
                     &lt;M&gt;     TOS target support</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>較為重要的是 “layer7&#8243; match support 項目與 IPv4 connection tracking support (required for NAT) 項目，若您不知道的話就請把 Core Netfilter Configuration 與 IP: Netfilter Configuration 裡的選項全部選起來即可。</p>
<p class="section">編譯並安裝新版核心</p>
<p>重 kernel 2.6 開始，編譯核心就變得更為簡單，只需要幾個 make 的指令即可，安裝完後會自動修改 GRUB 的選項，不需手動修改，減少了手動修改錯誤的危險。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004
0005</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>make</strong>
root # <strong>make modules</strong>
root # <strong>make modules_install</strong>
root # <strong>make install</strong>
sh /usr/src/kernels/linux-2.6.24.4/arch/x86/boot/install.sh 2.6.24.4 arch/x86/boot/bzImage System.map "/boot"</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p class="title">更新 iptables patch</p>
<p>更新 iptables 需注意是否在現有的 kernel 中 netfilter 子系統相符合，若使用了不在 kernel 所支援的模組，在設定 iptables 會出現錯誤。以下指令可新增 laery7 模組的指令。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004
0005</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>cd /usr/src/kernels/iptables-1.4.0</strong>
root # <strong>patch -p1 &lt; ../netfilter-layer7-v2.17/iptables-1.4-for-kernel-2.6.20forward-layer7-2.17.patch</strong>
patching file extensions/libipt_layer7.c
patching file extensions/libipt_layer7.man
patching file extensions/.layer7-test</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>設定 KERNEL_DIR 與 IPTABLES_DIR 環境變數，並開始編譯安裝。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>export KERNEL_DIR=/usr/src/kernels/linux; export IPTABLES_DIR=/usr/src/kernels/iptables-1.4.0</strong>
root # <strong>chmod +x extensions/.layer7-test</strong>
root # <strong>make &amp;&amp; make install</strong>
root #</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p class="title">安裝通訊定議檔</p>
<p>使用 layer7 模組時，會參考 /etc/l7-protocols 目錄下的定議檔，各通訊協定的封包特徵會在 l7-protocols 的套件裡，解開之後直接安裝即可。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>cd /usr/src/kernels/l7-protocols-2008-02-20</strong>
root # <strong>make install</strong>
mkdir -p /etc/l7-protocols
cp -R * /etc/l7-protocols</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p class="section">重新開機</p>
<p>重新編譯了核心之後，需要重新啟動電腦才能套用新的核心套件，請使用 uname 指令查看是否設定成功。</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>uname -a; iptables -V</strong>
Linux localhost.localdomain 2.6.24.4 #1 SMP Thu Apr 10 23:21:08 CST 2008 i686 i686 i386 GNU/Linux
iptables v1.4.0</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p class="title">測試</p>
<p>MSN Messenger</p>
<p>以下測試會拒絕連出 MSN Menssenger 封包，在 iptables 的 OUTPUT 政策裡，我們在 X-Window 執行 GAIM 連出時，會發現 msnmessenger 的封包被 DROP。</p>
<p>語法：</p>
<p class="code">iptables -A OUTPUT -m layer7 &#8211;l7proto msnmessenger -j DROP</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>iptables -A OUTPUT  -m layer7 --l7proto msnmessenger -j DROP</strong>
root # <strong>iptables -L -n -v</strong>
Chain INPUT (policy ACCEPT 3056 packets, 394K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 1274 packets, 159K bytes)
 pkts bytes target     prot opt in     out     source               destination
   34  2584 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           LAYER7 l7proto msnmessenger</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>BitTorrent</p>
<p>第二個測試拒絕連出 BitTorrent 封包，我們在設定好拒絕 bittorrent 封包後，在本機使用 BT 下載檔案均失敗，可從 iptables 指令查出。</p>
<p>語法：</p>
<p class="code">iptables -A OUTPUT -m layer7 &#8211;l7proto bittorrent -j DROP</p>
<div style="overflow: auto;">
<table class="code FCK__ShowTableBorders" border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#999999">
<tbody>
<tr>
<td width="1" align="right">
<pre>0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012</pre>
</td>
<td align="left" valign="top" bgcolor="#000000">
<pre><span style="color: #00ff00;">root # <strong>iptables -A OUTPUT  -m layer7 --l7proto bittorrent -j DROP</strong>
root # <strong>iptables -L -n -v</strong>
Chain INPUT (policy ACCEPT 33768 packets, 33M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 25235 packets, 2362K bytes)
 pkts bytes target     prot opt in     out     source               destination
   91  6916 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           LAYER7 l7proto msnmessenger
   78  7920 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           LAYER7 l7proto bittorrent</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>若您把 layer7 安裝在網路閘道 (Gateway) 上的話，那麼請使用 PREROUTING 或 FORWARD 連線才會有效。iptables 可參考 <a href="http://ms.ntcb.edu.tw/%7Esteven/article/iptables.htm">iptables 封包過瀘規則</a> <span style="font-size: x-small;">(<a href="http://ms.ntcb.edu.tw/%7Esteven/article/iptables.htm" target="_blank">new window</a>)</span>。</p>
<p class="title">後記：</p>
<p>若您打算在您的防火牆上使用 layer7 封包過濾功能的話，那麼所需的記憶體與 CPU 會更多，若您的使用者連線數同一時間超過百人，並且頻繁的取存網路的話，那麼可能需要考慮使用較高效能的網路卡與更多的記憶體。若您在啟用 layer7 功能後發現網路變得很慢的話，那麼就需要檢查您的網卡與記憶體是否足夠。</p>
<p>来自:http://hi.baidu.com/vyatta/blog/item/80f6fa099528d187d0581bcd.html</p>
<p><!--more--></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F02%2F1540.html&amp;title=layer7%20%E5%9C%A8linux%E4%B8%8A%E7%9A%84%E5%AE%89%E8%A3%85%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89" id="wpa2a_14"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/02/1540.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>认识Linux下三大便利的开源防火墙</title>
		<link>http://www.ptubuntu.com/2009/01/1485.html</link>
		<comments>http://www.ptubuntu.com/2009/01/1485.html#comments</comments>
		<pubDate>Thu, 22 Jan 2009 03:36:01 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=1485</guid>
		<description><![CDATA[对所有的Linux系统和网络管理员来说，一个最基本的技巧是知道如何从头开始编写一个强健的iptables防火墙，并且知道如何修改它，使其适应多种不同的情况。然而，在现实世界中，这看起来似乎少之又少。对iptables的学习并非是一个简单的过程，不过笔者在这里向您推荐外网上如下资料，这样使用起来你就得心应手了。 笔者认为所有的管理员都应彻底地理解Iptables，不过，另外一个可选择的方法是运用出色的Linux防火墙生成工具。 Firewall Builder 第一个出场的便是Firewall Builder，这是一个完善的多平台的图形化的防火墙配置和管理工具。它运行在iptables、 ipfilter、 OpenBSD的 PF、思科的PIX之上。通过设计，它将规则设计的细节隐藏起来，而着重于编写策略。不过，不要在你真实的防火墙上运行防火墙生成器，因为它需要X Windows。你需要将其运行在一台工作站上，然后将脚本复制到防火墙上。 Firestarter 第二位是Firestarter，它是一款优秀的图形化的防火墙生成向导，它可以引导你一步一步地通过构建防火墙的过程。对于与局域网共享唯一公共IP地址的NAT防火墙来说，这是一个不错的选择，并且在防火墙之后，它还有一些公共服务，或者一个分离的DMZ。它拥有打开或关闭防火墙的一些简易命令，可以查看状态视图和当前的活动。你可以将其运行在一台headless计算机上，并远程监视之，或者将其用作一个独立的防火墙。 Shorewall 第三位Shorewall是一个流行的防火墙生成器；它比Firestarter更加复杂和灵活，并且它适合用于更加复杂的网络。Shorewall的学习曲线类似于iptables，不过，其文档资料丰富，并且提供提供不同情况的解决方法指南，如单一主机防火墙，两接口和三接口防火墙，以及拥有多个公共IP地址的防火墙等等。你可以获得许多关于过滤P2P服务的帮助，如Kazaa速率限制、QqS(质量服务)、VPN转移归向等内容。 我们向你推荐这三个软件的目的是让你不用花钱购买商业的防火墙软件，后者无论如何不如内置的Linux和Unix包过滤器。用户应该将有限的资金用于购买更高质量的硬件上。 来自:http://article.pchome.net/content-804802.html]]></description>
			<content:encoded><![CDATA[<p>对所有的Linux系统和网络管理员来说，一个最基本的技巧是知道如何从头开始编写一个强健的iptables防火墙，并且知道如何修改它，使其适应多种不同的情况。然而，在现实世界中，这看起来似乎少之又少。对iptables的学习并非是一个简单的过程，不过笔者在这里向您推荐外网上如下资料，这样使用起来你就得心应手了。<span id="more-1485"></span></p>
<p>笔者认为所有的管理员都应彻底地理解Iptables，不过，另外一个可选择的方法是运用出色的Linux防火墙生成工具。</p>
<p>Firewall Builder</p>
<p>第一个出场的便是Firewall Builder，这是一个完善的多平台的图形化的防火墙配置和管理工具。它运行在iptables、 ipfilter、  OpenBSD的 PF、思科的PIX之上。通过设计，它将规则设计的细节隐藏起来，而着重于编写策略。不过，不要在你真实的防火墙上运行防火墙生成器，因为它需要X  Windows。你需要将其运行在一台工作站上，然后将脚本复制到防火墙上。</p>
<p>Firestarter</p>
<p>第二位是Firestarter，它是一款优秀的图形化的防火墙生成向导，它可以引导你一步一步地通过构建防火墙的过程。对于与局域网共享唯一公共IP地址的NAT防火墙来说，这是一个不错的选择，并且在防火墙之后，它还有一些公共服务，或者一个分离的DMZ。它拥有打开或关闭防火墙的一些简易命令，可以查看状态视图和当前的活动。你可以将其运行在一台headless计算机上，并远程监视之，或者将其用作一个独立的防火墙。</p>
<p>Shorewall</p>
<p>第三位Shorewall是一个流行的防火墙生成器；它比Firestarter更加复杂和灵活，并且它适合用于更加复杂的网络。Shorewall的学习曲线类似于iptables，不过，其文档资料丰富，并且提供提供不同情况的解决方法指南，如单一主机防火墙，两接口和三接口防火墙，以及拥有多个公共IP地址的防火墙等等。你可以获得许多关于过滤P2P服务的帮助，如Kazaa速率限制、QqS(质量服务)、VPN转移归向等内容。</p>
<p>我们向你推荐这三个软件的目的是让你不用花钱购买商业的防火墙软件，后者无论如何不如内置的Linux和Unix包过滤器。用户应该将有限的资金用于购买更高质量的硬件上。</p>
<p>来自:http://article.pchome.net/content-804802.html</p>
<p><!--more--></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F01%2F1485.html&amp;title=%E8%AE%A4%E8%AF%86Linux%E4%B8%8B%E4%B8%89%E5%A4%A7%E4%BE%BF%E5%88%A9%E7%9A%84%E5%BC%80%E6%BA%90%E9%98%B2%E7%81%AB%E5%A2%99" id="wpa2a_16"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/01/1485.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql和iptables备忘</title>
		<link>http://www.ptubuntu.com/2009/01/1344.html</link>
		<comments>http://www.ptubuntu.com/2009/01/1344.html#comments</comments>
		<pubDate>Mon, 05 Jan 2009 09:38:34 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux Server]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=1344</guid>
		<description><![CDATA[这个是发布在LAMP兄弟连 里.觉的关面有两个还不错.可以做为自己的笔记吧.主要是iptables 保存吧. 1.mysql 在系统root权限下修改数据库访问root口令: /usr/local/mysql/bin/mysqladmin -u root -p password 新密码 回车后会提示输入口令，这里输入的是旧的ROOT的口令，口令正确后，回车完成，无任何错误提示口令修改成功。 2.iptables 的总结 (1)清空旧规则 iptables -F iptables -X iptables -t nat -F iptables -t nat -X service iptables save &#8211;保存，以前一直不知道怎么保存，用iptables-save也不起作用，这样整个iptables处于最原始状态。 （2）按需求增加规则 我的服务器的iptabls 的配置 iptables -A INPUT -p tcp -s 192.168.0.1/24 &#8211;dports 80 -j ACCEPT iptables -A INPUT -p tcp -m multiport &#8211;dports 22,3306  -j [...]]]></description>
			<content:encoded><![CDATA[<div id="postmessage_83972" class="t_msgfont">这个是发布在<a href="http://bbs.lampbrother.net/thread-12762-1-1.html" target="_blank">LAMP兄弟连</a> 里.觉的关面有两个还不错.可以做为自己的笔记吧.主要是iptables 保存吧.</div>
<div class="t_msgfont"></div>
<div class="t_msgfont">1.<span class="t_tag" onclick="tagshow(event)"><a href="http://www.ptubuntu.com/tag/mysql" class="st_tag internal_tag" rel="tag" title="标签 mysql 下的日志">mysql</a></span> 在<span class="t_tag" onclick="tagshow(event)">系统</span>root权限下修改<span class="t_tag" onclick="tagshow(event)">数据库</span>访问root口令:<br />
/usr/local/my<span class="t_tag" onclick="tagshow(event)">sql</span>/bin/mysqladmin -u root -p password  新密码<br />
回车后会提示输入口令，这里输入的是旧的ROOT的口令，口令正确后，回车完成，无任何错误提示口令修改成功。<br />
2.<a href="http://www.ptubuntu.com/tag/iptables" class="st_tag internal_tag" rel="tag" title="标签 iptables 下的日志">iptables</a>  的总结<br />
(1)清空旧规则<br />
iptables -F<br />
iptables -X<br />
iptables -t nat -F<br />
iptables  -t nat -X<br />
<span style="color: #ff0000;">service iptables save  &#8211;保存，以前一直不知道怎么保存，用iptables-save也不起作用，这样整个iptables处于最原始状态。</span><br />
（2）按需求增加规则<br />
我的<span class="t_tag" onclick="tagshow(event)">服务器</span>的iptabls 的<span class="t_tag" onclick="tagshow(event)">配置</span><br />
iptables -A INPUT -p  tcp -s 192.168.0.1/24 &#8211;dports 80 -j ACCEPT<br />
iptables -A INPUT -p tcp -m  multiport &#8211;dports 22,3306  -j ACCEPT<br />
iptables -A INPUT -m state &#8211;state  RELATED,ESTABLISHED -j ACCEPT<br />
iptalbes -A INPUT -p icmp -j ACCEPT<br />
iptables  -P INPUT DROP<br />
service iptables  save</div>
<div class="t_msgfont"></div>
<div class="t_msgfont">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
以下是显示的结果<br />
# /sbin/service iptables status<br />
Chain INPUT (policy DROP)<br />
target      prot opt source               destination<br />
ACCEPT     tcp  &#8211;  192.168.0.0/24        0.0.0.0/0           tcp dpt:80<br />
ACCEPT     tcp  &#8211;  192.168.1.0/24        0.0.0.0/0           tcp dpt:80<br />
ACCEPT     icmp &#8211;  0.0.0.0/0             0.0.0.0/0<br />
ACCEPT     tcp  &#8211;  0.0.0.0/0            0.0.0.0/0            multiport dports 22,3306<br />
ACCEPT     all  &#8211;  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED<br />
Chain FORWARD (policy ACCEPT)<br />
target      prot opt source               destination<br />
Chain OUTPUT (policy  ACCEPT)<br />
target     prot opt source               destination</div>
<div class="t_msgfont"></div>
<div class="t_msgfont">这些规则要看你个人的需要.再去选择添加这些还有很多.所以要研究的朋友.还需要学的更多.</div>
<p><script src="tag.php?action=relatetag&amp;rtid=12762" type="text/javascript"></script></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2009%2F01%2F1344.html&amp;title=mysql%E5%92%8Ciptables%E5%A4%87%E5%BF%98" id="wpa2a_18"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2009/01/1344.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iptables防火墙应用之动态DNS</title>
		<link>http://www.ptubuntu.com/2008/12/1097.html</link>
		<comments>http://www.ptubuntu.com/2008/12/1097.html#comments</comments>
		<pubDate>Thu, 18 Dec 2008 16:19:36 +0000</pubDate>
		<dc:creator>ptubuntu</dc:creator>
				<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux Server]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://www.ptubuntu.com/?p=1097</guid>
		<description><![CDATA[一、核心思想 配置动态DNS服务器的核心思想是：在DNS服务器上运行多个BIND，每个BIND为来自不同区 域的用户提供解析，因此每个BIND都应具有不同的配置文件和域文件，并且分别监听在不同 的端口。在接到客户端DNS请求时，根据客户的ip地址将请求重定向不同的BIND服务端口。 BIND响应时，再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将 不同的解析结果返回给客户端。整个过程对于客户端来说都是透明的。实现的关键在于运行 不同的BIND及运用iptables进行ip地址及端口改写操作。 关于iptables更为详细的信息，请参考解决方案中作者的两篇文章——《用iptales实现包 过虑型防火墙》及《用iptables实现NAT》。 二、配置过程 步骤1： 配置内核 netfilter要求内核版本不低于2.3.5，在编译新内核时，要求选择和netfilter相关的项目。这 些项目通常都是位于”Networking options”子项下。以2.4.0内核为例，我们应该选中的项目有： [*] Kernel/User netlink socket ! ; [ ] Routing messages &#60;*&#62; Netlink device emulation [*] Network packet filtering (replaces ipchains) &#8230;&#8230;. 然后，在”IP: Netfilter Configuration &#8212;-&#62;”选中： Connection tracking (required for masq/NAT) FTP protocol support IP tables support (required for filtering/masq/NAT) limit [...]]]></description>
			<content:encoded><![CDATA[<p><strong>一、核心思想</strong></p>
<p>配置动态DNS服务器的核心思想是：在DNS服务器上运行多个BIND，每个BIND为来自不同区</p>
<p>域的用户提供解析，因此每个BIND都应具有不同的配置文件和域文件，并且分别监听在不同</p>
<p>的端口。在接到客户端DNS请求时，根据客户的ip地址将请求重定向不同的BIND服务端口。</p>
<p>BIND响应时，再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将</p>
<p>不同的解析结果返回给客户端。整个过程对于客户端来说都是透明的。实现的关键在于运行</p>
<p>不同的BIND及运用iptables进行ip地址及端口改写操作。</p>
<p>关于iptables更为详细的信息，请参考解决方案中作者的两篇文章——《用iptales实现包</p>
<p>过虑型防火墙》及《用iptables实现NAT》。</p>
<p><strong>二、配置过程</strong></p>
<p><strong><span id="more-1097"></span><br />
</strong></p>
<p>步骤1： 配置内核</p>
<p>netfilter要求内核版本不低于2.3.5，在编译新内核时，要求选择和netfilter相关的项目。这</p>
<p>些项目通常都是位于”Networking options”子项下。以2.4.0内核为例，我们应该选中的项目有：</p>
<p>[*] Kernel/User netlink socket ! ;</p>
<p>[ ] Routing messages</p>
<p>&lt;*&gt; Netlink device emulation</p>
<p>[*] Network packet filtering (replaces ipchains)</p>
<p>&#8230;&#8230;.</p>
<p>然后，在”IP: Netfilter Configuration &#8212;-&gt;”选中：</p>
<p>Connection tracking (required for masq/NAT)</p>
<p>FTP protocol support</p>
<p>IP tables support (required for filtering/masq/NAT)</p>
<p>limit match support</p>
<p>MAC address match support</p>
<p>Netfilter MARK match support</p>
<p>Multiple port match support</p>
<p>TOS match support</p>
<p>Connection state match support</p>
<p>Packet filtering</p>
<p>&amp;! nbsp; REJECT target support</p>
<p>Fu ll NAT</p>
<p>MASQUERADE target support</p>
<p>REDIRECT target support</p>
<p>Packet mangling</p>
<p>TOS target support</p>
<p>MARK target support</p>
<p>LOG target support</p>
<p>ipchains (2.2-style) support</p>
<p>ipfwadm (2.0-style) support</p>
<p>其中最后两个项目可以不选，但是如果你比较怀念ipchains或者ipfwadm，你也可以将其</p>
<p>选中，以便在2.4内核中使用ipchians或ipfwadm。但是需要注意的是，iptables是和</p>
<p>ipchians/ipfwadm相对立的，在使用iptables的同时就不能同时使用ipchains/ipfwadm。</p>
<p>编译成功后，这些模块文件都位于以下目录中</p>
<p>/lib/modules/2.4.0/kernel/net/ipv4/netfilter</p>
<p>编译2.4.0的新内核时还应该注意要在”Processor type and fea! tures”中选择和你的</p>
<p>CPU相对应的正确的CPU选项，否则新内核可能无法正常工作。</p>
<p>步骤二、 配置BIND服务</p>
<p>缺省地，BIND服务监听在53端口，我们可以通过配置让BIND运行在不同的ip及端口上。</p>
<p>实现这一点并不复杂，假设我们的DNS服务器的ip地址是211.163.76.1，并且我们想区分</p>
<p>CERNET及非CERNET的客户，这时我们必须运行两个BIND，使用不同的配置文件。可以在</p>
<p>使用非标准监听端口的BIND的配置文件中用listen-on指定BIND监听的端口，比如：</p>
<p>options {</p>
<p>listen-on port 54 {211.163.76.1;}</p>
<p>directory “/var/named_cernet”;</p>
<p>};</p>
<p>可以用named的-c 选项指定named读入不同的配置文件，比如：</p>
<p>/usr/sbin/named -u named -c /etc/named_cernet.conf</p>
<p>步骤三、配置重定向规则</p>
<p>假设监听在标准端口的BIND服务器为非CERNET客户提供DNS解析，监听在54端口的BIND服务器</p>
<p>为CERNET服务器提供DNS解析，我们可以建立如下的规则脚本：</p>
<p>#!/bin/bash</p>
<p>#打开端口转发</p>
<p>echo 1 &gt;&amp;nb! sp;/proc/sys/net/ipv4/ip_forward</p>
<p>#加载相关的内核模块</p>
<p>/sbi n/modprobe iptable_filter</p>
<p>/sbin/modprobe ip_tables</p>
<p>/sbin/modprobe <a href="http://www.ptubuntu.com/tag/iptables" class="st_tag internal_tag" rel="tag" title="标签 iptables 下的日志">iptables</a>_nat</p>
<p>#刷新所有规则</p>
<p>/sbin/iptables -t nat -F</p>
<p>#加入来自CERNET的DNS请求转发规则，将其转发到本地54端口，CERNET地址列表可从www.nic.edu.cn/RS/ipstat/获得</p>
<p>/sbin/iptables -t nat -A PREROUTING -p udp -s 163.105.0.0/16 &#8211;dport 53 -i  eth0 -j REDIRECT 54</p>
<p>/sbin/iptables -t nat -A PREROUTING -p tcp -s 163.105.0.0/16 &#8211;dport 53 -i  eth0 -j REDIRECT 54</p>
<p>/sbin/iptables -t nat -A PREROUTING -p udp -s 166.111.0.0/16 &#8211;dport 53 -i  eth0 -j REDIRECT 54</p>
<p>/sbin/iptables -t nat -A PREROUTING -p tcp -s 166.111.0.0/16 &#8211;dport 53 -i  eth0 -j REDIRECT 54!</p>
<p>/sbin/iptables -t nat -A PREROUTING -p udp -s 202.4.128.0/19 &#8211;dport 53 -i  eth0 -j REDIRECT 54</p>
<p>/sbin/iptables -t nat -A PREROUTING -p tcp -s 202.4.128.0/19 &#8211;dport 53 -i  eth0 -j REDIRECT 54</p>
<p>/sbin/iptables -t nat -A PREROUTING -p udp -s 202.112.0.0/15 &#8211;dport 53 -i  eth0 -j REDIRECT 54</p>
<p>/sbin/iptables -t nat -A PREROUTING -p tcp -s 202.112.0.0/15 &#8211;dport 53 -i  eth0 -j REDIRECT 54</p>
<p>…</p>
<p>#将返回给CERNET DNS客户数据包的源端口(54端口)伪装成53端口</p>
<p>/sbin/iptables -t nat -A POSTROUTING -p udp &#8211;sport 54 -o eth0 -j SNAT &#8211;to  211.163.76.1:53</p>
<p>/sbin/iptables -t&amp;n! bsp;nat -A POSTROUTING -p tcp &#8211;sport&amp;n bsp;54  -o eth0 -j SNAT &#8211;to 211.163.76.1:53</p>
<p>教育网网的朋友可以从这里这里下载该脚本，将脚本中的DNS_IP及CNET_PORT参数改成你自</p>
<p>己的DNS服务器地址及监听端口即可。</p>
<p>步骤四、 运行动态DNS</p>
<p>配置完成后我们启动DNS服务器，并且运行相应的规则脚本，我们的动态DNS服务器就可以正常工作了。</p>
<p>来自:<a href="http://tech.sina.com.cn/roll/2008-12-18/1804922352.shtml" target="_blank">sina.com.cn</a><!--more--></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ptubuntu.com%2F2008%2F12%2F1097.html&amp;title=iptables%E9%98%B2%E7%81%AB%E5%A2%99%E5%BA%94%E7%94%A8%E4%B9%8B%E5%8A%A8%E6%80%81DNS" id="wpa2a_20"><img src="http://www.ptubuntu.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ptubuntu.com/2008/12/1097.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

