庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统安全>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

IPCHAINS的工作流程

 作者:本站收集   日期:2005-4-12
字号选择〖 〗/ 双击滚屏 单击停止   
本文不是专门讨论IPCHAINS的工作原理,也不是讨论IPCHAINS有关的参数和命令的用法。我只不过是想
说明一下IPCHAINS到底是怎样工作的,重在流程。并结合一个IP包在到达防火墙后是经过怎样的步骤最
后从防火墙出来。
(想要了解IPCHAINS的参数和命令的用法请看http://www.ibase.com/book/showQueryL.asp?libID=284)

大家知道,REDHAT 6.2内自带ipchains防火墙。系统有三个标准的防火墙链和用户自定义的防火墙链。
还有它的规则和目标。首先要弄清这些概念:
其实画个图就清楚了,如下

`input' `Test'
---------------------------- ----------------------------
| Rule1: -p ICMP -j REJECT | | Rule1: -s 192.168.1.1 |
|--------------------------| |--------------------------|
| Rule2: -p TCP -j Test | | Rule2: -d 192.168.1.1 |
|--------------------------| ----------------------------
| Rule3: -p UDP -j DENY |
----------------------------



上图就表示两条链:系统的标准链INPUT链和用户自定义链Test。
RuleX就是规则

-j 后面的就是目标或又是一个防火链。
当然,系统还有forward链,output链,你还可以定义自己的链(ipchains -N newname)
上图说明input链中第一条规则是定义进来的协议为icmp的IP包就跳到REJECT目标,由于REJECT是系统自
定义
的,表示拒绝,所以符合-p icmp的包就被丢弃。
input第二条规则说明协议为tcp的包跳到test,由于test是用户自定义的链,所以进来的包被送到test
链中去
决定它的命运。

现在弄清楚了基本的概念后我们再来看一看一个从192.168.1.1进来的tcp包要到1.2.3.4去,它是怎样走
的?
(还是上面的图):
当包进来后,它先被送到input链与第一条规则匹配。第一条规则不符合(不是icmp包),则此包进入第
二条规则。第二条规则符合(是tcp包),则按照-j(jump)后面定义的目标跳到相应的地方。因目标又
是一条链(用户自定义的),所以包被送到test链继续匹配test链中的规则。test链中第一条规则符合
(因原地址是192.168.1.1),但没有指定其要去的地方,所以继续匹配第二条规则。第二条规则不符合
(目的不是192.168.1.1,而是1.2.3.4)所以包又被送到input链继续匹配下面的规则(因test链没有指明
此包的命运,而input链又没有执行完),input链中的第三条规则也不匹配,则决定此包最终命运的是
ipchains -P input 后面所定义的目标。如有ipchains -P input DENY 则此包被拒绝。如是ipchains
-P input ACCEPT则此包被接受
。等等。因为一个包从进入一条链到出来中间若没有任何规则指明它的命运的话,此包要走完整个链,
象上面的列子一样,若test链中有Rule3: -p tcp -j DENY则此包被丢弃。但如没有,则最终是由
ipchains -P input决定此包的命运。

上面的文字说明用下图来表示:




v __________________________
`input' | / `Test' v
------------------------|--/ -----------------------|----
| Rule1 | /| | Rule1 | |
|-----------------------|/-| |----------------------|---|
| Rule2 / | | Rule2 | |
|--------------------------| -----------------------v----
| Rule3 /--+___________________________/
------------------------|---
v

上面只是讨论了一个包在一条链中所经历的过程,下面我们来看看在整个ipchains过程中一个包是怎样
进入防火墙,又是怎样出来的。
注意:一个包进入防火墙先一定是进入input链,如有可能最终从output链出去。而且当链中第一条规则
没指明包的去向,它就被送到第二条规则去匹配,第二条规则没指明,则继续送到第三条规则,如有可
能(都没指明包的去向),最终走完此链(ipchains -P)。
看下图:


----------------------------------------------------------------
| ACCEPT/ lo interface |
v REDIRECT _______ |
--> C --> S --> ______ --> D --> ~~~~~~~~ -->|forward|----> _______ -->
h a |input | e {Routing } |Chain | |output |ACCEPT
e n |Chain | m {Decision} |_______| --->|Chain |
c i |______| a ~~~~~~~~ | | ->|_______|
k t | s | | | | |
s y | q | v | | |
u | v e v DENY/ | | v
m | DENY/ r Local Process REJECT | | DENY/
| v REJECT a | | | REJECT
| DENY d --------------------- |
v e -----------------------------
DENY


1:checksum:当一个包进来时,内核首先检查它是不是被篡改。主要是检查效验码。(checksum)如果效
验码不对,则此包被拒绝。
2:sanity:写在每条防火链的前面,特别是input链。主要是检验那些不规范的包。如果包被sanity拒绝
则在syslog文件中有记载。
3:input:包进入input链,按照上面所说的一条链中的包的流程来走。是被拒绝,否定还是被接受,重
定向等。
4:Demasqerade:包被接受。如果此包是由原来的包经过伪装后的包则直接跳到output链。为什么说是经
过原来的包伪装的包呢?因为后面我们将看到一个包到了output出口后有可能又会重新被送到input链再
进行匹配的。
5:Routing Decision:如果包不是以前伪装过的包则通过路由机制判断包的目的地址是本机器的还是需
要转发给其他远程机器的。
6:Local Process:如果包的目的地是本机器。则直接送到output链。
7:Lo interface:如果包是从local process传来的,则它从output链中出来后interface被改为"lo",然
后再从新被送到input链,以接口是"lo"的身份再一次通过各个防火链。(这里可看到Demasqerade)
8:forward:如果是需要转发的包则进入forward链。forward链对那些需要转发的包进行详细的检查,通
过了再进行转发。
9:output:此链核对出去的包的详细信息,符合则让它通过。


至此,我相信不要举列大家对一个包通过ipchains防火墙的整个过程也就一清二楚了。

顺便说一下:
1:只容许TCP SYN连接
如果你想连接外面的web server但又不想web server连接你,又不能切断web server对你提供的正常的
服务的话,你可以阻止那些从web server上请求对你进行连接的包拒绝。
ipchains -p tcp -s 192.168.1.1 -y(可自己定义,但-y不能少)
2:禁止IP Spoof
把/proc/sys/net/ipv4/conf/*/rp_filter 致为"1"

中国Linux论坛
上一篇:ipchains参数介绍    下一篇:ipchains网卡设置菜鸟必读  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-12
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿