网络服务器搭建第2版(项目9防火墙)[杨云].pptx
- 文档编号:18630464
- 上传时间:2023-08-23
- 格式:PPTX
- 页数:83
- 大小:8.56MB
网络服务器搭建第2版(项目9防火墙)[杨云].pptx
《网络服务器搭建第2版(项目9防火墙)[杨云].pptx》由会员分享,可在线阅读,更多相关《网络服务器搭建第2版(项目9防火墙)[杨云].pptx(83页珍藏版)》请在冰点文库上搜索。
网络服务器搭建、配置与管理Linux版,主编:
杨云、马立新人民邮电出版社,项目9配置与管理防火墙,项目描述:
某高校组建了校园网,并且已经架设了Web、FTP、DNS、DHCP、Mail等功能的服务器来为校园网用户提供服务,现有如下问题需要解决。
(1)需要架设防火墙以实现校园网的安全。
(2)需要将子网连接在一起构成整个校园网。
(3)由于校园网使用的是私有地址,需要进行网络地址转换,使校园网中的用户能够访问互联网。
该项目实际上是由Linux的防火墙与代理服务器:
iptables和squid来完成的,通过该角色部署iptables、NAT、squid,能够实现上述功能。
项目目标:
了解防火墙的分类及工作原理了解NAT掌握iptables防火墙的配置掌握利用iptables实现NAT,9.3项目实施,9.6练习题,9.7超级链接,项目9配置与管理防火墙,9.4企业实战与应用,9.5项目实录,9.1相关知识,9.1.1防火墙概述,1什么是防火墙,防火墙通常具备以下几个特点。
(1)位置权威性。
(2)检测合法性。
(3)性能稳定性。
9.1.1防火墙概述,2防火墙的种类,
(1)包过滤防火墙。
(2)代理防火墙。
(3)状态检测技术。
9.1.2iptables简介,早期的Linux系统采用过ipfwadm作为防火墙,但在2.2.0核心中被ipchains所取代。
Linux2.4版本发布后,netfilter/iptables信息包过滤系统正式使用。
Netfilter/iptablesIP数据包过滤系统实际由netfilter和iptables两个组件构成。
Netfilter是集成在内核中的一部分,它的作用是定义、保存相应的规则。
而iptables是一种工具,用以修改信息的过滤规则及其他配置。
用户可以通过iptables来设置适合当前环境的规则,而这些规则会保存在内核空间中。
对于Linux服务器而言,采用netfilter/iptables数据包过滤系统,能够节约软件成本,并可以提供强大的数据包过滤控制功能,iptables是理想的防火墙解决方案。
9.1.3iptables工作原理,netfilter是Linux核心中的一个通用架构,它提供了一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链可以由一条或数条“规则”(rules)组成。
实际上,netfilter是表的容器,表是链的容器,而链又是规则的容器。
1iptables名词解释
(1)规则(rules)。
设置过滤数据包的具体条件,如IP地址、端口、协议以及网络接口等信息,iptables如表,
(2)动作(target)。
当数据包经过Linux时,若netfilter检测该包符合相应规则,则会对该数据包进行相应的处理,iptables动作如表,9.1.3iptables工作原理,9.1.3iptables工作原理,(3)链(chain)。
数据包传递过程中,不同的情况下所要遵循的规则组合形成了链。
规则链可以分为以下两种。
内置链(Build-inChains)。
用户自定义链(User-DefinedChains)。
netfilter常用的为内置链,其一共有5个链,如表,9.1.3iptables工作原理,netfilter的5条链相互地关联,如图,iptables数据包转发流程图,9.1.3iptables工作原理,(4)表(table)。
接受数据包时,Netfilter会提供以下3种数据包处理的功能。
过滤。
地址转换。
变更。
Netfilter根据数据包的处理需要,将链(chain)进行组合,设计了3个表(table):
filter、nat以及mangle。
filter。
这是netfilter默认的表,通常使用该表进行过滤的设置,它包含以下内置链。
INPUT:
应用于发往本机的数据包。
FORWARD:
应用于路由经过本地的数据包。
OUTPUT:
本地产生的数据包。
filter表过滤功能强大,几乎能够设定所有的动作(target)。
9.1.3iptables工作原理,nat。
当数据包建立新的连接时,该nat表能够修改数据包,并完成网络地址转换。
它包含以下3个内置链。
PREROUTING:
修改到达的数据包。
OUTPUT:
路由之前,修改本地产生数据包。
POSTROUTING:
数据包发送前,修改该包。
nat表仅用于网络地址转换,也就是转换包的源或目标地址,其具体的动作有DNAT、SNAT以及MASQUERADE,下面的内容将会详细介绍。
9.1.3iptables工作原理,mangle。
该表用在数据包的特殊变更操作,如修改TOS等特性。
Linux2.4.17内核以前,它包含两个内置链:
PREROUTING和OUTPUT,内核2.4.18发布后,mangle表对其他3个链提供了支持。
PREROUTING:
路由之前,修改接受的数据包。
INPUT:
应用于发送给本机的数据包。
FORWARD:
修改经过本机路由的数据包。
OUTPUT:
路由之前,修改本地产生的数据包。
POSTROUTING:
数据包发送出去之前,修改该包。
2iptables工作流程,9.1.3iptables工作原理,iptables拥有3个表和5个链,其整个工作流程如图,9.1.3iptables工作原理,9.1.4NAT的基本知识,网络地址转换器NAT(NetworkAddressTranslator)位于使用专用地址的Intranet和使用公用地址的Internet之间,主要具有以下几种功能。
(1)从Intranet传出的数据包由NAT将它们的专用地址转换为公用地址。
(2)从Internet传入的数据包由NAT将它们的公用地址转换为专用地址。
(3)支持多重服务器和负载均衡。
(4)实现透明代理。
这样在内网中计算机使用未注册的专用IP地址,而在与外部网络通信时使用注册的公用IP地址,大大降低了连接成本。
同时NAT也起到将内部网络隐藏起来,保护内部网络的作用,因为对外部用户来说只有使用公用IP地址的NAT是可见的,类似于防火墙的安全措施。
9.1.4NAT的基本知识,1NAT的工作过程
(1)客户机将数据包发给运行NAT的计算机。
(2)NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中,以便向客户机发送回答信息。
(3)外部网络发送回答信息给NAT。
(4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。
以上步骤对于网络内部的主机和网络外部的主机都是透明的,对他们来讲就如同直接通信一样。
如图,9.1.4NAT的基本知识,9.1.4NAT的基本知识,9.1.4NAT的基本知识,2NAT的分类
(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的基本知识,9.2项目设计及准备,9.2.1项目设计,网络建立初期,人们只考虑如何实现通信而忽略了网络的安全。
而防火墙可以使企业内部局域网与Internet之间或者与其他外部网络互相隔离、限制网络互访来保护内部网络。
大量拥有内部地址的机器组成了企业内部网,那么如何连接内部网与Internet?
代理服务器将是很好的选择,它能够解决内部网访问Internet的问题并提供访问的优化和控制功能。
本项目设计在安装有企业版Linux网络操作系统的服务器上安装iptabels。
9.2.2项目准备,部署iptables应满足下列需求。
(1)安装好的企业版Linux网络操作系统,并且必须保证常用服务正常工作。
客户端使用Linux或Windows网络操作系统。
服务器和客户端能够通过网络进行通信。
(2)或者利用虚拟机进行网络环境的设置。
9.3项目实施,任务9-1安装iptables,1检查iptables是否已经安装,没有安装则使用yum命令安装在默认情况下,iptables已经被安装好了。
可以使用rpm-qa命令来查看默认安装了哪些软件,如下所示。
(iptables默认已经安装。
)rootRHEL6#rpm-qa|grepiptablesiptables-1.3.5-5.3.el5iptables-ipv6-1.3.5-5.3.el5rootRHEL6桌面#yumcleanall/安装前先清除缓存rootRHEL6#yuminstalliptablesy/若没装则使用yum安装。
9.3项目实施,任务9-1安装iptables,2iptables服务的启动、停止、重新启动、随系统启动rootRHEL6#serviceiptablesstartrootRHEL6#serviceiptablesstoprootRHEL6#serviceiptablesrestartrootRHEL6#chkconfig-level3iptableson#运行级别3自动加载rootRHEL6#chkconfig-level3iptablesoff#运行级别3不自动加载提示:
亦可使用ntsysv命令,利用文本图形界面对iptables自动加载进行配置。
任务9-2认识iptables的基本语法,如果想灵活运用iptables来加固系统安全的话,就必须熟练地掌握iptables的语法格式。
iptables的语法格式如下。
iptables-t表名-命令-匹配-j动作/目标,1表选项iptables内置了filter、nat和mangle3张表,使用-t参数来设置对哪张表生效。
例如,如果对nat表设置规则的话,可以在-t参数后面加上nat,如下所示。
iptables-tnat-命令-匹配-j动作/目标,-t参数是可以省略的,如果省略了-t参数,则表示对filter表进行操作。
例如:
iptables-AINPUT-picmp-jDROP,任务9-2认识iptables的基本语法,任务9-2认识iptables的基本语法,任务9-2认识iptables的基本语法,3匹配选项匹配选项用来指定需要过滤的数据包所具备的条件。
换句话说就是在过滤数据包的时候,iptables根据什么来判断到底是允许数据包通过,还是不允许数据包通过,过滤的角度通常可以是源地址、目的地址、端口号或状态等信息。
如果使用协议进行匹配的话,就是告诉iptables从所使用的协议来进行判断是否丢弃这些数据包。
在TCP/IP的网络环境里,大多数的数据包所使用的协议不是TCP类型的就是UDP类型的,还有一种是ICMP类型的数据包,例如ping命令所使用的就是ICMP协议。
下面先来介绍一些较为常用的匹配选项。
更多介绍请参考相关文献。
任务9-2认识iptables的基本语法,任务9-2认识iptables的基本语法,任务9-2认识iptables的基本语法,(3)-dport或-destination-port。
作用:
基于TCP包的目的端口来匹配包,也就是说通过检测数据包的目的端口是不是指定的来判断数据包的去留。
端口的指定形式和-sport完全一样。
例如:
iptables-IINPUT-dport80-jACCEPT,(4)-s或-src或-source。
作用:
以IP源地址匹配包。
例如:
iptables-AINPUT-s1.1.1.1-jDROP,注意:
在地址前加英文感叹号表示取反,注意空格,如:
-s!
192.168.0.0/24表示除此地址外的所有地址。
任务9-2认识iptables的基本语法,iptables-AOUTPUT-oeth1-jACCEPT,4动作/目标选项动作/目标决定符合条件的数据包将如何处理,其中最为基本的有ACCEPT和DROP。
介绍常用的动作/目标如表,任务9-2认识iptables的基本语法,任务9-3设置默认策略,在iptables中,所有的内置链都会有一个默认策略。
当通过iptables的数据包不符合链中的任何一条规则时,则按照默认策略来处理数据包。
定义默认策略的命令格式如下。
iptables-t表名-P链名动作,【例9-1】将filter表中INPUT链的默认策略定义为DROP(丢弃数据包)。
rootserver#iptables-PINPUTDROP,【例9-2】将nat表中OUTPUT链的默认策略定义为ACCEPT(接受数据包)。
rootserver#iptables-tnat-POUTPUTACCEPT,任务9-4配置iptables规则,【例9-4】查看filter表中FORWARD链的规则。
任务9-4配置iptables规则,2添加、删除、修改规则【例9-5】为filter表的INPUT链添加一条规则,规则为拒绝所有使用ICMP协议的数据包。
任务9-4配置iptables规则,任务9-4配置iptables规则,【例9-6】为filter表的INPUT链添加一条规则,规则为允许访问TCP协议的80端口的数据包通过。
任务9-4配置iptables规则,【例9-7】在filter表中INPUT链的第2条规则前插入一条新规则,规则为不允许访问TCP协议的53端口的数据包通过。
任务9-4配置iptables规则,【例9-8】在filter表中INPUT链的第一条规则前插入一条新规则,规则为允许源IP地址属于172.16.0.0/16网段的数据包通过。
任务9-4配置iptables规则,【例9-9】删除filter表中INPUT链的第2条规则。
任务9-4配置iptables规则,当某条规则过长时,可以使用数字代码来简化操作,如下所示。
使用-1ine-n参数来查看规则代码。
rootserver#iptables-LINPUT-line-nChainINPUT(policyACCEPT)numtargetprotoptsourcedestination1ACCEPTall-172.16.0.0/16anvwhere2DROPicmp-anvwhereanvwhere3DROPtcp-anvwhereanvwheretcpdpt:
domain4ACCEPTtcp-anvwhereanvwheretcpdpt:
http,任务9-4配置iptables规则,#直接使用规则代码进行删除,任务9-4配置iptables规则,【例9-10】清除filter表中INPUT链的所有规则。
rootserver#iptables-FINPUT#查看规则列表rootserver#iptables-LINPUTChainINPUT(policyACCEPT)targetprotoptsourcedestination,任务9-4配置iptables规则,3保存规则与恢复iptables提供了两个很有用的工具来保存和恢复规则,这在规则集较为庞大的时候非常实用。
它们分别是iptables-save和iptables-restore。
iptables-save用来保存规则,它的用法比较简单,命令格式如下。
iptables-save-c-t表名,-c:
保存包和字节计数器的值。
这可以使在重启防火墙后不丢失对包和字节的统计。
-t:
用来选择保存哪张表的规则,如果不跟-t参数则保存所有的表。
任务9-4配置iptables规则,当使用iptables-save命令后可以在屏幕上看到输出结果,其中*表示的是表的名字,它下面跟的是该表中的规则集。
任务9-4配置iptables规则,任务9-4配置iptables规则,可以使用重定向命令来保存这些规则集,如下所示。
rootserver#iptablessave/etc/iptables-save,iptables-restore用来装载由iptables-save保存的规则集。
其命令格式如下所示。
iptables-restorec-n,-c:
如果加上-c参数,表示要求装入包和字节计数器。
-n:
表示不要覆盖已有的表或表内的规则。
默认情况是清除所有已存在的规则。
使用重定向来恢复由iptables-save保存的规则集,如下所示。
rootserver#iptables-restore/etc/iptables-save,所有的添加、删除、修改规则都是临时生效。
当重新启动系统后,恢复成原有的配置,如果想保持所做的修改在重新启动系统后依旧生效,可以使用以下命令来保存iptables的规则配置,如下所示。
rootiptables/#iptables-save/etc/iptables-saverootiptables/#serviceiptablessave将当前规则保存在/etc/sysconfig/iptables。
确定,任务9-5从常用实例中掌握配置iptables技巧,任务9-5从常用实例中掌握配置iptables技巧,【例9-12】禁止员工访问IP地址为212.1.2.3的网站。
任务9-5从常用实例中掌握配置iptables技巧,2禁止用户使用QQ软件员工上网聊天似乎已经成为一种司空见惯的事情,大多数人对此习以为常。
可是在老板的眼里他们并不希望看到这些。
所以很多的网络管理者在部署企业内部网络的时候都纷纷禁止使用QQ软件,早期的QQ都采用UDP协议进行传输数据,而且所使用的端口通常是从4000开始,目前新版本的QQ既可以使用TCP协议,也可以使用UDP协议,而且端口号也有所改变,这使得封锁QQ软件的难度加大。
不过只要知道QQ使用的服务器地址和端口号依旧可以进行封锁。
获取QQ使用的服务器地址和端口号很容易,进入QQ安装目录,在任意以QQ号码命名的目录中找到Config.db的文件,并用记事本或其他编辑器打开,即可看到QQ使用的服务器地址和端口号,如图,任务9-5从常用实例中掌握配置iptables技巧,任务9-6使用日志监控iptables,任务9-6使用日志监控iptables,可以先将LOG功能的使用方式理解成以下这样。
iptables-t表名-命令-匹配-jLOG,但是这并不完整,LOG目标后面可以跟5个选项来规范和完善LOG功能,例如设置日志记录的详细程度,或者是否去跟踪一个特定地址的数据包。
当然这5个选项并不是都需要写出来,不过,我们还是先来看看它们分别是什么意思。
任务9-6使用日志监控iptables,任务9-6使用日志监控iptables,任务9-6使用日志监控iptables,任务9-7实现NAT(网络地址转换),任务9-7实现NAT(网络地址转换),2配置SNATSNAT功能是进行源IP地址转换,也就是重写数据包的源IP地址。
若网络内部主机采用共享方式,访问Internet连接时就需要用到SNAT的功能,将本地的IP地址替换为公网的合法IP地址。
SNAT只能用在nat表的POSTROUTING链,并且只要连接的第一个符合条件的包被SNAT进行地址转换,那么这个连接的其他所有的包都会自动地完成地址替换工作,而且这个规则还会应用于这个连接的其他数据包。
SNAT使用选项-to-source,命令语法如下。
iptables-tnat-APOSTROUTING-o网络接口-jSNAT-to-sourceIP地址,任务9-7实现NAT(网络地址转换),任务9-7实现NAT(网络地址转换),【例9-13】公司内部主机使用10.0.0.0/8网段的IP地址,并且使用Linux主机作为服务器连接互联网,外网地址为固定地址212.212.12.12,现需要修改相关设置保证内网用户能够正常访问Internet,如图,任务9-7实现NAT(网络地址转换),step1:
开启内核路由转发功能。
先在内核里打开IP转发功能,如下所示。
rootRHEL6etc#vim/etc/sysctl.confnet.ipv4.ip_forward=1/数值改为“1”rootRHEL6etc#sysctl-p/启用转发功能net.ipv4.ip_forward=1net.ipv4.conf.default.rp_filter=1(后面略),任务9-7实现NAT(网络地址转换),step2:
添加SNAT规则。
设置iptables规则,将数据包的源地址改为公网地址,如下所示。
rootRHEL6#iptables-tnat-APOSTROUTING-oeth1-s10.0.0.0/8-jSNAT-to-source212.212.12.12rootRHEL6#serviceiptablessave#保存配置信息Savingfirewallrulesto/etc/sysconfig/iptables:
确定,任务9-7实现NAT(网络地址转换),step3:
指定客户端10.0.0.2的默认网关(其他客户端类似)。
rootclient#routeadddefaultgw10.0.0.1step4:
编辑/etc/resolv.conf,修改DNS服务器地址。
rootclient#vim/etc/f,任务9-7实现NAT(网络地址转换),任务9-7实现NAT(网络地址转换),DNAT主要能够完成以下几个功能。
(1)发布内网服务器。
iptables能够接收外部的请求数据包,并转发至内部的应用服务器,整个过程是透明的,访问者感觉像直接在与内网服务器进行通信一样,如图,任务9-7实现NAT(网络地址转换),任务9-7实现NAT(网络地址转换),
(2)实现负载均衡。
如果内部网络存在多台相同类型应用的服务器,可以使用DNAT,将外部的访问流量分配到多台Server上,实现负载均衡,减轻服务器的负担。
【例9-15】公司内部共有3台数据相同的Web服务器,IP地址分别为192.168.0.10、192.168.0.11以及192.168.0.13,防火墙外部地址为212.226.100.23,为了提高页面的响应速度,需要对Web服务进行优化。
rootserver#iptables-tnat-APREROUTING-d212.226.100.23-ptcp-dport80-jDNAT-to-destination192.168.0.10-192.168.0.12,任务9-7实现NAT(网络地址转换),任务9-7实现NAT(网络地址转换),5连接跟踪
(1)什么是连接跟踪。
通常,在iptables防火墙的配置都是单向的,例如,防火墙仅在INPUT链允许主机访问Google站点,这时,请求数据包能够正常发送至Google服务器,但是,当服务器的回应数据包抵达时,因为没有配置允许的策略,则该数据包将会被丢弃,无法完成整个通信过程。
所以,配置iptables时需要配置出站、入站规则,这无疑增大了配置的复杂度。
实际上,连接跟踪能够简化该操作。
连接跟踪依靠数据包中的特殊标记,对连接状态“state”进行检测,Netfilter能够根据状态决定数据包的关联,或者分析每个进程对应数据包的关系,决定数据包的具体操作。
连接跟踪支持TCP和UDP通信,更加适用于数据包的交换。
任务9-7实现NAT(网络地址转换),任务9-7实现NAT(网络地址转换),9.4企业实战与应用,9.4.1企业环境及需求,1企业环境200台客户机,IP地址范围为192.168.1.1192.168.1.1.254,掩码为255.255.255.0。
Mail服务器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 杨云 网络 服务器 搭建 项目 防火墙