找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
.COM/.NET/.ORG 国际域名注册全功能虚拟主机/免备案虚拟主机
查看: 1390|回复: 4

Linuxs包过滤(IPTables)技术介绍

[复制链接]

9

主题

9

回帖

3134

积分

论坛元老

积分
3134
发表于 2003-10-29 16:56:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Linux包过滤的发展史

l         Ipfw              1994, coming from BSD, 内核2.0,工具ipfwadm

l         Ipchains  1998, based on the ipfw, 内核 2.2,工具ipchains

l         Netfilter  1999, based on the ipchains, 内核2.3.15~2.4, 工具iptables

(包过滤源代码直接嵌入在内核中,工具iptables作为一个模块,可以嵌入,也可以不)



Iptables

新一代的工具,比ipchains和ipfwadm更加强大,对IPv6的支持更好。



Iptables快速指南

大多数人只有一个单独的PPP连接到Internet,但是不想任何人访问他们的内部网络或者放火墙,可以如下设置:

## Insert connection-tracking modules (not needed if built into kernel).

# insmod ip_conntrack

# insmod ip_conntrack_ftp



## Create chain which blocks new connections, except if coming from inside.

# iptables -N block

# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT

# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT

# iptables -A block -j DROP



## Jump to that chain from INPUT and FORWARD chains.

# iptables -A INPUT -j block

# iptables -A FORWARD -j block



包如何通过netfilter

内核在过滤表中维持了3个规则列表,这些列表叫做firewall chains。这3个chains分别叫做INPUT, OUTPUT 和FORWARD。如下图:



Incoming               /---------\        Outgoing

----------->[Routing ]--->|FORWARD|------------->

          [Decision]     \_____/          ^

               |                        |

               v                      ____

              ___                    /    \

             /   \                  |OUTPUT|

            |INPUT|                  \____/

             \___/                      ^

               |                        |

               -----> Local Process -----------



当包经过相应的chain时,这个chain将决定这个包的命运。如果chain认为DROP,就丢弃这个包;如果认为ACCEPT就继续在图中旅行。每一个chain是众多规则的检查表。规则的格式为:“如果包头部看起来象某个东西,然后对这个包做某个动作”。如果一条规则与包头部不匹配,继续检查chain中的下一条规则。一旦找到匹配的,执行相应的动作。否则,一条匹配的都没有,就检查chain的安全策略。通常是DROP。过程如下:

l         当一个包到达(如以太网接口),内核首先检查包的目的地址,这叫做“路由”

l         如果包的目的地址是本机,包将继续在上图中旅行,到达INPUT chain,如果通过了这个chain,那么任何需要这个包的进程都可以收到

l         目的地不是本机,如果内核不允许包转发,或者不知道如何转发,DROP这个包;如果内核允许转发,并且包需要经过另一块网络接口(在您的机器上至少有两个网络接口),那么包将在图中旅行到FORWARD chain,如果通过这个chain,包就可以送出了

l         本机程序发出的包必须经过OUTPUT chain,如果能够通过这个chain,那么这个包就可以送到相应的网络接口并发出



使用iptables

iptables有一个非常详细的帮助文件(man iptables),跟ipchains有很多类似之处。

下面列出管理chain的一些参数:

Create a new chain (-N).    产生一个新的chain

Delete an empty chain (-X).  删除一个空的chain

Change the policy for a built-in chain. (-P). 修改安全策略

List the rules in a chain (-L).  列出chain的规则

Flush the rules out of a chain (-F).  清空所有规则

Zero the packet and byte counters on all rules in a chain (-Z). 所有规则包和字节数清零



管理一个chain内部的规则:

Append a new rule to a chain (-A).  加入一个新的规则

Insert a new rule at some position in a chain (-I).  在一个chain的某个位置加入新的规则

Replace a rule at some position in a chain (-R).   在一个chain的某个位置替换规则

Delete a rule at some position in a chain (-D).   在一个chain的某个位置删除规则

Delete the first rule that matches in a chain (-D).   删除与chain匹配的第一条规则

[emb6][emb6]

[本贴已被 网路游侠 于 2003-10-29 17:25:41 修改过][/COLOR][/ALIGN]
回复

使用道具 举报

15

主题

61

回帖

3193

积分

论坛元老

积分
3193
发表于 2003-10-29 17:21:28 | 显示全部楼层
[emb7][emb7][emb13]
爱情是这个世界上最坚贞,也最不可靠的东西。时间过了,爱情淡了,相爱的人也就散了。原本的美好就会变成种束缚,变成个你我都困在其中的牢笼,我无法呼吸的,你舍得看到我不自由吗?其他没什么,就是放心不下你的身体,他欺负你,记得告诉我!!!要照顾好自己,不希望看到曾经爱过的人不好。知道吗?最后,能让我再吻你一下吗? 吾爱 再见!旧缘如梦,只是一个白色与灰色的世界,白色是我的内心,它一尘不染,灰色是我的心情,它忧郁不堪.身上拭不去的永远是寂寞的尘埃.心里拭不去的,永远是对你的那份牵挂!!
回复 支持 反对

使用道具 举报

281

主题

3228

回帖

55万

积分

管理员

积分
551869
发表于 2003-10-29 19:39:47 | 显示全部楼层
[emb6]
网路游侠 www.youxia.org
回复 支持 反对

使用道具 举报

77

主题

701

回帖

1万

积分

论坛元老

积分
16048
发表于 2003-11-15 12:05:03 | 显示全部楼层
[emb6][emb7]
回复 支持 反对

使用道具 举报

9

主题

9

回帖

3134

积分

论坛元老

积分
3134
 楼主| 发表于 2003-11-27 11:32:30 | 显示全部楼层
谢谢支持[emb5][emb5][emb5][emb5]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|西京校友网 ( 陕ICP备11003551号-5 )

GMT+8, 2025-5-8 18:36 , Processed in 0.077789 second(s), 8 queries , MemCache On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表