网络服务器搭建、配置与管理——Linux版网络服务器搭建、配置与管理——Linux版主编:杨云、马立新人民邮电出版社网络服务器搭建、配置与管理——Linux版项目九、配置与管理防火墙和代理服务器项目描述:某高校组建了校园网,并且已经架设了Web、FTP、DNS、DHCP、Mail等功能的服务器来为校园网用户提供服务,现有如下问题需要解决。(1)需要架设防火墙以实现校园网的安全。(2)需要将子网连接在一起构成整个校园网。(3)由于校园网使用的是私有地址,需要进行网络地址转换,使校园网中的用户能够访问互联网。该项目实际上是由Linux的防火墙与代理服务器:iptables和squid来完成的,通过该角色部署iptables、NAT、squid,能够实现上述功能。项目目标:●了解防火墙的分类及工作原理●了解NAT●掌握iptables防火墙的配置●掌握利用iptables实现NAT●掌握squid代理服务器的配置网络服务器搭建、配置与管理——Linux版9.1相关知识9.3项目实施9.6练习题9.7综合案例分析9.8超级链接项目九、配置与管理防火墙和代理服务器9.2项目设计与准备9.4企业实战与应用9.5项目实录网络服务器搭建、配置与管理——Linux版9.1相关知识9.1.1防火墙概述1.什么是防火墙防火墙通常具备以下几个特点。(1)位置权威性。(2)检测合法性。(3)性能稳定性。网络服务器搭建、配置与管理——Linux版9.1.1防火墙概述2.防火墙的种类(1)包过滤防火墙。(2)代理防火墙。(3)状态检测技术。网络服务器搭建、配置与管理——Linux版9.1.2iptables简介早期的Linux系统采用过ipfwadm作为防火墙,但在2.2.0核心中被ipchains所取代。Linux2.4版本发布后,netfilter/iptables信息包过滤系统正式使用。Netfilter/iptablesIP数据包过滤系统实际由netfilter和iptables两个组件构成。Netfilter是集成在内核中的一部分,它的作用是定义、保存相应的规则。而iptables是一种工具,用以修改信息的过滤规则及其他配置。用户可以通过iptables来设置适合当前环境的规则,而这些规则会保存在内核空间中。对于Linux服务器而言,采用netfilter/iptables数据包过滤系统,能够节约软件成本,并可以提供强大的数据包过滤控制功能,iptables是理想的防火墙解决方案。网络服务器搭建、配置与管理——Linux版9.1.3iptables工作原理netfilter是Linux核心中的一个通用架构,它提供了一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链可以由一条或数条“规则”(rules)组成。实际上,netfilter是表的容器,表是链的容器,而链又是规则的容器。1.iptables名词解释(1)规则(rules)。设置过滤数据包的具体条件,如IP地址、端口、协议以及网络接口等信息,iptables如表条件说明Address针对封包内的地址信息进行比对。可对来源地址(SourceAddress)、目的地址(DestinationAddress)与网络卡地址(MACAddress)进行比对Port封包内存放于Transport层的Port信息设定比对的条件,可用来比对的Pott信息包含:来源Port(SourcePort)、目的Port(DestinationPort)Protocol通信协议,指的是某一种特殊种类的通信协议。Netfilter可以比对TCP、UDP或者ICMP等协议Interface接口,指的是封包接收,或者输出的网络适配器名称Fragment不同NetworkInterface的网络系统,会有不同的封包长度的限制。如封包跨越至不同的网络系统时,可能会将封包进行裁切(Fragment)。可以针对裁切后的封包信息进行监控与过滤Counter可针对封包的计数单位进行条件比对网络服务器搭建、配置与管理——Linux版(2)动作(target)。当数据包经过Linux时,若netfilter检测该包符合相应规则,则会对该数据包进行相应的处理,iptables动作如表9.1.3iptables工作原理网络服务器搭建、配置与管理——Linux版9.1.3iptables工作原理(3)链(chain)。数据包传递过程中,不同的情况下所要遵循的规则组合形成了链。规则链可以分为以下两种。●内置链(Build-inChains)。●用户自定义链(User-DefinedChains)。netfilter常用的为内置链,其一共有5个链,如表网络服务器搭建、配置与管理——Linux版9.1.3iptables工作原理netfilter的5条链相互地关联,如图iptables数据包转发流程图网络服务器搭建、配置与管理——Linux版9.1.3iptables工作原理(4)表(table)。接受数据包时,Netfilter会提供以下3种数据包处理的功能。●过滤。●地址转换。●变更。Netfilter根据数据包的处理需要,将链(chain)进行组合,设计了3个表(table):filter、nat以及mangle。①filter。这是netfilter默认的表,通常使用该表进行过滤的设置,它包含以下内置链。●INPUT:应用于发往本机的数据包。●FORWARD:应用于路由经过本地的数据包。●OUTPUT:本地产生的数据包。filter表过滤功能强大,几乎能够设定所有的动作(target)。网络服务器搭建、配置与管理——Linux版9.1.3iptables工作原理②nat。当数据包建立新的连接时,该nat表能够修改数据包,并完成网络地址转换。它包含以下3个内置链。●PREROUTING:修改到达的数据包。●OUTPUT:路由之前,修改本地产生数据包。●POSTROUTING:数据包发送前,修改该包。nat表仅用于网络地址转换,也就是转换包的源或目标地址,其具体的动作有DNAT、SNAT以及MASQUERADE,下面的内容将会详细介绍。网络服务器搭建、配置与管理——Linux版9.1.3iptables工作原理③mangle。该表用在数据包的特殊变更操作,如修改TOS等特性。Linux2.4.17内核以前,它包含两个内置链:PREROUTING和OUTPUT,内核2.4.18发布后,mangle表对其他3个链提供了支持。●PREROUTING:路由之前,修改接受的数据包。●INPUT:应用于发送给本机的数据包。●FORWARD:修改经过本机路由的数据包。●OUTPUT:路由之前,修改本地产生的数据包。●POSTROUTING:数据包发送出去之前,修改该包。网络服务器搭建、配置与管理——Linux版2.iptables工作流程9.1.3iptables工作原理iptables拥有3个表和5个链,其整个工作流程如图网络服务器搭建、配置与管理——Linux版9.1.3iptables工作原理网络服务器搭建、配置与管理——Linux版9.1.4NAT的基本知识网络地址转换器NAT(NetworkAddressTranslator)位于使用专用地址的Intranet和使用公用地址的Internet之间,主要具有以下几种功能。(1)从Intranet传出的数据包由NAT将它们的专用地址转换为公用地址。(2)从Internet传入的数据包由NAT将它们的公用地址转换为专用地址。(3)支持多重服务器和负载均衡。(4)实现透明代理。这样在内网中计算机使用未注册的专用IP地址,而在与外部网络通信时使用注册的公用IP地址,大大降低了连接成本。同时NAT也起到将内部网络隐藏起来,保护内部网络的作用,因为对外部用户来说只有使用公用IP地址的NAT是可见的,类似于防火墙的安全措施。网络服务器搭建、配置与管理——Linux版9.1.4NAT的基本知识1.NAT的工作过程(1)客户机将数据包发给运行NAT的计算机。(2)NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中,以便向客户机发送回答信息。(3)外部网络发送回答信息给NAT。(4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。以上步骤对于网络内部的主机和网络外部的主机都是透明的,对他们来讲就如同直接通信一样。如图网络服务器搭建、配置与管理——Linux版9.1.4NAT的基本知识网络服务器搭建、配置与管理——Linux版9.1.4NAT的基本知识网络服务器搭建、配置与管理——Linux版9.1.4NAT的基本知识网络服务器搭建、配置与管理——Linux版2.NAT的分类(1)源NAT(SourceNAT,SNAT)。SNAT指修改第一个包的源IP地址。SNAT会在包送出之前的最后一刻做好Post-Routing的动作。Linux中的IP伪装(MASQUERADE)就是SNAT的一种特殊形式。(2)目的NAT(DestinationNAT,DNAT)。DNAT是指修改第一个包的目的IP地址。DNAT总是在包进入后立刻进行Pre-Routing动作。端口转发、负载均衡和透明代理均属于DNAT。9.1.4NAT的基本知识网络服务器搭建、配置与管理——Linux版9.1.5代理服务器代理服务器(ProxyServer)等同于内网与Internet的桥梁。普通的Internet访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端服务器程序响应请求并提供相应的数据。而Proxy处于客户机与服务器之间,对于服务器来说,Proxy是客户机,Proxy提出请求,服务器响应;对于客户机来说,Proxy是服务器,它接受客户机的请求,并将服务器上传来的数据转给客户机。它的作用如同现实生活中的代理服务商。网络服务器搭建、配置与管理——Linux版9.1.5代理服务器1.代理服务器的工作原理网络服务器搭建、配置与管理——Linux版9.1.5代理服务器网络服务器搭建、配置与管理——Linux版9.1.5代理服务器2.代理服务器的作用(1)提高访问速度。(2)用户访问限制。(3)安全性得到提高。网络服务器搭建、配置与管理——Linux版9.2项目设计及准备9.2.1项目设计网络建立初期,人们只考虑如何实现通信而忽略了网络的安全。而防火墙可以使企业内部局域网与Internet之间或者与其他外部网络互相隔离、限制网络互访来保护内部网络。大量拥有内部地址的机器组成了企业内部网,那么如何连接内部网与Internet?代理服务器将是很好的选择,它能够解决内部网访问Internet的问题并提供访问的优化和控制功能。本项目设计在安装有企业版Linux网络操作系统的服务器上安装iptabels。9.2.2项目准备部署iptables应满足下列需求。(1)安装好的企业版Linux网络操作系统,并且必须保证常用服务正常工作。客户端使用Linux或Windows网络操作系统。服务器和客户端能够通过网络进行通信。(2)或者利用虚拟机进行网络环境的设置。网络服务器搭建、配置与管理——Linux版9.3项目实施9.3.1任务1安装iptables网络服务器搭建、配置与管理——Linux版9.3.1任务1安装iptables网络服务器搭建、配置与管理——Linux版9.3.1任务1安装iptables5.自动加载iptables服务(1)chkconfig。使用chkconfig命令自动加载iptables服务,如下所示。(2)ntsysv。使用ntsysv命令,利用文本图形界面对iptables自动加载进行配置。网络服务器搭建、配置与管理——Linux版9.3.2任务2认识iptables的基本语法如果想灵