防火墙与代理服务器(课堂PPT).ppt
LinuxLinux网络操作系统与实训(第网络操作系统与实训(第2 2版)版)中国铁道出版社中国铁道出版社孙丽娜 孔令宏 杨 云 主编李 斌 姜庆玲 梁明亮 副主编1.教材地址:教材地址:http:/ 防火墙与代理服务器防火墙与代理服务器 1.项目课题引入 2.防火墙概述 3.iptables 4.NAT 5.squid代理服务器3课题引入课题引入项目背景项目背景l假设某单位租用DDN专线上网。网络拓扑如下图所示。iptables防火墙的eth0接口连接外网,IP地址为222.206.160.100;eth1接口连接内网,IP地址为192.168.1.1。假设在内网中存在WEB、DNS和E-mail3台服务器,这3台服务器都有公有IP地址。其IP地址如图所示。设置防火墙规则加强对内网服务器的保护,并允许外网的用户可以访问此3台服务器。4课题引入课题引入项目分析项目分析l完成本项目需要解决的问题:1、什么是防火墙,其工作原理是什么2、如何使用Iptables进行防火墙设置3、如何配置包过滤防火墙4、如何实现NAT5、什么是代理服务器,其工作原理是什么6、squid代理服务器的安装、启动与运行方法7、squid服务器的配置方法8、透明代理的配置方法5课题引入课题引入教学目标教学目标l学习本课需要实现的教学目标:掌握防火墙的概念和工作原理掌握Iptables的结构和配置方法掌握包过滤防火墙的配置方法掌握NAT的配置方法掌握代理服务器的工作原理掌握代理服务器的启动与停止方法掌握代理服务器配置文件的修改方法掌握代理服务器的配置方法掌握透明代理的配置方法6课题引入课题引入应达到的职业能力应达到的职业能力l学生学习本课后应该具有的职业能力:掌握为企业设计防火墙的能力掌握Linux下Iptables的配置方法掌握包过滤防火墙的配置能力掌握NAT的配置能力进行squid代理服务器的配置能力进行透明代理服务器的配置能力具有较好的团队合作能力715.1 15.1 防火墙概述防火墙概述15.1.1 防火墙的概念防火墙的概念815.1 15.1 防火墙概述防火墙概述15.1.2 iptables简介简介915.2 iptables15.2 iptables15.2.2 iptables工作原理1015.2 iptables15.2 iptables15.2.2 iptables工作原理1115.2 iptables15.2 iptables15.2.2 iptables工作原理1215.2 iptables15.2 iptables15.2.2 iptables工作原理netfilter的5条链相互地关联,如图15-1所示。1315.2 iptables15.2 iptables15.2.2 iptables工作原理1415.2 iptables15.2 iptables15.2.2 iptables工作原理1515.2 iptables15.2 iptables15.2.2 iptables工作原理2iptables工作流程工作流程1615.2 iptables15.2 iptables15.2.2 iptables工作原理1715.2 iptables15.2 iptables15.2.3 安装iptables1815.2 iptables15.2 iptables15.2.3 安装iptables1915.2.4 iptables命令15.2 iptables15.2 iptables2015.2 iptables15.2 iptables15.2.4 iptables命令2115.2 iptables15.2 iptables15.2.4 iptables命令2215.2 iptables15.2 iptables15.2.4 iptables命令2315.2 iptables15.2 iptables15.2.4 iptables命令2415.2 iptables15.2 iptables15.2.5 iptables命令使用举例命令使用举例2515.2 iptables15.2 iptables15.2.5 iptables命令使用举例命令使用举例2615.2 iptables15.2 iptables15.2.5 iptables命令使用举例命令使用举例2715.2 iptables15.2 iptables15.2.5 iptables命令使用举例命令使用举例2815.2 iptables15.2 iptables15.2.5 iptables命令使用举例命令使用举例2915.3 NAT15.3 NAT15.3.1 NAT的基本知识的基本知识NAT的工作过程:(1)客户机将数据包发给运行NAT的计算机。(2)NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中,以便向客户机发送回答信息。(3)外部网络发送回答信息给NAT。(4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。3015.3 NAT15.3 NAT15.3.1 NAT的基本知识的基本知识NAT的工作过程示意图:3115.3 NAT15.3 NAT15.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。3215.3 NAT15.3 NAT15.3.2 使用Iptables实现NAT用户根据规则所处理的信息包类型,使用iptables命令设置NAT规则:要做源IP地址转换的数据包的规则被添加到POSTROUTING链中。要做目的IP地址转换的数据包的规则被添加到PREROUTING链中。直接从本地出去的数据包的规则被添加到OUTPUT链中。3315.3 NAT15.3 NAT15.3.2 使用Iptables实现NAT数据包穿越NAT的工作流程示意图:3415.3 NAT15.3 NAT15.3.2 使用Iptables实现NAT【例15-10】假设某企业网中NAT服务器安装了双网卡,eth0连接外网,eth1连接内网,IP地址为192.168.0.1。企业内部网络的客户机都只有私有IP地址。利用NAT服务使企业内部网络的计算机能够连接Internet网络。3515.3 NAT15.3 NAT15.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 配置步骤:打开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 3615.3 NAT15.3 NAT15.3.2 使用Iptables实现NAT假设连接外网的接口是利用ADSL拨号连接的ppp0。此时应作IP伪装,iptables命令的-j参数的语法格式为:-j MASQUERADE 配置步骤:打开Linux的内核转发功能。rootServer#echo“1”/proc/sys/net/ipv4/ip_forward 实现IP伪装。rootServer#iptables t nat A POSTROUTING o ppp0 -j MASQUERADE 3715.3 NAT15.3 NAT15.3.2 使用Iptables实现NAT【例15-11】假设某企业网中NAT服务器安装了双网卡,eth0连接外网,IP地址为222.206.160.100。eth1连接内网,IP地址为192.168.0.1。企业内部网络WEB服务器的IP地址为192.168.1.2。要求当Internet网络中的用户在浏览器中输入http:/222.206.160.100时可以访问到内网的WEB服务器。3815.3 NAT15.3 NAT15.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 192.168.1.2:80或者:#iptables t nat A PREROUTING p tcp i eth0-dport 80 j DNAT-to 192.168.1.2:80 3915.4 squid15.4 squid代理服务器代理服务器15.4.1 代理服务器的工作原理代理服务器的工作原理4015.4 squid15.4 squid代理服务器代理服务器15.4.1 代理服务器的工作原理代理服务器的工作原理4115.4 squid15.4 squid代理服务器代理服务器15.4.2 代理服务器的代理服务器的作用作用(1)提高访问速度。(2)用户访问限制。(3)安全性得到提高。4215.4 squid15.4 squid代理服务器代理服务器15.4.3 安装、启动与停止安装、启动与停止Squid服务服务4315.4 squid15.4 squid代理服务器代理服务器15.4.3 安装、启动与停止安装、启动与停止Squid服务服务4415.4 squid15.4 squid代理服务器代理服务器15.4.3 安装、启动与停止安装、启动与停止Squid服务服务4515.4 squid15.4 squid代理服务器代理服务器15.4.3 安装、启动与停止安装、启动与停止Squid服务服务4615.4 squid15.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/spool/squid 4096 16 256。用于指定硬盘缓冲区的大小。(4)cache_effective_user squid。设置使用缓存的有效用户。cache_effective_user nobody(5)cache_effective_group squid。设置使用缓存的有效用户组,默认为squid组,也可更改。4715.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器1几个常用的选项(6)dns_nameservers 220.206.160.100。设置有效的DNS服务器的地址。(7)cache_access_log /var/log/squid/access.log。设置访问记录的日志文件。(8)cache_log/var/log/squid/cache.log。设置缓存日志文件。该文件记录缓存的相关信息。(9)cache_store_log/var/log/squid/store.log。设置网页缓存日志文件。网页缓存日志记录了缓存中存储对象的相关信息,例如存储对象的大小、存储时间、过期时间等。4815.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器1几个常用的选项(10)visible_hostname 192.168.0.3。visible_hostname字段用来帮助Squid得知当前的主机名,如果不设置此项,在启动Squid的时候就会碰到“FATAL:Could not determine fully qualified hostnamePlease set visible hostname”这样的提示。当访问发生错误时,该选项的值会出现在客户端错误提示网页中。(11)cache_mgr 。设置管理员的邮件地址。当客户端出现错误时,该邮件地址会出现在网页提示中,这样用户就可以写信给管理员来告知发生的事情。4915.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器2设置访问控制列表5015.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器5115.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器5215.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器5315.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器5415.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器5515.4 squid15.4 squid代理服务器代理服务器15.4.5 配置透明代理配置透明代理5615.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器5715.4 squid15.4 squid代理服务器代理服务器15.4.6 squid服务器配置实例服务器配置实例5815.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器5915.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器6015.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器6115.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器6215.4 squid15.4 squid代理服务器代理服务器15.4.4 配置配置squid服务器服务器63总结总结l 本项目的解决方案:l/1.清空所有的链规则lrootServer#iptables -Fl/2.禁止iptables防火墙转发任何数据包lrootServer#iptables -P FORWARD DROPl/3.建立来自Internet网络的数据包的过滤规则l#iptables-A FORWARD p tcp d 222.206.100.2 p tcp -dport 80 -i eth0 -j ACCEPTl#iptables-A FORWARD p tcp d 222.206.100.3 -p tcp -dport 53 -i eth0 -j ACCEPTl#iptables-A FORWARD p tcp d 222.206.100.4 -p tcp -dport 25 -i eth0 -j ACCEPTl#iptables-A FORWARD p tcp d 222.206.100.4 -p tcp -dport 110 -i eth0 -j ACCEPTl/4.接受来自内网的数据包通过lrootServer#iptables -A FORWARD s 222.206.100.0/24 j ACCEPTl/5.对于所有的ICMP数据包进行限制,允许每秒通过一个数据包,该限制的触发条件是10个包lrootServer#iptables-A FORWARD-p icmp-m limit-limit 1/s-limit-burst 10-j ACCEPT64作业作业1 1l根据如下防火墙配置的需求,写出配置命令:设置filter表中3个链的默认策略为拒绝查看所有链的规则列表添加一个用户自定义的链custom1向filter表的INPUT链的最后添加一条规则,对来自192.168.1.10这台主机的数据包丢弃向filter表中的INPUT链的第3条规则前面插入一条规则,允许来自于非192.168.3.0/24网段的主机对本机的25端口的访问65作业作业2 2lJohn计划在他的局域网建立防火墙,防止Internet直接进入局域网,反之亦然。在防火墙上他不能用包过滤或SOCKS程序.而且他想要提供给局域网用户仅有的几个Internet服务和协议,请选择合适的防火墙,并写出配置过程l假设要控制来自IP地址199.88.77.66的ping命令,请写出iptables命令l如果想要防止199.88.77.0/24网络用TCP分组连接端口21,请写出iptables命令66本章小结本章小结v防火墙的分类及工作原理vIptables防火墙的配置vNATvSQUID代理服务器的配置v透明代理的实现67v一、录像位置一、录像位置vhttp:/