《网络系统安全运行与维护》课件项目五 任务一 加强Linux系统DNS服务的安全防御_第1页
《网络系统安全运行与维护》课件项目五 任务一 加强Linux系统DNS服务的安全防御_第2页
《网络系统安全运行与维护》课件项目五 任务一 加强Linux系统DNS服务的安全防御_第3页
《网络系统安全运行与维护》课件项目五 任务一 加强Linux系统DNS服务的安全防御_第4页
《网络系统安全运行与维护》课件项目五 任务一 加强Linux系统DNS服务的安全防御_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【项目描述】

随着办公网络中可共享的资源不断增加,需要在办公网络中架设了多台服务器,包括DNS服务器、Web服务器、DHCP服务器和FTP服务器等,通过这些服务器为内网用户和互联网用户提供服务。

由于这些服务器不但需要为内网用户提供服务,而且还需要为互联网用户提供服务,使得服务器在开放的Internet上面临各种各样的安全威胁。

为了保障单位内部服务器的安全,需要采取以下安全措施对服务器中的各种服务进行安全配置。(1)加强Linux系统DNS服务的安全防御。(2)加强Linux系统DHCP服务的安全防御。(3)加强Linux系统Web服务的安全防御。(4)加强Linux系统FTP服务的安全防御。(5)使用防火墙模块提升Linux服务器的安全防御。项目五Linux服务器系统安全运行与维护【学习目标】(1)能够在Linux系统中配置DNS服务器。(2)能够在Linux系统中部署DNS服务器的安全策略。(3)能够在Linux系统中配置DHCP服务器。(4)能够在Linux系统中部署DHCP服务器的安全策略。(5)能够在Linux系统Apache服务器实施安全配置。(6)能够对Linux系统FTP服务器进行安全配置。(7)会使用防火墙保护Linux系统中服务器的安全。(8)会使用防火墙保护内网用户和服务的安全。项目五Linux服务器系统安全运行与维护项目主要内容:任务一

加强Linux系统DNS服务的安全防御任务二

加强Linux系统DHCP服务的安全防御任务三

加强Linux系统Web服务的安全防御任务四

加强Linux系统FTP服务的安全防御任务五

使用防火墙模块提升Linux服务器的安全防御任务提出

在办公网络中,DNS服务器在对外提供服务过程中会经常遇到拒绝服务(DenialofService,DoS)、分布式拒绝服务(DistributedDenialofService,DDoS)、缓冲区漏洞溢出、DNS欺骗等攻击,直接影响办公网络的正常运行。为了保障DNS服务器的安全运行并提供正常服务,可以通过以下措施来加强DNS服务器的安全。1.保护DNS服务器自身安全

通过在Linux系统中隔离DNS服务器、隐藏DNS服务器版本号、避免透露DNS服务器信息、限制运行权限等措施保护DNS服务器自身的安全。2.保护DNS服务器免于Spoofing攻击

为Linux上的DNS服务器关闭rescursion功能、关闭gluefetching功能、限制查询请求的服务对象等,保护DNS服务器,使其免于Spoofing攻击。3.保护区域传输的安全通过编辑DNS配置文件,限制可以进行区域传输的主机。4.保护动态更新的安全限制可以向DNS服务器提交动态更新的主机,保护动态更新的安全性。5.使用TSIG保护DNS服务器使用TSIG,通过加密密钥的方式保护DNS服务器的区域传输。任务分析1.保护DNS服务器自身安全DNS欺骗是指域名信息欺骗,是最常见的DNS安全问题。如果一台DNS服务器掉入陷阱,使用了来自一项恶意DNS服务的错误信息,那么该DNS服务器就被欺骗了。DNS欺骗会使那些易受攻击的DNS服务器产生许多安全问题,例如将用户引导到错误的Internet站点,或者发送一个电子邮件到一个未经授权的邮件服务器。

通过使用隔离DNS服务器、隐藏DNS服务器版本号、避免透露DNS服务器信息、限制运行权限等措施,可以保护DNS免于DNS欺骗。2.保护DNS服务器免于Spoofing攻击Spoofing攻击是指欺骗攻击,攻击者伪造数据包包头,使显示的信息源不是实际的来源,从而借用另外一台机器的IP地址与服务器打交道。Spoofing攻击容易带来拒绝服务攻击和分布式拒绝服务攻击。拒绝服务攻击是指攻击者大量消耗服务器资源,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求,服务器停止提供服务。分布式拒绝服务攻击是指,攻击者向目标系统发起的恶意攻击请求,随机生成大批假冒源IP,如果目标防御较为薄弱,对收到的恶意请求也无法分析攻击源的真实性,从而达到攻击者隐藏自身的目的。

通过为DNS服务器关闭rescursion功能、关闭gluefetching功能、限制查询请求的服务对象等,保护DNS服务器免于Spoofing攻击。3.保护区域传输的安全默认情况下,BIND区域传输是全部开放的,如果没有限制,DNS服务器会允许对任何人都进行区域传输,那么网络架构中的主机名、主机IP列表、路由器名和路由IP列表,甚至包括各主机所在的位置和硬件配置等情况都很容易被入侵者获取,因此要对区域传输进行必要的限制,保护区域传输的安全。4.保护动态更新的安全虽然动态更新很有用,但也存在很大危险,必须予以限制。允许向本DNS服务器提交动态DNS更新的主机IP列表,经授权的更新者可以删除区域中的所有记录(除了SOA记录和NS记录),也可以添加新的记录。5.使用TSIG保护DNS服务器事务签名TSIG(TransactionSIGnature)是RFC2845中定义的计算机网络协议。它使域名系统(DNS)能够验证对DNS数据库的更新。在更新动态DNS或辅助/从属DNS服务器时,TSIG使用共享密钥和单向哈希提供一种密码安全的方式来认证连接的每个端点,使它们被允许作出或响应DNS更新,从而保证了DNS服务器之间传送区域信息的安全。任务实施1.保护DNS服务器自身安全

操作步骤如下:

步骤1实验准备阶段,根据项目一中任务二知识点,在VMwareWorkstation中部署两台RedHatEnterpriseLinux6.4系统虚拟机server1和server2,,两个虚拟机的IP地址规划如表所示,并将两台虚拟机实现网络连通。设备名称设备角色操作系统IP地址server1主DNS服务器RedHatLinux6.4/24server2从DNS服务器RedHatLinux6.40/24步骤2在server1和server2上分别安装和启动DNS服务。①在server1上安装和启动DNS服务。②在server2上安装和启动DNS服务。步骤同①。[root@linuxA桌面]#yumlist|grepbindbind.i68632:9.8.2-0.17.rc1.el6basebind-chroot.i68632:9.8.2-0.17.rc1.el6base……[root@linuxA桌面]#yum-yinstallbind[root@linuxA桌面]#systemctlstartnamed[root@linuxA桌面]#ps-ef|grepnamed步骤3配置DNS服务。(1)在server1上配置主DNS服务。①在配置文件/etc/named.conf中添加区域。[root@linuxA桌面]#vim/etc/named.confoptions{listen-onport53{any;};listen-on-v6port53{::1;};directory"/var/named";dump-file"/var/named/data/cache_dump.db";statistics-file"/var/named/data/named_stats.txt";memstatistics-file"/var/named/data/named_mem_stats.txt";allow-query{any;};recursionyes;……zone""IN{typemaster;file".zone";allow-update{none;};};zone"159.168.192."IN{typemaster;file"192.168.159.rev";allow-update{none;};};②验证DNS配置文件。③创建正向区域文件。[root@linuxA桌面]#named-checkconf[root@linuxA桌面]#cd/var/named/[root@linuxAnamed]#vim.zone$TTL86400@INSOA..(20140801;serial(d.adams)3H;refresh15M;retry1W;expiry1D);minimumINNS.INMX5.wwwINAmailINA0ftpINCNAMEwwwdnsINA④验证正向区域文件。⑤创建反向区域文件。其中,尾行中的9为主DNS服务器IP地址的主机部分。[root@linuxAnamed]#named-checkzone.zone[root@linuxAnamed]#cp.zone192.168.159.rev[root@linuxAnamed]#vim192.168.159.rev$TTL86400@INSOA..(42;serial(d.adams)3H;refresh15M;retry1W;expiry1D);minimum@INNS.9INPTR.⑥验证反向区域文件。⑦在server1上修改DNS配置文件。⑧在server1上验证DNS解析。[root@linuxAnamed]#named-checkzone159.168.192.192.168.159.rev[root@linuxAnamed]#vim/etc/resolv.confnameservernameserver0[root@localhostnamed]#systemctlrestartnamed[root@linuxAnamed]#nslookup>Server: Address: #5392. name=.>Server: Address: #53Name: Address:⑨将server1设置为宽容模式。[root@localhostnamed]#systemctlstopfirewalld[root@localhostnamed]#setenforce0注意:setenforce命令只能将selinux暂时关闭,当系统重启后,selinux会重新打开,如要永久关闭,需要在/etc/selinux/config文件中设置SELINUX=disabled。(2)在server2上配置从DNS服务。①在配置文件/etc/named.conf中添加区域。[root@linuxB桌面]#vim/etc/named.conf……zone""IN{typeslave;file".zone";masters{;};};zone"159.168.192."IN{typeslave;file"192.168.159.rev";masters{;};};②验证DNS配置文件。③设置named组用户对named目录有修改权限。④将server2设置为宽容模式。[root@linuxB桌面]#named-checkconf[root@linuxB桌面]#chmodg+w/var/named/[root@localhost~]#systemctlstopfirewalld[root@localhost~]#setenforce0⑤在server2上修改DNS配置文件。⑥重启DNS服务。⑦验证结果。[root@linuxB桌面]#vim/etc/resolv.confnameservernameserver0[root@localhost~]#systemctlrestartnamed[root@linuxB桌面]#ls/var/named/192.168.159.revdatanamed.canamed.localhostslaves.zonedynamicnamed.emptynamed.loopback⑧在server2上验证DNS解析。[root@linuxB桌面]#nslookup>Server: Address: #5392. name=.>Server: Address: #53Name: Address:(3)验证DNS服务。[root@linuxB桌面]#dig[root@linuxB桌面]#dig[root@linuxB桌面]#dig-tMX[root@linuxB桌面]#dig-tCNAME

步骤4保护DNS服务器自身安全。

(1)隔离DNS服务器。DNS服务器要专用,不要在DNS服务器上运行其他服务,避免出现较多漏洞。尽量使用普通用户登录,避免管理员登录,或者为DNS服务器指定专门的管理用户。

(2)隐藏DNS服务器版本号。

网络攻击者对DNS服务器进行攻击前,首先使用dig命令查询到BIND的版本号,接着根据BIND版本号查询该版本DNS服务存在的漏洞,然后确定攻击DNS服务器的方法,由此进行有针对性的攻击。

需要对DNS服务器进行配置,隐藏DNS服务器的版本号,使攻击者无法查询到DNS服务器的版本信息。①查询BIND的版本号。②编辑BIND配置文件,在配置文件中设置版本号信息。[root@linuxA~]#dig@txtchaosversion.bind;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6<<>>@txtchaosversion.bind……;;ANSWERSECTION:version.bind. 0 CH TXT "9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6";;AUTHORITYSECTION:……[root@linuxA~]#vim/etc/named.confoptions{……directory"/var/named";version"unknowonthisplatform";……③重启DNS服务器。④再次查询DNS版本号。通过上述测试可以看出,攻击者无法查询到DNS的版本信息,只能看到设置后的版本信息。[root@linuxA~]#systemctlrestartnamed[root@linuxA~]#dig@txtchaosversion.bind;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6<<>>@txtchaosversion.bind……version.bind. 0 CH TXT "unknowonthisplatform"……

(3)避免透露DNS服务器信息。

为了使攻击者更难进行攻击,尽量不要在DNS配置文件中使用HINFO和TXT资源记录,尽量隐藏服务器信息,使潜在的黑客更难得手。

(4)以最小的权限及使用chroot()方式运行BIND。

以root身份执行BIND有安全隐患,攻击者若找到BIND的安全漏洞,可能获取root的身份,从而对服务器进行攻击。①变更DNS的UID和GID。

改变运行DNS的所属用户ID和组ID,避免使用根权限用户身份运行DNS。

定义域名服务器运行时所使用的UID和GID必须为named组中的用户,丢弃启动时所需要的root用户。[root@linuxA~]#named-unamed②以chroot()的方式执行BIND,可以将危害降至最低。设置chroot的环境后,可以使用以下命令修改运行的用户。

指定当DNS服务器进程处理完命令行参数后所要chroot()的目录为/var/named。[root@linuxA~]#named-unamed-t/var/named2.保护DNS服务器免于Spoofing攻击

步骤5保护DNS服务器免于Spoofing攻击。Spoofing攻击是指欺骗攻击,冒名者使用提供假的网域名称与网址的对照信息,可以将不知情用户的网页联机,引导至错误的网站,原本属于用户的电子邮件也可能遗失,甚至进一步成为阻断服务的攻击。

若DNS服务器接受来自Internet的递归查询请求,易遭受Spoofing攻击,导致攻击者修改DNS服务器的区域文件,使其他用户解析域名时,得到伪造的名称信息。

(1)关闭rescursion功能。

关闭rescursion功能后,DNS服务器只会响应非递归的询问请求。

无递归功能的DNS服务器不易遭受Spoofing攻击,因为它不会发送递归查询请求,所以也不会显示所管区域以外的任何数据。如果DNS服务器还需为合法的解析器提供服务,或是充当其他DNS服务器的代理查询服务器,就不能关闭rescursion功能。增强DNS服务器的安全方法是限制查询请求的服务对象。

可以通过修改配置文件/etc/named.conf的方法限制查询请求的服务对象。

(2)关闭gluefetching功能。

当DNS服务器返回一个域的域名服务器记录,并且域名服务器记录中没有查询记录时,DNS服务器会尝试获取一条记录,即gluefetching,攻击者可以利用它进行DNS欺骗。

关闭gluefetching功能,可避免DNS服务器发送出任何查询请求,不会获取所管区域以外的任何数据。options{…….allow-query{any;};

recursionno;…….}修改配置文件/etc/named.conf关闭gluefetching功能。options{……allow-query{any;};recursionno;

fetch-glueno;……}

(3)限制查询请求的服务对象。

限制查询范围的各服务器的设置方案如下:①如果无法关闭rescursion功能,应该限制查询请求的服务对象。a.限制询问请求的来源(IP地址)。b.限制可以查询的区域范围。②DNS服务器应该拒绝来自以下网络的询问请求:a.私有网络(除非本机也在使用)。b.实验性网络。c.群播网络。③一般的DNS服务器。a.对所管区域的名称信息,可以服务于来自任何IP地址的查询请求,因为它是经授权管理该区域的权威DNS服务器。b.对于所管区域以外的名称信息,只服务于来自内部或可信赖的IP地址的查询请求。

④caching-onlyDNS服务器(DNS缓存服务器)。

由于DNS缓存服务器是用来存储计算机网络上的用户需要的网页、文件等信息的专用服务器,所以它应该只服务于来自特定IP地址的解析器。

⑤authoritative-onlyDNS服务器(权威DNS服务器)。

权威型DNS服务器只关注自己负责的区域相关请求,不理会其他区域相关的请求。这类服务器对于自己所负责的区域请求可以很快响应,不响应递归请求,在DNS系统中从来只做服务器而不做客户端。因此,对于权威型DNS必须服务于来自任何IP地址的询问请求,但是拒绝任何递归的询问请求。

限制查询请求的具体配置为:

设置后,所有的用户都可以访问的DNS服务器,但是只有192.168.159.0/24网段的主机用户可以请求DNS服务器的任意服务,另外也不允许其他网段的主机进行递归询问。[root@linuxA~]#vim/etc/named.confoptions{……allow-query{/24;};……zone""IN{typemaster;file".zone";allow-update{none;};allow-query{any;};};…….}3.保护区域传输的安全

步骤6保护区域传输的安全。

默认情况下,BIND区域传输是全部开放的,如果没有限制,DNS服务器允许对任何人都进行区域传输,那么网络架构中的主机名、主机IP列表、路由器名和路由IP列表,甚至包括各主机所在的位置和硬件配置等情况都很容易被入侵者获取,因此要对区域传输进行必要的限制。(1)在server2上,删除区域配置文件。[root@linuxB桌面]#cd/var/named[root@linuxBnamed]#rm-rf.zone[root@linuxBnamed]#rm-rf192.168.159.rev(2)配置DNS服务,只允许在和00之间进行区域传输。①在server1上,编辑DNS配置文件,限制区域传输。[root@linuxA~]#vim/etc/named.conf……acl"zone-transfer"{;00;};zone""IN{typemaster;file".zone";allow-update{none;};allow-transfer{"zone-transfer";};allow-query{any;};};zone"159.168.192."IN{typemaster;file"192.168.159.rev";allow-update{none;};allow-transfer{"zone-transfer";};};②在server1上重启DNS服务。③在server2上清空日志文件。④在server2上重启DNS服务。⑤在server2上查看区域配置文件是否存在。[root@linuxA~]#systemctlrestartnamed[root@linuxB~]#echo"">/var/log/messages[root@linuxB~]#systemctlrestartnamed[root@linuxBnamed]#ls/var/nameddatanamed.canamed.localhostslavesdynamicnamed.emptynamed.loopback⑥在server2上查看日志。

由于区域传输被限制在和00之间,server2尝试从server1获取正向解析文件和反向解析文件失败。[root@linuxBnamed]#cat/var/log/messages……Jun1315:51:19linuxBnamed[8083]:zone159.168.192./IN:Transferstarted.Jun1315:51:19linuxBnamed[8083]:transferof'159.168.192./IN'from#53:connectedusing0#60292Jun1315:51:19linuxBnamed[8083]:transferof'159.168.192./IN'from#53:failedwhilereceivingresponses:REFUSEDJun1315:51:19linuxBnamed[8083]:transferof'159.168.192./IN'from#53:Transfercompleted:0messages,0records,0bytes,0.001secs(0bytes/sec)(3)配置DNS服务,只允许在server1和server2之间进行区域传输。①在server1上,编辑DNS配置文件,限制区域传输。这样,只有IP地址为和0两台主机才能与DNS服务器进行区域传输。[root@linuxA~]#vim/etc/named.conf……acl"zone-transfer"{;0;};zone""IN{typemaster;file".zone";allow-update{none;};allow-transfer{"zone-transfer";};allow-query{any;};};zone"159.168.192."IN{typemaster;file"192.168.159.rev";allow-update{none;};allow-transfer{"zone-transfer";};};②在server1上重启DNS服务。③在server2上清空日志文件。④在server2上重启DNS服务。⑤在server2上查看区域配置文件是否存在。结果显示,server2已经重新获得了从server1传输的正向解析文件和反向解析文件。[root@linuxA~]#systemctlrestartnamed[root@linuxB~]#echo"">/var/log/messages[root@linuxB~]#systemctlrestartnamed[root@linuxBnamed]#ls/var/named192.168.159.revdatanamed.canamed.localhostslaves.zonedynamicnamed.emptynamed.loopback⑥在server2上查看日志。server2从server1获取DNS正向解析文件和反向解析文件。[root@linuxBnamed]#cat/var/log/messages……Jun1315:12:38linuxBnamed[7882]:zone159.168.192./IN:Transferstarted.Jun1315:12:38linuxBnamed[7882]:transferof'159.168.192./IN'from#53:connectedusing0#59542Jun1315:12:38linuxBnamed[7882]:zone159.168.192./IN:transferredserial42Jun1315:12:38linuxBnamed[7882]:transferof'159.168.192./IN'from#53:Transfercompleted:1messages,4records,160bytes,0.001secs(160000bytes/sec)4.保护动态更新的安全

步骤7保护动态更新的安全。

通过限制动态更新,限制允许向本DNS服务器提交动态DNS更新的主机IP列表,只有经授权的更新者才可以修改区域中的记录。[root@linuxA~]#vim/etc/named.conf……acl"zone-transfer"{;0;};acl“updater”{1;};//dhcpserverzone""IN{typemaster;file".zone";allow-update{updater;};allow-transfer{"zone-transfer";};allow-query{any;};};zone"159.168.192."IN{typemaster;file"192.168.159.rev";allow-update{updater;};allow-transfer{"zone-transfer";};};5.使用TSIG保护DNS服务器

步骤8使用TSIG保护DNS服务器。TSIG使用数字签名验证DNS信息。首先在主机上产生加密密钥,然后以SSH方式传递给从机,设定从机以密钥签署送往主机的区域传送要求;反之亦然,提供服务给经密钥签署过的动态更新要求。

(1)在server1上,产生加密密钥。[root@linuxA桌面]#dnssec-keygen-aHMAC-MD5-b128-nHOSTserver1Kserver1.+157+30472(2)查询server1的加密密钥。①查询公钥。[root@linuxA桌面]#catKserver1.+157+30472.keyserver1.INKEY5123157U7hiTmgrJNU++r3Z80M+TA==②查询私钥。[root@linuxA桌面]#catKserver1.+157+30472.privatePrivate-key-format:v1.3Algorith

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论