1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,Linux,网络操作系统与实训(第,2,版),中国铁道出版社,孙丽娜 孔令宏 杨 云 主编,李,斌,姜庆玲,梁明亮,副主编,1,教材地址:,&Linux,教师交流群:,189934741,2,第,15,章,防火墙与代理服务器,1,.,项目课题引入,2,.,防火墙概述,3,.iptables,4,.,NAT,5,.squid,代理服务器,3,课题引入,项目背景,假设某单位租用,DDN,专线上网。网络拓扑如下图所示。,iptables,防火墙的,eth0,接口连接外网,,IP,地址为,222.206.160.
2、100,;,eth1,接口连接内网,,IP,地址为,192.168.1.1,。假设在内网中存在,WEB,、,DNS,和,E-mail3,台服务器,这,3,台服务器都有公有,IP,地址。其,IP,地址如图所示。设置防火墙规则加强对内网服务器的保护,并允许外网的用户可以访问此,3,台服务器。,4,课题引入,项目分析,完成本项目需要解决的问题:,1,、什么是防火墙,其工作原理是什么,2,、如何使用,Iptables,进行防火墙设置,3,、如何配置包过滤防火墙,4,、如何实现,NAT,5、,什么是代理服务器,其工作原理是什么,6,、,squid,代理服务器的安装、启动与运行方法,7,、,squid,服
3、务器的配置方法,8,、透明代理的配置方法,5,课题引入,教学目标,学习本课需要实现的教学目标:,掌握防火墙的概念和工作原理,掌握,Iptables,的结构和配置方法,掌握包过滤防火墙的配置方法,掌握,NAT,的配置方法,掌握代理服务器的工作原理,掌握代理服务器的启动与停止方法,掌握代理服务器配置文件的修改方法,掌握代理服务器的配置方法,掌握透明代理的配置方法,6,课题引入,应达到的职业能力,学生学习本课后应该具有的职业能力:,掌握为企业设计防火墙的能力,掌握,Linux,下,Iptables,的配置方法,掌握包过滤防火墙的配置能力,掌握,NAT,的配置能力,进行,squid,代理服务器的配置能
4、力,进行透明代理服务器的配置能力,具有较好的团队合作能力,7,15.1,防火墙概述,15.1.1,防火墙的概念,8,15.1,防火墙概述,15.1.2 iptables,简介,9,15.2 iptables,15.2.2 iptables,工作原理,10,15.2 iptables,15.2.2 iptables,工作原理,11,15.2 iptables,15.2.2 iptables,工作原理,12,15.2 iptables,15.2.2 iptables,工作原理,netfilter,的,5,条链相互地关联,如图,15-1,所示。,13,15.2 iptables,15.2.2 ipt
5、ables,工作原理,14,15.2 iptables,15.2.2 iptables,工作原理,15,15.2 iptables,15.2.2 iptables,工作原理,2,iptables,工作流程,16,15.2 iptables,15.2.2 iptables,工作原理,17,15.2 iptables,15.2.3,安装,iptables,18,15.2 iptables,15.2.3,安装,iptables,19,15.2.4 iptables,命令,15.2 iptables,20,15.2 iptables,15.2.4 iptables,命令,21,15.2 iptable
6、s,15.2.4 iptables,命令,22,15.2 iptables,15.2.4 iptables,命令,23,15.2 iptables,15.2.4 iptables,命令,24,15.2 iptables,15.2.5 iptables,命令使用举例,25,15.2 iptables,15.2.5 iptables,命令使用举例,26,15.2 iptables,15.2.5 iptables,命令使用举例,27,15.2 iptables,15.2.5 iptables,命令使用举例,28,15.2 iptables,15.2.5 iptables,命令使用举例,29,15.3
7、 NAT,15.3.1 NAT,的基本知识,NAT,的工作过程:,(,1,)客户机将数据包发给运行,NAT,的计算机。,(,2,),NAT,将数据包中的端口号和专用的,IP,地址换成它自己的端口号和公用的,IP,地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中,以便向客户机发送回答信息。,(,3,)外部网络发送回答信息给,NAT,。,(,4,),NAT,将所收到的数据包的端口号和公用,IP,地址转换为客户机的端口号和内部网络使用的专用,IP,地址并转发给客户机。,30,15.3 NAT,15.3.1 NAT,的基本知识,NAT,的工作过程示意图:,31,15.3 NAT
8、15.3.1 NAT,的基本知识,NAT,的分类:,(,1,)源,NAT,(,Source NAT,,,SNAT,)。,SNAT,指修改第一个包的源,IP,地址。,SNAT,会在包送出之前的最后一刻做好,Post-Routing,的动作。,Linux,中的,IP,伪装(,MASQUERADE,)就是,SNAT,的一种特殊形式。,(,2,)目的,NAT,(,Destination NAT,,,DNAT,)。,DNAT,是指修改第一个包的目的,IP,地址。,DNAT,总是在包进入后立刻进行,Pre-Routing,动作。端口转发、负载均衡和透明代理均属于,DNAT,。,32,15.3 NAT,1
9、5.3.2,使用,Iptables,实现,NAT,用户根据规则所处理的信息包类型,使用,iptables,命令设置,NAT,规则:,要做源,IP,地址转换的数据包的规则被添加到,POSTROUTING,链中。,要做目的,IP,地址转换的数据包的规则被添加到,PREROUTING,链中。,直接从本地出去的数据包的规则被添加到,OUTPUT,链中。,33,15.3 NAT,15.3.2,使用,Iptables,实现,NAT,数据包穿越,NAT,的工作流程示意图:,34,15.3 NAT,15.3.2,使用,Iptables,实现,NAT,【,例,15-10】,假设某企业网中,NAT,服务器安装了双
10、网卡,,eth0,连接外网,,eth1,连接内网,,IP,地址为,192.168.0.1,。企业内部网络的客户机都只有私有,IP,地址。利用,NAT,服务使企业内部网络的计算机能够连接,Internet,网络,。,35,15.3 NAT,15.3.2,使用,Iptables,实现,NAT,假设,eth0,的,IP,地址是静态分配的。公网,IP,地址池为,222.206.160.100-222.206.160.150,。此时应作,SNAT,,,iptables,命令的,-j,参数的语法格式为:,-j SNAT -to-source/-to IP1-IP2:port1-port2,配置步骤:,打开
11、Linux,的内核转发功能。,rootServer#echo“1”/proc/sys/net/ipv4/ip_forward,实现,SNAT,。,rootServer#iptables t nat A POSTROUTING p tcp o eth0 j SNAT-to 222.206.160.100-222.206.160.150:1025:30000,36,15.3 NAT,15.3.2,使用,Iptables,实现,NAT,假设连接外网的接口是利用,ADSL,拨号连接的,ppp0,。此时应作,IP,伪装,,iptables,命令的,-j,参数的语法格式为:,-j MASQUERADE,
12、配置步骤:,打开,Linux,的内核转发功能。,rootServer#echo“1”/proc/sys/net/ipv4/ip_forward,实现,IP,伪装。,rootServer#iptables t nat A POSTROUTING o ppp0 -j MASQUERADE,37,15.3 NAT,15.3.2,使用,Iptables,实现,NAT,【,例,15-11】,假设某企业网中,NAT,服务器安装了双网卡,,eth0,连接外网,,IP,地址为,222.206.160.100,。,eth1,连接内网,,IP,地址为,192.168.0.1,。企业内部网络,WEB,服务器的,IP
13、地址为,192.168.1.2,。要求当,Internet,网络中的用户在浏览器中输入,222.206.160.100,时可以访问到内网的,WEB,服务器。,38,15.3 NAT,15.3.2,使用,Iptables,实现,NAT,根据题目要求可知,此时应作,DNAT,。,iptables,命令的,-j,参数的语法格式为:,-j DNAT -to-destination/-to IP1-IP2:port1-port2,实现,DNAT,的配置语句:,#iptables t nat A PREROUTING p tcp d 222.206.160.100-dport 80 j DNAT-to
14、192.168.1.2:80,或者:,#iptables t nat A PREROUTING p tcp i eth0-dport 80 j DNAT-to 192.168.1.2:80,39,15.4,squid代理服务器,15.4.1,代理服务器的工作原理,40,15.4,squid代理服务器,15.4.1,代理服务器的工作原理,41,15.4,squid代理服务器,15.4.2,代理服务器的,作用,(,1,)提高访问速度。,(,2,)用户访问限制。,(,3,)安全性得到提高。,42,15.4,squid代理服务器,15.4.3,安装、启动与停止,Squid,服务,43,15.4,squ
15、id代理服务器,15.4.3,安装、启动与停止,Squid,服务,44,15.4,squid代理服务器,15.4.3,安装、启动与停止,Squid,服务,45,15.4,squid代理服务器,15.4.3,安装、启动与停止,Squid,服务,46,15.4,squid代理服务器,15.4.4,配置,squid,服务器,1,几个常用的选项,(,1,),http_port 3128,。,http_port 192.168.2.254:8080,(,2,),cache_mem 512MB,。,内存缓冲设置是指需要使用多少内存来作为高速缓存。,(,3,),cache_dir ufs /var/spoo
16、l/squid 4096 16 256,。,用于指定硬盘缓冲区的大小。,(,4,),cache_effective_user squid,。,设置使用缓存的有效用户。,cache_effective_user nobody,(,5,),cache_effective_group squid,。,设置使用缓存的有效用户组,默认为,squid,组,也可更改。,47,15.4,squid代理服务器,15.4.4,配置,squid,服务器,1,几个常用的选项,(,6,),dns_nameservers 220.206.160.100,。,设置有效的,DNS,服务器的地址。,(,7,),cache_ac
17、cess_log /var/log/squid/access.log,。,设置访问记录的日志文件。,(,8,),cache_log/var/log/squid/cache.log,。,设置缓存日志文件。该文件记录缓存的相关信息。,(,9,),cache_store_log/var/log/squid/store.log,。,设置网页缓存日志文件。网页缓存日志记录了缓存中存储对象的相关信息,例如存储对象的大小、存储时间、过期时间等。,48,15.4,squid代理服务器,15.4.4,配置,squid,服务器,1,几个常用的选项,(,10,),visible_hostname 192.168.0
18、3,。,visible_hostname,字段用来帮助,Squid,得知当前的主机名,如果不设置此项,在启动,Squid,的时候就会碰到“,FATAL,:,Could not determine fully qualified hostname,Please set visible hostname”,这样的提示。当访问发生错误时,该选项的值会出现在客户端错误提示网页中。,(,11,),cache_mgr master,。,设置管理员的邮件地址。当客户端出现错误时,该邮件地址会出现在网页提示中,这样用户就可以写信给管理员来告知发生的事情。,49,15.4,squid代理服务器,15.4.4,
19、配置,squid,服务器,2,设置访问控制列表,50,15.4,squid代理服务器,15.4.4,配置,squid,服务器,51,15.4,squid代理服务器,15.4.4,配置,squid,服务器,52,15.4,squid代理服务器,15.4.4,配置,squid,服务器,53,15.4,squid代理服务器,15.4.4,配置,squid,服务器,54,15.4,squid代理服务器,15.4.4,配置,squid,服务器,55,15.4,squid代理服务器,15.4.5,配置透明代理,56,15.4,squid代理服务器,15.4.4,配置,squid,服务器,57,15.4,s
20、quid代理服务器,15.4.6 squid,服务器配置实例,58,15.4,squid代理服务器,15.4.4,配置,squid,服务器,59,15.4,squid代理服务器,15.4.4,配置,squid,服务器,60,15.4,squid代理服务器,15.4.4,配置,squid,服务器,61,15.4,squid代理服务器,15.4.4,配置,squid,服务器,62,15.4,squid代理服务器,15.4.4,配置,squid,服务器,63,总结,本项目的解决方案,:,/1.,清空所有的链规则,rootServer#iptables -F,/2.,禁止,iptables,防火墙转发
21、任何数据包,rootServer#iptables -P FORWARD DROP,/3.,建立来自,Internet,网络的数据包的过滤规则,#iptables-A FORWARD p tcp d 222.206.100.2 p tcp -dport 80 -i eth0 -j ACCEPT,#iptables-A FORWARD p tcp d 222.206.100.3 -p tcp -dport 53 -i eth0 -j ACCEPT,#iptables-A FORWARD p tcp d 222.206.100.4 -p tcp -dport 25 -i eth0 -j ACCEP
22、T,#iptables-A FORWARD p tcp d 222.206.100.4 -p tcp -dport 110 -i eth0 -j ACCEPT,/4.,接受来自内网的数据包通过,rootServer#iptables -A FORWARD s 222.206.100.0/24 j ACCEPT,/5.,对于所有的,ICMP,数据包进行限制,允许每秒通过一个数据包,该限制的触发条件是,10,个包,rootServer#iptables-A FORWARD-p icmp-m limit-limit 1/s-limit-burst 10-j ACCEPT,64,作业,1,根据如下防火
23、墙配置的需求,写出配置命令,:,设置,filter,表中,3,个链的默认策略为拒绝,查看所有链的规则列表,添加一个用户自定义的链,custom1,向,filter,表的,INPUT,链的最后添加一条规则,对来自,192.168.1.10,这台主机的数据包丢弃,向,filter,表中的,INPUT,链的第,3,条规则前面插入一条规则,允许来自于非,192.168.3.0/24,网段的主机对本机的,25,端口的访问,65,作业,2,John,计划在他的局域网建立防火墙,防止,Internet,直接进入局域网,反之亦然。在防火墙上他不能用包过滤或,SOCKS,程序,.,而且他想要提供给局域网用户仅有的几个,Internet,服务和协议,请选择合适的防火墙,并写出配置过程,假设要控制来自,IP,地址,199.88.77.66,的,ping,命令,请写出,iptables,命令,如果想要防止,199.88.77.0/24,网络用,TCP,分组连接端口,21,,请写出,iptables,命令,66,本章小结,防火墙的分类及工作原理,Iptables,防火墙的配置,NAT,SQUID,代理服务器的配置,透明代理的实现,67,一、录像位置,