BENET3.0第二学期课程第三章配置IPTABLES防火墙(二)——理论部分本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|的作用及区别是什么?iptables命令的语法格式包括哪些组成部分?若设置iptables规则时未指定表名,默认使用哪个表?设置显式匹配条件时,需要注意什么?防火墙对数据包的常见处理方式包括哪些?本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|防火墙增加应用层过滤功能本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|防火墙(二)DNAT策略及应用使用layer7应用层过滤功能DNAT策略概述DNAT策略的应用设置应用层过滤规则5SNAT策略概述SNAT策略的典型应用环境局域网主机共享单个公网IP地址接入InternetSNAT策略的原理源地址转换,SourceNetworkAddressTranslation修改数据包的源IP地址6SNAT策略的应用环境Internet局域网PC机192.168.1.100/24:218.29.30.31/30Linux网关服务器7SNAT策略的原理未使用SNAT策略时的情况源地址:192.168.1.100目标地址:218.29.30.29HTTP请求HTTP请求HTTP应答源地址:192.168.1.100目标地址:218.29.30.29源地址:218.29.30.29目标地址:192.168.1.100Linux网关服务器eth1:192.168.1.1eth0:218.29.30.31Internet中的Web服务器218.29.30.29无法正确路由路由转发局域网客户端192.168.1.1008SNAT策略的原理在网关中使用SNAT策略以后源地址:192.168.1.100目标地址:218.29.30.29HTTP请求HTTP应答源地址:218.29.30.31目标地址:218.29.30.29源地址:218.29.30.29目标地址:218.29.30.31Linux网关服务器eth1:192.168.1.1eth0:218.29.30.31Internet中的Web服务器218.29.30.29SNAT转换局域网客户端192.168.1.100源地址:218.29.30.29目标地址:192.168.1.100HTTP请求9SNAT策略的应用SNAT的应用案例Internet局域网PC机192.168.1.100/24:192.168.1.1/24eth0:218.29.30.31/30Linux网关服务器10SNAT策略的应用前提条件局域网各主机正确设置IP地址/子网掩码局域网各主机正确设置默认网关地址推荐实现步骤1.开启网关主机的路由转发功能2.添加使用SNAT策略的防火墙规则规则示例:iptables-tnat-APOSTROUTING-s192.168.1.0/24-oeth0-jSNAT--to-source218.29.30.31来自特定局域网段的数据包网关主机外网接口的IP地址需要从接口eth0外出的数据包在路由选择之后再进行处理11SNAT策略的应用验证SNAT结果在局域网主机中(192.168.1.100)应能够访问外网的Web服务器(218.29.30.29)命令行执行“elinks”进行访问查看外网测试主机(218.29.30.29)的Web访问日志,记录的应为网关主机的公网IP地址(218.29.30.31)[root@localhost~]#tail-f/var/log/httpd/access_log218.29.30.31--[04/Jun/2009:14:02:02+0800]GET/HTTP/1.14033985-ELinks/0.11.1(textmode;Linux;80x25-2)教员演示操作过程12网关使用动态公网IP地址的情况MASQUERADE(地址伪装)策略只需将“-jSNAT--to-source218.29.30.31”的形式改为“-jMASQUERADE”即可如果是通过ADSL拨号方式连接Internet,则外网接口名称通常为ppp0、ppp1等MASQUERADE策略应用示例[root@localhost~]#iptables-tnat-APOSTROUTING-s192.168.1.0/24-oppp0-jMASQUERADE13DNAT策略概述DNAT策略的典型应用环境在Internet中发布位于企业局域网内的服务器DNAT策略的原理目标地址转换,DestinationNetworkAddressTranslation修改数据包的目标IP地址14DNAT策略的应用环境Interneteth1:192.168.1.1/24网站服务器192.168.1.6/24Linux网关服务器Internet中的客户机218.29.30.2915DNAT策略的原理在网关中使用DNAT策略发布内网服务器源地址:218.29.30.29目标地址:218.29.30.31HTTP请求Internet中的客户机218.29.30.29Linux网关服务器eth0:218.29.30.31eth1:192.168.1.1局域网内的Web服务器192.168.1.6HTTP应答源地址:218.29.30.31目标地址:218.29.30.29DNAT转换HTTP请求HTTP应答源地址:218.29.30.29目标地址:192.168.1.6源地址:192.168.1.6目标地址:218.29.30.2916DNAT策略的应用DNAT的应用案例Interneteth1:192.168.1.1/24网站服务器192.168.1.6/24Linux网关服务器Internet中的客户机218.29.30.2917DNAT策略的应用前提条件局域网的Web服务器正确设置了IP地址/子网掩码局域网的Web服务器正确设置了默认网关地址推荐实现步骤1.确认已开启网关的路由转发功能2.添加使用DNAT策略的防火墙规则规则示例:iptables-tnat-APREROUTING-ieth0-d218.29.30.31-ptcp--dport80-jDNAT--to-destination192.168.1.6访问网关的公网IP地址的数据包内网中Web服务器的实际IP地址从外网接口eth0进入的数据包在路由选择之前进行处理访问标准Web服务端口的数据包18DNAT策略的应用验证DNAT结果在外网测试机(218.29.30.29)中,应能够通过浏览器访问网关公网IP地址(218.29.30.31)的80端口命令行执行“elinks”进行访问——实际网页内容由主机192.168.1.6提供查看局域网内Web服务器(192.168.1.6)的Web访问日志,应记录了外网测试机的IP地址(218.29.30.29)[root@localhost~]#tail-f/var/log/httpd/access_log218.29.30.29--[04/Jun/2009:14:35:53+0800]GET/HTTP/1.120015-ELinks/0.11.1(textmode;Linux;80x25-2)教员演示操作过程19通过DNAT策略同时修改目标端口号使用形式只需要在“--to-destination”后的目标IP地址后面增加“:端口号”即可,即:-jDNAT--to-destination目标IP:目标端口通过DNAT策略修改目标端口号的应用示例从Internet中访问网关主机(218.29.30.31)的2222端口时,实际由运行在局域网主机(192.168.1.5)的22端口的应用程序提供服务[root@localhost~]#iptables-tnat-APREROUTING-ieth0-d218.29.30.31-ptcp--dport2222-jDNAT--to-destination192.168.1.5:2220小结请思考:SNAT策略的核心用途是什么?DNAT策略的核心用途是什么?SNAT、DNAT策略在企业中包括哪些典型应用?如果企业的网关主机通过ADSL动态地址接入Internet网络,应如何设置共享上网策略?21使用layer7应用层过滤功能默认netfilter/iptables体系的不足以基于网络层的数据包过滤机制为主,同时提供少量的传输层、数据链路层的过滤功能难以判断数据包对应于何种应用程序(如QQ、MSN)netfilter-layer7补丁包的作用由“L7-filter”项目提供源码站点位于内核、iptables添加相应的补丁文件,重新编译安装后提供基于应用层(第7层)的扩展功能通过独立的l7-protocols协议包提供对各种应用层数据的特征识别定义,便于更新22使用layer7应用层过滤功能整体实现过程添加内核补丁,重新编译内核,并以新内核引导系统添加iptables补丁,重新编译安装iptables安装l7-protocols协议定义包使用iptables命令设置应用层过滤规则使用的软件包列表Linux内核源码包:linux-2.6.28.8.tar.bz2iptables源码包:iptables-1.4.2.tar.bz2layer7补丁源码包:netfilter-layer7-v2.21.tar.gz协议定义包:l7-protocols-2009-05-10.tar.gz23重新编译新内核释放内核源码包,并合并补丁[root@localhost~]#tarzxvfnetfilter-layer7-v2.21.tar.gz-C/usr/src/[root@localhost~]#tarjxvflinux-2.6.28.8.tar.bz2-C/usr/src/[root@localhost~]#cd/usr/src/linux-2.6.28.8[root@localhostlinux-2.6.28.8]#patch-p1\../netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch24重新编译新内核配置内核编译参数复制当前系统使用的内核配置文件,以此作为基础当前系统的内核配置文件:/boot/config-2.6.18-8.el5源码目录的默认配置文件名:.config进入