您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > [linux] 第10章 iptables防火墙与NAT服务
第10章iptables防火墙与NAT服务本章导读防火墙的概述iptables简介iptables基础关闭系统防火墙NAT服务使用iptables实现NAT服务iptables技巧实例10.1防火墙的概述•防火墙的简介•防火墙的分类•防火墙的工作原理防火墙的简介防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性。它通过访问控制机制,确定哪些内部服务允许外部访问,以及允许哪些外部请求可以访问内部服务。它可以根据网络传输的类型决定IP包是否可以传进或传出内部网。防火墙通过审查经过的每一个数据包,判断它是否有相匹配的过滤规则,根据规则的先后顺序进行一一比较,直到满足其中的一条规则为止,然后依据控制机制做出相应的动作。如果都不满足,则将数据包丢弃,从而保护网络的安全。防火墙的简介通过使用防火墙可以实现以下功能:可以保护易受攻击的服务;控制内外网之间网络系统的访问;集中管理内网的安全性,降低管理成本;提高网络的保密性和私有性;记录网络的使用状态,为安全规划和网络维护提供依据。防火墙的分类防火墙技术根据防范的方式和侧重点的不同而分为很多种类型,但总体来讲可分为包过滤防火墙和代理服务器两种类型。防火墙的工作原理•1.包过滤防火墙工作原理防火墙的工作原理①数据包从外网传送到防火墙后,防火墙抢在IP层向TCP层传送前,将数据包转发给包检查模块进行处理。②首先与第一个过滤规则比较。③如果与第一个模块相同,则对它进行审核,判断是否转发该数据包,这时审核结果是转发数据包,则将数据包发送到TCP层进行处理,否则就将它丢弃。④如果与第一个过滤规则不同,则接着与第二个规则相比较,如果相同则对它进行审核,过程与③相同。⑤如果与第二个过滤规则不同,则继续与下一个过滤规则比较,直到与所有过滤规则比较完成。要是所有过滤规则都不满足,就将数据包丢弃。防火墙的工作原理2.代理服务型防火墙工作原理代理服务型防火墙是在应用层上实现防火墙功能的。它能提供部分与传输有关的状态,能完全提供与应用相关的状态和部分传输的信息,它还能处理和管理信息。它的具体工作原理参见11.1.2节。10.2iptables简介netfilter/iptables(下文简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换NAT等功能。Iptables/netfilter包过滤防火墙其实是由两个组件构成的,一个是netfilter,一个是iptables。10.3iptables基础•规则(rules)•链(chains)•表(tables)•iptables传输数据包的过程规则(rules)规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。链(chains)链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包。表(tables)表(tables)提供特定的功能,iptables内置了3个表,即filter表、nat表和mangle表,分别用于实现包过滤,网络地址转换和包重构的功能。1.filter表2.nat表3.mangle表iptables传输数据包的过程①当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。②如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。③如果数据包是要转发出去的,且内核允许转发,数据包就会如图10-4所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。10.4关闭系统防火墙•iptables命令格式•iptables的使用10.4关闭系统防火墙执行“setup”命令启动文字模式配置实用程序,在“选择一种工具”中选择“防火墙配置”,然后选择“运行工具”按钮。出现防火墙的配置界面,将“安全级别”设为“禁用”,然后选择“确定”即可。@iptables命令格式iptables的命令格式较为复杂,一般的格式如下:iptables[-t表]-命令匹配操作1.表选项表选项用于指定命令应用于哪个iptables内置表,iptables内置包括filter表、nat表和mangle表。iptables命令格式2.命令选项命令说明-P或--policy链名定义默认策略-L或--list链名查看iptables规则列表-A或—append链名在规则列表的最后增加1条规则-I或--insert链名在指定的位置插入1条规则-D或--delete链名从规则列表中删除1条规则-R或--replace链名替换规则列表中的某条规则-F或--flush链名删除表中所有规则-Z或--zero链名将表中数据包计数器和流量计数器归零iptables命令格式3.匹配选项匹配说明-i或--in-interface网络接口名指定数据包从哪个网络接口进入,如ppp0、eth0和eth1等-o或--out-interface网络接口名指定数据包从哪块网络接口输出,如ppp0、eth0和eth1等-p或---proto协议类型指定数据包匹配的协议,如TCP、UDP和ICMP等-s或--source源地址或子网指定数据包匹配的源地址--sport源端口号指定数据包匹配的源端口号,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口-d或--destination目标地址或子网指定数据包匹配的目标地址--dport目标端口号指定数据包匹配的目标端口号,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口iptables命令格式4.动作选项动作说明ACCEPT接受数据包DROP丢弃数据包REDIRECT将数据包重新转向到本机或另一台主机的某个端口,通常用功能实现透明代理或对外开放内网某些服务SNAT源地址转换,即改变数据包的源地址DNAT目标地址转换,即改变数据包的目的地址MASQUERADEIP伪装,即是常说的NAT技术,MASQUERADE只能用于ADSL等拨号上网的IP伪装,也就是主机的IP是由ISP分配动态的;如果主机的IP地址是静态固定的,就要使用SNATLOG日志功能,将符合规则的数据包的相关信息记录在日志中,以便管理员的分析和排错iptables的使用1.定义默认策略当数据包不符合链中任一条规则时,iptables将根据该链预先定义的默认策略来处理数据包,默认策略的定义格式如下。iptables[-t表名]-P链名动作参数说明如下。[-t表名]:指默认策略将应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。-P:定义默认策略。链名:指默认策略将应用于哪个链,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT和POSTROUTING。动作:处理数据包的动作,可以使用ACCEPT(接受数据包)和DROP(丢弃数据包)。iptables的使用2.查看iptables规则查看iptables规则的命令格式为:iptables[-t表名]-L[链名]参数说明如下。[-t表名]:指查看哪个表的规则列表,表名用可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认查看filter表的规则列表。-L:查看指定表和指定链的规则列表。[链名]:指查看指定表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT和POSTROUTING,如果不指明哪个链,则将查看某个表中所有链的规则列表。iptables的使用3.增加、插入、删除和替换规则相关规则定义的格式为:iptables[-t表名]-A|I|D|R链名[规则编号][-i|o网卡名称][-p协议类型][-s源IP地址|源子网][--sport源端口号][-d目标IP地址|目标子网][--dport目标端口号]-j动作参数说明如下。[-t表名]:定义默认策略将应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。-A:新增加一条规则,该规则将会增加到规则列表的最后一行,该参数不能使用规则编号。-I:插入一条规则,原本该位置上的规则将会往后顺序移动,如果没有指定规则编号,则在第一条规则前插入。-D:从规则列表中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。iptables的使用-R:替换某条规则,规则被替换并不会改变顺序,必须要指定替换的规则编号。链名:指定查看指定表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT和POSTROUTING。[规则编号]:规则编号用于插入、删除和替换规则时用,编号是按照规则列表的顺序排列,规则列表中第一条规则的编号为1。[-i|o网卡名称]:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出。网卡名称可以使用ppp0、eth0和eth1等。[-p协议类型]:可以指定规则应用的协议,包含TCP、UDP和ICMP等。[-s源IP地址|源子网]:源主机的IP地址或子网地址。[--sport源端口号]:数据包的IP的源端口号。[-d目标IP地址|目标子网]:目标主机的IP地址或子网地址。[--dport目标端口号]:数据包的IP的目标端口号。-j动作:处理数据包的动作,各个动作的详细说明可以参考表10-3。iptables的使用4.清除规则和计数器在新建规则时,往往需要清除原有的、旧的规则,以免它们影响新设定的规则。如果规则比较多,一条条删除就会十分麻烦,这时可以使用iptables提供的清除规则参数达到快速删除所有的规则的目的。定义参数的格式为:iptables[-t表名]-F|Z参数说明如下。[-t表名]:指定默认策略将应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。-F:删除指定表中所有规则。-Z:将指定表中的数据包计数器和流量计数器归零。10.5NAT服务•什么是私有地址•什么是NAT•NAT的工作原理什么是私有地址私有地址(Privateaddress)属于非注册地址,是专门为组织机构内部使用而划定的。使用私有IP地址是无法直接连接到Internet的,但是能够用在公司内部的Intranet的IP地址上。私有IP地址范围子网掩码10.0.0.0~10.255.255.255255.0.0.0169.254.0.0~169.254.255.255255.255.0.0172.1
本文标题:[linux] 第10章 iptables防火墙与NAT服务
链接地址:https://www.777doc.com/doc-5962184 .html