中国移动DNS服务器安全配置手册教学提纲.doc
《中国移动DNS服务器安全配置手册教学提纲.doc》由会员分享,可在线阅读,更多相关《中国移动DNS服务器安全配置手册教学提纲.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。中国移动DNS服务器安全配置手册-密级:文档编号:项目代号:中国移动企业信息化系统DNS服务器安全配置手册Version*1.*0中国移动通信有限公司二零零四年十一月拟制:审核:批准:会签:标准化:-版本控制版本号日期参与人员更新说明分发控制编号读者文档权限与文档的主要关系1创建、修改、读取负责编制、修改、审核2批准负责本文档的批准程序3标准化审核作为本项目的标准化负责人,负责对本文档进行标准化审核4读取5读取1常见的DNS攻击61.1区域传输61.2版本发现61.3DoS攻击61.4缓存破坏(cach
2、epoisoning)71.5缓冲区溢出71.6其他攻击技术72现有的DNS攻击防范措施82.1限制区域传输82.2限制版本欺骗82.3减轻DoS所造成的损失82.4防御缓存破坏82.5防御缓冲区溢出92.6应用Bogon过滤92.7SplitDNS92.8用路由器和防火墙做DNS的安全防护93BIND安全配置103.1配置环境:103.2启动安全选项103.3配置文件中的安全选项103.3.1安全日志文件113.3.2隐藏版本信息113.3.3禁止DNS域名递归查询113.3.4增加出站查询请求的ID值的随机性123.3.5限制对DNS服务器进行域名查询的主机123.3.6限制对DNS服务器
3、进行域名递归查询的主机123.3.7指定允许哪些主机向本DNS服务器提交动态DNS更新123.3.8限制对DNS服务器进行区域记录传输的主机133.3.9指定不接受哪些服务器的区域记录传输请求133.3.10一些资源限制选项133.3.11定义ACL地址名143.3.12控制管理接口143.4通过TSIG对区域记录传输进行认证和校验153.4.1用TSIG签名来进行安全的DNS数据库手工更新153.4.2对区域记录传输(自动或手工)进行TSIG签名163.5实现BIND的chroot173.5.1chroot虚拟根环境173.5.2操作方法184Windows2000DNS安全配置(MSDNS
4、)214.1开启日志功能224.2定期更新根服务器信息234.3禁止区域文件动态更新244.4禁止区域传输254.5其它设置265安全检查列表271常见的DNS攻击目前DNS受到的网络攻击大致有这么几种:区域传输、版本发现、DoS、高速缓存破坏、缓冲区溢出等。1.1区域传输进行区域传输攻击DNS的方法是执行无限制的区域传输或捏造许可证,造成的后果是主管的域名信息泄露。区域传输一般用于主DNS服务器和辅DNS服务器之间的数据同步,DNS服务器可以从主服务器获取最新区数据文件的副本,也就可以获得整个授权区域内的所有主机信息。一旦这些信息泄漏,攻击者就可以根据它轻松地推测主服务器的网络结构,并从这些
5、信息中判断其功能或发现那些防范措施较弱的机器。1.2版本发现发现软件版本有助于攻击者探测服务器。利用版本发现攻击DNS的方法是查询版本文件,造成的后果是软件版本泄密。软件版本信息很少被用到,应该被改变或清空。BIND(BerkeleyInternetNameDomain)DNS守护进程会响应许多dig版本查询,允许远程攻击者识别它的版本。1.3DoS攻击Dos是DenialofService的缩写,意为拒绝服务。DoS攻击是网络上一种简单但很有效的破坏性攻击手段,其中SYNFlood攻击是最为常见的DoS攻击方式。SYNFlood攻击就是攻击者利用伪造的IP地址,连续向被攻击的服务器发送大量的
6、SYN包。被攻击的服务器收到这些SYN包后,连续向那些虚假的客户机(伪造的IP地址指向的客户机)发送ACK确认包。很显然,服务器是不会收到ACK确认包的,于是服务器就只能等待了。当服务器因超时而丢弃这个包后,攻击者虚假的SYN包又源源不断地补充过来。在这个过程中,由于服务器不停顿地处理攻击者的SYN包,从而正常用户发送的SYN包会被丢弃,得不到处理,从而造成了服务器的拒绝服务。1.4缓存破坏(cachepoisoning)这是DNS面临的一种很普遍的攻击它利用了DNS的缓存机制使某个名字服务器在缓存中存入错误的数据。当某名字服务器A收到递归查询请求,而A的数据库内没有相应的资源记录,那么它就会
7、转发给名字服务器B,B做出应答,把回答放在报文的回答区中,同时又会在附加区中填充一些和查询不太相关的数据,A接收这条应答报文,而且对附加区中的数据不做任何检查,直接放在缓存中。这样使得攻击者可以通过在B中存放一些错误的数据,让A把这些错误的数据存放在缓存中。在这些数据的生存期TTL内,A又可能会把它们发送给别的服务器,导致更多的服务器缓存中毒。虽然缩短缓存数据的TTL能减小受害面,但这种方法会给服务器的性能带来负面影响。1.5缓冲区溢出和任何其他应用程序一样,DNS也容易出现内存溢出。授权DNS服务器可以和Internet的任何系统交互,所以DNS已经成为缓冲区溢出漏洞最普遍的受害者。1.6其
8、他攻击技术如果攻击者可以嗅探网络流量,后果将是不可预料的。欺骗区域传输、欺骗查询应答和中间人攻击都很容易进行。网络泄密是较高风险的漏洞。对于一次恶意攻击来说,攻击一台DNS就像逆向工作。通过中间人进行的DNS查询欺骗完全可以被攻击者控制。查询流量通常是由UDP完成的,并且只交换公开信息。2现有的DNS攻击防范措施DNS服务器最常见的安全措施就是限制谁能访问它:服务器只需要和有限的终端客户端通信。限制访问可以阻止未授权用户使用服务器,从而有可能阻止查看漏洞级别的行为。为了尽量减少暴露的漏洞,除了打开有数据进出的授权服务器的UDP端口53外,所有的端口都应该禁止Internet访问。在一些特殊情况
9、下,TCP端口53也需要打开,但应该尽可能将其关闭。2.1限制区域传输可以禁用区域传输,而使用rsync软件(http:/rsync.samba.org)进行安全的文件同步。在DNS守护进程外部,通过加密通道进行区域文件同步,可以很好地分离守护进程操作和数据同步操作。如果区域传输被禁止,攻击者将接收到传输失败的消息。2.2限制版本欺骗通过相应的设置限制版本欺骗。2.3减轻DoS所造成的损失许多操作系统特性可以遏制SYN包攻击,并且许多类似的网络设备可以验证包和丢掉欺骗包。防御DoS攻击的最好方法是采用事故反应计划和IDS传感器数据。2.4防御缓存破坏缓存破坏很容易防御。所有DNS守护进程都可以
10、选择关闭缓存。如果缓存不能用,对服务器所做出的虚假回应就没有意义。大多数最新的守护进程已经有了针对缓存破坏的补丁。2.5防御缓冲区溢出许多工具可以防止未授权溢出。防缓冲区溢出的编辑器如stackguard(http:/www.immunix.org/products.html#stackguard)应该和最新的DNS守护进程相结合。但是,虽然在chroot环境中运行守护进程和限制访问可以限制暴露点,真正阻止缓冲区溢出需要一个从底层开始就安全的平台。一个安全的操作系统和守护进程是减少缓冲区溢出的最好的工具。2.6应用Bogon过滤拦截无效和无用的InternetIP地址,可以减少DoS攻击时的网
11、络负担,有助于通知网管关注网络问题。在网络边界,防火墙和应用程序访问控制列表内部,应用RobThomas的BogonList,可以可靠地清除不需要的网络流量,并防止滥用网络。BogonList见:2.7SplitDNS采用SplitDNS技术把DNS系统划分为内部和外部两部分,外部DNS系统位于公共服务区,负责正常对外解析工作:内部DNS系统则专门负责解析内部网络的主机。当内部要查询Internet上的域名时。就把查询任务转发到外部DNS服务器上,然后由外部DNS服务器完成查询任务。把DNS系统分成内外两个部分的好处在于Internet上其它用户只能看到外部DNS系统中的服务器,而看不见内部的
12、服务器。而且只有内外DNS服务器之间才交换DNS查询信息,从而保证了系统的安全性。采用这种技术可以有效地防止信息泄漏。2.8用路由器和防火墙做DNS的安全防护采用一些网络及安全设备能更有效的保护DNS的安全。如果在没有防火墙的情况下,可以直接在路由器上设置ACL访问控制列表,只允许对DNS的TCP和UDP的53端口进行访问,其余访问一律丢弃;如果采用防火墙来保护则能起到更好效果,同样的对DNS的访问除了TCP和UDP的53端口开放之外,拒绝其他的所有访问。同时,当前主流的防火墙如CheckPoint和Netcreen等都有防DNS欺骗的功能,即使其他非DNS的访问或攻击行为通过封装成53端口伪
13、造成正常的DNS请求,防火墙也可以对这些虚假请求进行检查,只要是不符合DNS服务的标准,则一律过滤,保证攻击行为无法通过53端口来穿透防火墙。3安全配置DNS守护进程3.1加固操作系统安装任何守护进程之前,安全可靠的操作系统应该是一个先决条件。在UNIX/LINUX系统上,chroot是一种减小系统暴露程度来降低由后台进程引起的安全问题的有效方法。chroot是一个相当简单的概念,运行在chroot封闭环境中的应用程序,不能和封闭环境外的文件系统的任何部分进行交互。在这样的环境中运行BIND,能够增加DNS系统的安全性。对于Windows系统来说,应该及时安装Windows系统关键安全更新补丁
14、,防止利用Windows操作系统漏洞而造成的攻击。3.2BIND安全配置3.1、配置环境:FreeBSD4.1-RELEASE;BIND8.2.3。3.2、启动安全选项named进程启动选项:-r:关闭域名服务器的递归查询功能(缺省为打开)。该选项可在配置文件的options中使用recursion选项覆盖。-u和-g:定义域名服务器运行时所使用的UID和GID。这用于丢弃启动时所需要的root特权。-t:指定当服务器进程处理完命令行参数后所要chroot()的目录。3.3、配置文件中的安全选项Solais、FreeBSD、Linux等系统,Bind的配置文件为:/etc/named.conf
15、3.3.1、安全日志文件操作方法:假如希望记录安全事件到文件中,但同时还希望保持原有的日志模式,可以添加以下内容:loggingchannelmy_security_channelfilemy_security_file.logversions3size20m;severityinfo;categorysecuritymy_security_channel;default_syslog;default_debug;其中my_security_channel是用户自定义的channel名字,my_security_file.log是安全事件日志文件,可包含全路径(否则是以named进程工作目录为
16、当前目录)。安全事件日志文件名为my_security_file.log,保存三个最近的备份(my_security_file.log0、my_security_file.log1、my_security_file.log2),日志文件的最大容量为20MB,(如果达到或超这一数值,直到该文件被再次打开前,将不再记录任何日志消息。缺省(省略)时是没有大小限制的。)操作结果:日志记录完整,所有异常问题都会在日志文件记录。3.3.2、隐藏版本信息操作方法:在options节中增加自定义的BIND版本信息,可隐藏BIND服务器的真正版本号。versionWhoknows?;/version9.9.9;
17、操作结果:此时如果通过DNS服务查询BIND版本号时,返回的信息就是Whoknows?,隐藏了真实的版本号。3.3.3、禁止DNS域名递归查询操作方法要禁止DNS域名递归查询,在options(或特定的zone区域)节中增加:recursionno;fetch-glueno;操作结果防止了DNS域名的递归查询。3.3.4、增加出站查询请求的ID值的随机性操作方法在options节中增加:use-id-poolyes;则服务器将跟踪其出站查询ID值以避免出现重复,并增加随机性。注意这将会使服务器多占用超过128KB内存。(缺省值为no操作结果服务器将跟踪其出站查询ID值以避免出现重复,并增加随机
18、性。注意这将会使服务器多占用超过128KB内存,缺省值为no。)3.3.5、限制对DNS服务器进行域名查询的主机操作方法在options(或特定的zone区域)节中增加:allow-query;address_match_list是允许进行域名查询的主机IP列表,如1.2.3.4;5.6.7/24;。操作结果限制对DNS服务器进行域名查询的主机。3.3.6、限制对DNS服务器进行域名递归查询的主机操作方法在options(或特定的zone区域)节中增加:allow-recursion;address_match_list是允许进行域名递归查询的主机IP列表,如1.2.3.4;5.6.7/24;
19、。操作结果限制了对DNS进行域名递归查询的主机。3.3.7、指定允许哪些主机向本DNS服务器提交动态DNS更新操作方法:在options(或特定的zone区域)节中增加:allow-update;address_match_list是允许向本DNS服务器提交动态DNS更新的主机IP列表,如1.2.3.4;5.6.7/24;。缺省时为拒绝所有主机的提交。操作结果缺省时为拒绝所有主机的提交,完成操作后只有指定的主机可以提交动态DNS更新。3.3.8、限制对DNS服务器进行区域记录传输的主机操作方法在options(或特定的zone区域)节中增加:allow-transfer;address_mat
20、ch_list是允许进行区域记录传输的主机IP列表,如1.2.3.4;5.6.7/24;。操作结果只有特定的主机可以进行区域传输,降低了受区域传输攻击的风险。3.3.9、指定不接受哪些服务器的区域记录传输请求操作方法在options(或特定的zone区域)节中增加:blackhole;address_match_list是不接受区域记录传输请求的主机IP列表,如1.2.3.4;5.6.7/24;。操作结果不允许特定的主机进行区域传输,降低了受区域传输攻击的风险。3.3.10、一些资源限制选项l 操作方法不同用户可根据实际情况灵活设置,但一定要注意不当的设置会损失DNS服务的性能。coresiz
21、e;/coredump的最大值。缺省为default。datasize;/服务器所使用的最大数据段内存。缺省为default。files;/服务器能同时打开的最大文件数。缺省为/unlimited(不限制)。/(注意,并非所有操作系统都支持这一选项。)max-ixfr-log-size;/(目前版本暂不使用。)限制增量区域记录传输时会话日志的大小。stacksize;/服务器所使用的最大堆栈段内存。缺省为default。操作结果不同用户可根据实际情况灵活设置,但一定要注意不当的设置会损失DNS服务的性能。3.3.11、定义ACL地址名操作方法即用于上面的。注意,如果要使用这里定义的列表名,必须
22、先定义,后使用!例如:aclintranet192.168/16;aclpartner!172.16.0.1;172.16/12;/除172.168.0.1外172.16.0.0/12网络中其它主机;BIND已内置以下四个ACL:all/允许所有主机none/禁止所有主机localhost/本机的所有网络接口localnets/本机所在网络操作结果此操作不会对系统产生不良影响。3.3.12、控制管理接口BIND域名服务器的一个有用功能操作方法控制管理接口controls节语法格式:controlsinetip_addrportip_portallow;unixpath_namepermnumb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国移动 DNS 服务器 安全 配置 手册 教学 提纲
限制150内