📄 linux 2.4有状态防火墙设计(二).htm
字号:
功能也可以在幕后工作,跟踪您的机器参与的连接。 <BR><BR>NEW 连接状态,第 1 部分 <BR><BR><BR>conntrack
不仅能识别连接,它还可以将它看到的包分成四种连接状态。我们将要讨论的第一种状态叫作 NEW。输入 "ssh remote.host.com"
时,初始包或源自于您的机器并要发送到 remote.host.com 的包都处于 NEW 状态。但是,即使只从 remote.host.com
接收到一个应答包,那么就立即不再将其它作为此连接的一部分、发送至 remote.host.com 的包看作是 NEW
包。因此,只有在建立新连接、并且还没有从远程主机接收到通信流时使用的包才被看作是 NEW(当然,这个包是此特定连接的一部分)。
<BR><BR>NEW 连接状态,第 2 部分 <BR><BR>我们已经描述了外出 NEW 包,但还有可能会有进入 NEW 包(很常见)。进入
NEW 包通常来自远程机器,在启动与您的连接时使用。您的 Web 服务器接收到的初始包(作为 HTTP 请求的一部分)将被看作是进入 NEW
包;但是,只要您应答了一个进入 NEW 包,所接收到的与此特定连接相关的其它包都不再被看作是处于 NEW 状态。
<BR><BR>ESTABLISHED 状态 <BR><BR>一旦连接看到两个方向上都有通信流,与此附加相关的其它包都被看作处于
ESTABLISHED 状态。NEW 和 ESTABLISHED 之间的区别很重要,我们稍后将做讨论。 <BR><BR><BR>RELATED
状态 <BR><BR><BR>第三种连接状态类别叫作 RELATED。RELATED
包是那些启动新连接,但有与当前现有连接相关的包。RELATED 状态可以用于调整组成多重连接协议(如
ftp)的连接,以及与现有连接相关的错误包(如与现有连接相关的 ICMP 错误包)。 <BR><BR><BR>INVALID 状态
<BR><BR>最后是 INVALID 包 -- 那些包不能归入以上三种类别。应当注意某个包是否被看作是
INVALID,因为这种包不会被自动废弃;因此您需要插入适当的规则,并设置链策略,以便可以正确处理这些包。
<BR><BR><BR>添加有状态规则
<BR><BR><BR>好,我们已经掌握了连接跟踪,现在来看一下能够使这个没有功能的防火墙变得非常有用的一个附加规则:
<BR><BR><BR>iptables -P INPUT DROP <BR>iptables -A INPUT -i ! eth1 -j
ACCEPT <BR>iptables -A INPUT -m state --state ESTABLISHED,RELATED -j
ACCEPT <BR><BR>规则如何工作 <BR><BR>当输入到现有 INPUT
链的末端时,这个单一规则可以让我们建立与远程机器的连接。其工作方式如下。假设我们要 ssh 到 remote.host.com。输入 "ssh
remote.host.com" 之后,我们的机器发送出一个包来启动连接。这个特定包处于 NEW
状态,防火墙允许它外出,因为我们只阻拦进入防火墙的包,而不是外出的。 <BR><BR>当收到来自 remote.host.com
的应答包时,这个包沿着我们的 INPUT 链流动。它不匹配第一个规则(因为它来自
eth1),因此它继续移动到下一个,也是最后的规则。如果它匹配此规则,则接受它,如果不匹配,则它会落到 INPUT 链的末端,并对它应用缺省策略
(DROP)。那么,这个进入应答包会被接受,还是会落到底呢?
<BR><BR><BR>答:被接受。当内核检查这个进入包时,它首先认出这个包是现有连接的一部分。然后,内核需要判定这是 NEW 还是
ESTABLISHED 包。由于这是个进入包,它查看这个连接是否有外出通信流,结果发现有外出通信流(我们发送的初始 NEW
包)。因此,这个进入包被归入 ESTABLISHED 类,就象其它接收到或发送的与此连接关联的包。 <BR><BR><BR>进入 NEW 包
<BR><BR>现在,考虑一下如果远程机器上的某个人尝试 ssh 到我们的机器,会发生什么情况。我们接收到的初始包属于 NEW 类,它不匹配规则
1,因此它前进到规则 2。由于这个包处于 ESTABLISHED 或 RELATED 状态,它将跌落到 INPUT
链的末端,于是将对它应用缺省策略 DROP。进入 ssh 连接请求将被删除,而且没有我们的应答(或 TCP 复位)。
<BR><BR><BR>几乎完美的防火墙
<BR><BR><BR>那么,目前我们的防火墙怎么样?如果您不要因特网上的任何人与您连接,但又需要连接到因特网上的站点,那么此防火墙非常适用于膝上型计算机或工作站。您可以使用
Netscape、konqueror、ftp、ping,执行 DNS
查找及更多操作。您启动的任何连接都将返回到防火墙。但是,任何来自因特网的未经请求的连接都将被删除,除非它与您启动的现有连接相关。只要不需要对外提供任何网络服务系统,那么它就是个几乎完美的防火墙。
<BR><BR><BR><BR>基本防火墙脚本 <BR><BR><BR>以下是一个简单脚本,它可以用于建立/拆毁第一个基本工作站防火墙:
<BR><BR><BR>#!/bin/bash <BR># A basic stateful firewall for a
workstation or laptop that isn running any <BR># network services like a
web server, SMTP server, ftp server, etc. <BR><BR>if [ "$1" = "start" ]
<BR>then <BR>echo "Starting firewall..." <BR>iptables -P INPUT DROP
<BR>iptables -A INPUT -i ! eth1 -j ACCEPT <BR>iptables -A INPUT -m state
--state ESTABLISHED,RELATED -j ACCEPT <BR>elif [ "$1" = "stop" ]
<BR>then <BR>echo "Stopping firewall..." <BR>iptables -F INPUT
<BR>iptables -P INPUT ACCEPT <BR>fi <BR><BR><BR><BR>使用脚本
<BR><BR><BR>如果使用这个脚本,可以通过输入 "./firewall stop" 来停止防火墙,通过输入 "./firewall
start" 再启动它。如果要停止防火墙,使用 "iptables -F INPUT" 将规则清除处 INPUT 链,然后使用
"iptables -P INPUT ACCEPT" 命令使缺省 INPUT 策略切换回
ACCEPT。现在来看一下可以对现有工作站防火墙进行的一些改进。在我说明了所有改进之后,我将向您显示最后的工作站防火墙脚本。然后,就开始为服务器定制防火墙。
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<DIV align=right>发布人:netbull 来自:IBM developerWorks
中国 </DIV><BR></UL><IMG src="Linux 2.4有状态防火墙设计(二).files/line.jpg"><BR>
<FORM action=post.php?skin=reart&ID=2585 method=post>
<UL>-- 发表评论 --<BR> 昵称:<INPUT name=name> Email:<INPUT
name=email><BR> 内容:<BR><TEXTAREA name=content rows=5 cols=56></TEXTAREA><BR> <INPUT type=submit value=确定回复> <INPUT type=reset value=清除></UL></FORM><IMG
src="Linux 2.4有状态防火墙设计(二).files/line.jpg"><BR>
<UL>
<LI>以下是对此文的评论:<BR><BR></LI></UL></TD><!--第三列-->
<TD vAlign=top align=left width="25%"> <IMG
src="Linux 2.4有状态防火墙设计(二).files/online.jpg" border=0>
<UL>
<LI><A href="http://www.linuxbyte.net/addnews.php"
target=_blank>新闻发布</A><BR><BR>
<LI><A href="http://www.linuxbyte.net/addart.php"
target=_blank>文献发布</A><BR><BR>
<LI><A href="http://www.linuxbyte.net/addsoft.php"
target=_blank>软件发布</A><BR><BR>
<LI><A href="http://www.linuxbyte.net/manger.php"
target=_blank>软件管理</A><BR></LI></UL><IMG height=5
src="Linux 2.4有状态防火墙设计(二).files/tabledi2.jpg" width="100%"><!--下载排行-->
<IMG src="Linux 2.4有状态防火墙设计(二).files/download.jpg" border=0>
<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=676">Red Hat
Linux</A> (81310)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=219">Oracle9i
Enterprise</A> (40539)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=93">星际译王1.31版</A> (37768)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=785">kylix</A> (36517)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=1642">Lindows OS
4.5</A> (29611)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=287">AOL
server</A> (27385)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=969">RedHat
中文环境</A> (26129)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=647">Chinput</A> (24366)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=1041">中软Linux</A> (21924)<BR> <A
href="http://www.linuxbyte.net/view.php?skin=soft&id=946">RedHat Linux
7.1正式</A> (21608)<BR><IMG height=5
src="Linux 2.4有状态防火墙设计(二).files/tabledi2.jpg" width="100%">
<!--文摘分类--> <IMG src="Linux 2.4有状态防火墙设计(二).files/artstyle.jpg"
border=0> <BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=1">内核分析</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=2">网络技术及应用</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=3">应用编程</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=4">硬件应用</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=5">软件应用</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=6">系统管理</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=7">数据库应用</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=8">系统安全</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=9">Linux中文化</A><BR> <A
href="http://www.linuxbyte.net/arttype.php?dno=10">市场与观点</A><BR><IMG
height=5 src="Linux 2.4有状态防火墙设计(二).files/tabledi2.jpg" width="100%"> <BR><!--合作伙伴--> <IMG src="Linux 2.4有状态防火墙设计(二).files/friends.jpg"
border=0> <BR> <A
href="http://www.5ilinux.com/"
target=_blank>我爱linux</A><BR> <A
href="http://www.heblinux.org/"
target=_blank>河北LINUX协会</A><BR> <A
href="http://www.xteamlinux.com.cn/"
target=_blank>冲浪软件下载中心</A><BR> <A
href="http://cosoft.org.cn/html/"
target=_blank>共创联盟</A><BR> <A
href="http://www.coventive.com.cn/"
target=_blank>XLinux</A><BR> <A
href="http://www.it365.net/"
target=_blank>诺金软件电脑网络</A><BR> <A
href="http://www.ch2000.com.cn/"
target=_blank>中文2000软件</A><BR> <A
href="http://www.csuu.com/"
target=_blank>中国Unix联盟</A><BR> <A
href="http://freewares.cn/"
target=_blank>自由软件在中国</A><BR> <A
href="http://www.pconline.com.cn/pcedu"
target=_blank>太平洋电脑信息网</A><BR> <A
href="http://www.linuxaid.com.cn/"
target=_blank>LinuxAid</A><BR> <A
href="http://www.cosoft.org.cn/"
target=_blank>共创软件联盟</A><BR> <A
href="http://wsdn.org/"
target=_blank>WEB程序开发网络</A><BR> <A
href="http://linux.softhouse.com.cn/"
target=_blank>软件屋Linux之家</A><BR> <A
href="http://ljb.vpnet.cn/"
target=_blank>随意网络</A><BR> <A
href="http://linux.ccidnet.com/"
target=_blank>赛迪网Linux专区</A><BR></TD></TR></TBODY></TABLE>
<CENTER>Completed in 0.0536079406738 seconds</CENTER>
<CENTER>COPYRIGHT 2002-2003 <FONT color=#9b2626>LinuxByte.net</FONT> <A
href="mailto:oneteam@mail.linuxbyte.net">联系本站</A></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -