代理/防火墙第十二章目标了解网络中防火墙的基本概念及其分类了解代理服务的概念和分类掌握使用iptables工具建立包过滤防火墙的方法了解网络地址转换与路由的概念掌握配置网络地址转换的方法了解squid代理服务器的工作机制及其功能掌握使用squid建立代理服务器的方法基本概念应用层代理网络层防火墙防火墙与代理的管理防火墙概念受保护网络路由器外部网络防火墙安全连接不安全连接不安全连接应用层代理链路层网络层传输层应用代理上层程序链路层网络层传输层应用层客户程序链路层网络层传输层应用层服务程序受保护客户端代理服务器外部网络TCP/IP协议模型网络层防火墙链路层网络层传输层应用代理上层程序链路层网络层传输层应用层客户程序链路层网络层传输层应用层服务程序外部网络网络层防火墙受保护网络TCP/IP协议模型防火墙与代理的管理防火墙管理IpfwadmIpchainsNetfilter/iptables代理管理apachesquidsocksiptablesiptables基本原理NAT与路由iptables安装配置iptables基本原理netfilter包过滤检查框架数据输入应用层传输层网络层链路层NF_IP_PRE_ROUTINGNF_IP_LOCAL_OUTNF_IP_LOCAL_INNF_IP_POST_ROUTINGNF_IP_FORWARD路由路由数据输出TCP/IP协议模型netfilter框架结构iptables基本原理(Cont.)iptables安全规则管理工具五条内建规则链,对应于netfilter钩子函数PREROUTINGFORWARDPOSTROUTINGINPUTOUTPUT上层应用程序(接收或发送网络数据)iptables基本原理(Cont.)iptables规则表FilterINPUT、FORWARD、OUTPUTNATPREROUTING、POSTROUTING、INPUT、OUTPUTMangleOUTPUT、PREROUTINGNAT与路由路由互联网路由器路由为A到B寻找一条最小开销的连接线路ABNAT与路由(Cont.)NAT互联网路由器A192.168.0.1B211.35.27.9NAT192.168.0.1202.13.6.10192.168.0.1202.13.6.10NAT与路由(Cont.)NAT的使用NAT的类型静态网络地址转换动态网络地址转换端口转换iptables实现NATSNATDNATMASQUERADEiptables安装配置安装配置安装源代码编译安装下载编译安装RPM包安装://ftp.netfilter.org/pub/iptables/iptables-x.x.x.tar.bz2rpm-ivhiptables-1.2.7a.i386.rpm配置语法可以简化成以下形式:iptables[-ttable]CMD[chain][rule-amtcher][-jtarget]iptables-[AD]chainrule-specification[options]iptables-[RI]chainrulenumrule-spec[options]iptables-Dchainrulenum[options]iptables-[LFZ][chain][options]iptables-[NX]chainiptables-Eold-chain-namenew-chain-nameiptables-Pchaintarget[options]iptables-h(printthishelpinformation)配置(Cont.)规则操作参数说明:-A:在所选择的链末添加一条或多条规则-D:从所选链中删除一条或多条规则-R:从选中的链中取代一条规则-I:从所选链中插入一条或更多规则-L:显示所选链的所有规则-F:清空所选链-Z:把所有链的包及字节的计数器清空-N:根据给出的名称建立一个新的用户定义链-X:删除指定的用户自定义链-P:设置链的目标规则-E:根据用户给出的名子对指定链进行冲命名配置(Cont.)规则选项选项说明-p[!]protocol指定协议-s[!]address[/mask]指定源地址-d[!]address[/mask]指定目的地址-jtarget指定规则的目标(执行的活动)-i[!][name]指定数据包进入的物理接口-o[!][name]指定数据包送出的物理接口配置(Cont.)规则扩展选项tcp扩展udp扩展icmp扩展mac扩展limit扩展multiport扩展配置(Cont.)目标扩展ACCEPT:让包通过DROP:把包拒绝REJECT:把包丢弃,并向发送者发送ICMP消息告知包被丢弃。SNAT:只适用于nat表的POSTROUTING链。它规定修改包的源地址,停止对规则的检查。MASQUERADE:只用于转发链和用户定义链。包被伪装成从本地主机发出,回应的包自动解伪。REDIRECT:只用于输入链和用户定义链。包被重定向到本地,尽管它们原是要发送给一个远地主机。可使用参数,指定重定向端口。缺省为0,表示使用包的目的地址端口做为重定向端口。配置(Cont.)iptables–AINPUT–ptcpiptables–ptcp–sport80iptables–aFORWARD–ptcp–tcp-flagsALLSYN,ACKiptables–AINPUT–mlimit–limit300/houriptables–AINPUT–m--stateRELATED,ESTABLISHED配置(Cont.)包过滤配置192.168.1.157192.168.1.35192.168.1.42透明代理局域网配置(Cont.)NAT配置DNATSNATMASQUERADEiptables-tnat-APREROUTING-ttcp-d10.25.0.7-dport80-ieth1-jDNAT--to192.168.1.2:80iptables-tnat-APOSTROUTING-s192.168.1.0/24-oeth0-jSNAT--to10.25.0.7iptables-tnat-APOSTROUTING-oppp0-jMASQUERADE缓存代理squidsquid工作机制与基本功能squid组成成分squid安装配置代理服务器Ysquid工作机制与基本功能工作机制数据缓存代理进程远端服务器客户端?Nsquid工作机制与基本功能(Cont.)基本功能代理服务:HTTP、FTP、GOPHER、SSL等高速缓存DNS查询缓存级联服务支持透明代理ACL支持squid组成成分代理进程squid代理守护进程unlinkd清理缓存数据RunCachesquid进程的守护进程dnsserver处理客户端域名查询进程数据缓存目录默认/var/spool/squidsquid安装配置安装配置启动访问其它配置透明代理安装源代码包安装下载编译安装RPM包安装编译参数--prefix=/usr/local/squid--disable-internal-dns--enable-storeio=ufs,null--enable-default-err-languages=Simplify_Chinese“--enable-linux-netfilter配置http_port192.168.0.2:3128cache_mgradmin@proxy.comhttp_accessallowallcache_dirufs/var/spool/squid10016256启动使用/etc/rc.d/init.d/squid脚本启动代理服务器访问客户端设置IE工具Internet选项连接局域网设置代理服务器直接在地址栏中输入访问地址进行访问其它配置缓存空间cache_dirTypeDirectory-NameFs-specific-data[options]用户访问控制aclaclnameacltypestring1...aclaclnameacltypefile...进程管理cache_effective_usercache_effective_group允许列表中的机器访问Internet允许列表中的机器访问Internet。aclallowed_clientssrc192.168.0.10192.168.0.20192.168.0.30http_accessallowallowed_clientshttp_accessdeny!allowed_clients这个规则只允许IP地址为192.168.0.10、192.168.0.20及192.168.0.30的机器访问Internet,其他IP地址的机器则都被拒绝访问限制访问时段aclallowed_clientssrc192.168.0.1/255.255.255.0aclregular_daystimeMTWHF10:00-16:00http_accessallowallowed_clientsregular_dayshttp_accessdeny!allowed_clients这个规则允许子网192.168.0.1中的所有客户机在周一到周五的上午10:00到下午4:00访问Internet。屏蔽含有某些特定字词aclallowed_clientssrc192.168.0.1/255.255.255.0aclbanned_sitesurl_regexdummyfakehttp_accessdenybanned_siteshttp_accessallowallowed_machibes自定错误反馈信息aclallowed_clientssrc192.168.0.1/255.255.255.0aclbanned_sitesurl_regexabc.com*()(*.comhttp_accessdenybanned_sitesdeny_infoERR_BANNED_SITEbanned_siteshttp_accessallowallowed_clients透明代理透明代理网关客户端telnet客户端http客户端外部服务器telnet服务器服务器代理进程透明代理(Cont.)透明代理网络图192.168.1.157192.168.1.35192.168.1.42透明代理局域网192.168.1.9eth1192.168.1.2eth0166.32.129.10Internet192.168.1.10本章总结网络防火墙是保护用户网络安全的一种必要手段,它通过在网络数据传输的不同层次对数据包进行检测处理,对符合网络安全要求的数据包放行,而对不符合要求的数据包进行拒绝,很大程度上保证了网络的安全可靠本章总结(Cont.)网络防火墙分为网络层防火墙和应用层代理服务器网络层防火墙在TCP/IP网络结构的IP层工作,能够对通过IP路由传送的网络数据包的包头进行检测,根据包头中的信息来匹配防火墙规则,对连接进行相应处理。处理效率高,不能对网络数据进行检测.应用层代理服务器工作在TCP/IP网络协议结构的应用层,向受保护网络用户提供连接外部网络的代理服务,保证内外网之间的安全分隔。可对网络