欢迎来到天天文库
浏览记录
ID:6132783
大小:161.00 KB
页数:12页
时间:2018-01-04
《实验十五 linux iptables 防火墙(理论部分)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、防火墙原理一.iptables简介 从1.1内核开始,linux就已经具有包过滤功能了,在2.0的内核中我们采用ipfwadm来操作内核包过滤规则。之后在2.2内核中,采用了大家并不陌生的ipchains来控制内核包过滤规则。在2.4内核中我们不再使用ipchains,而是采用一个全新的内核包过滤管理工具—iptables。这个全新的内核包过滤工具将使用户更易于理解其工作原理,更容易被使用,当然也将具有更为强大的功能。 iptables只是一个内核包过滤的工具,iptables可以加入、插入或删除核心包过滤表格(链)中的规则。实际
2、上真正来执行这些过滤规则的是netfilter(Linux内核中一个通用架构)及其相关模块(如iptables模块和nat模块)。 netfilter提供了一系列的“表(tables)”,每个表由若干“链(chains)”组成,而每条链中有一条或数条规则(rule)组成。我们可以这样来理解,netfilter是表的容器,表是链的容器,链又是规则的容器。 netfilter系统缺省的表为“filter”,该表中包含了INPUT、FORWARD和OUTPUT3个链。每一条链中可以有一条或数条规则,每一条规则都是这样定义的“如果数据包头
3、符合这样的条件,就这样处理这个数据包”。当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件:如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则。最后,如果该数据包不符合该链中任一条规则的话,系统就会根据预先定义的策略(policy)来处理该数据包。图1 网络数据包在filter表中的流程 数据包在filter表中的流程如图1所示。有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,则可能有三种情况: (1)如果数据包的目的地址是本机,则系统将数据包送往
4、INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。 (2)如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往FORWARD链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。 (3)如果数据包是由本地系统进程产生的,则系统将其送往OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。 当我们在使用iptablesNAT功能的时候,我们所使用的表不
5、再是“filter”表,而是“nat”表,所以我们必须使用“-tnat”选项来显式地指明。因为系统缺省的表是“filter”,所以在使用filter功能时,我们没有必要显式的指明“-tfilter”。 同“filter”表一样,nat表也有三条缺省的链,这三条链也是规则的容器,它们分别是: (1)PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的IP地址,为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT。 (2)POSTROUTING:可以在这里定义进行源NAT的规则,
6、在路由器进行路由之后才进行源NAT。 (3)OUTPUT:定义对本地产生的数据包的目的NAT规则。二.NAT工作原理 NAT的基本思想是为每个企业分配一个IP地址(或者是很少几个)来进行Internet传输。在企业内部,每个电脑取得一唯一的IP地址来为内部传输做路由。然而,当封包离开企业,进入ISP之后,就需要进行地址转换了。为了使这个方案可行,IP地址的范围被声明为私有的,企业可以随意在内部使用他们。仅有的规则是,没有包含这些地址的封包出现在Internet上。 「说明」IP私有地址范围是:10.0.0.0~10.255.2
7、55.255/8、172.16.0.0~172.31.255.255/12、192.168.0.0~192.168.255.255/16。 如图2所示。在企业内部,每个机器都有一个唯一的172.16.x.y形式的地址。然而,当封包离开企业时,它要经过NAT转盒,NAT盒将内部IP源地址,即图中的172.16.0.50转换成企业的真实地址(这个地址对于Internet来说是可见的),此例中为202.198.168.150。NAT盒通常和防火墙一起绑定在一个设备上,这里的防火墙通过小心地控制进出企业的封包提供了安全保障。图2 NAT地址转
8、换三.iptables常用操作语法 表1列举出了iptables常用的操作语法。表1 iptables常用操作语法功能命令语法说明添加规则-Aiptables-AINPUT-ptcp-jA
此文档下载收益归作者所有