第8章网络安全本章学习目标通过对本章的学习,读者应该掌握以下主要内容:Ø计算机网络安全的基本概念及Linux系统安全Ø防火墙技术基本知识Ø用iptales实现包过滤型防火墙8.1计算机网络安全基础知识8.1.1网络安全的含义网络安全从其本质上来讲就是网络上的信息安全,其所涉及的领域相当广泛。这是因为在目前的公用通信网络中存在着各种各样的安全漏洞和威胁。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论,都是网络安全所要研究的领域。下面给出网络安全的一个通用定义:网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。因此,网络安全在不同的环境和应用中会得到不同的解释。(1)运行系统安全,即保证信息处理和传输系统的安全。包括计算机系统机房环境的保护,法律、政策的保护,计算机结构设计上的安全性考虑,硬件系统的可靠安全运行,计算机操作系统和应用软件的安全,数据库系统的安全,电磁信息泄露的防护等。它侧重于保证系统正常的运行,避免因为系统的崩溃和损坏而对系统存储、处理和传输的信息造成破坏和损失,避免由与电磁泄漏,产生信息泄露,干扰他人(或受他人干扰),本质上是保护系统的合法操作和正常运行。(2)网络上系统信息的安全。包括用户口令鉴别、用户存取权限控制、数据存取权限、方式控制、安全审计、安全问题跟踪、计算机病毒防治、数据加密等。(3)网络上信息传播的安全,即信息传播后的安全。包括信息过滤等。它侧重于防止和控制非法、有害的信息进行传播后的后果。避免公用通信网络上大量自由传输的信息失控。它本质上是维护道德、法律或国家利益。(4)网络上信息内容的安全,即讨论的狭义的“信息安全”。它侧重于保护信息的保密性、真实性和完整性。避免攻击者利用系统的安全漏洞进行窃听、冒充和诈骗等有损于合法用户的行为。它本质上是保护用户的利益和隐私。计算机网络安全的含义是通过各种计算机、网络、密码技术和信息安全技术,保护在公用通信网络中传输、交换和存储信息的机密性、完整性和真实性,并对信息的传播及内容具有控制能力。网络安全的结构层次包括:物理安全、安全控制和安全服务。可见,计算机网络安全主要是从保护网络用户的角度来进行的,是针对攻击和破译等人为因素所造成的对网络安全的威胁。而不涉及网络可靠性、信息的可控性、可用性和互操作性等领域。8.1.2网络安全的特征网络安全应具有以下四个方面的特征:(1)保密性是指信息不泄露给非授权的用户、实体或过程,或供其利用的特性。(2)完整性是指数据未经授权不能进行改变的特性,即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。(3)可用性是指可被授权实体访问并按需求使用的特性,即当需要时应能存取所需的信息。网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击。(4)可控性是指对信息的传播及内容具有控制能力。8.1.3对网络安全的威胁与网络连通性相关的有三种不同类型的安全威胁:(1)非授权访问(UnauthorizedAccess)指一个非授权用户的入侵。(2)信息泄露(DisclosureofInformation)指造成将有价值的和高度机密的信息暴露给无权访问该信息的人的所有问题。(3)拒绝服务(DenialofService)指使系统难以或不能继续执行任务的所有问题。8.1.4网络安全的关键技术从广义上讲,计算机网络安全技术主要有:(1)主机安全技术:(2)身份认证技术:(3)访问控制技术:(4)密码技术:(5)防火墙技术:(6)安全审计技术:(7)安全管理技术:8.1.5Linux系统的网络安全策略1.简介随着Internet/Intranet网络的日益普及,采用Linux网络操作系统作为服务器的用户也越来越多,这一方面是因为Linux是开放源代码的免费正版软件,另一方面也是因为较之微软的WindowsNT网络操作系统而言,Linux系统具有更好的稳定性、效率性和安全性。在Internet/Intranet的大量应用中,网络本身的安全面临着重大的挑战,随之而来的信息安全问题也日益突出。以美国为例,据美国联邦调查局(FBI)公布的统计数据,美国每年因网络安全问题所造成的经济损失高达75亿美元,而全球平均每20秒钟就发生一起Internet计算机黑客侵入事件。一般认为,计算机网络系统的安全威胁主要来自黑客攻击和计算机病毒2个方面。那么黑客攻击为什么能够经常得逞呢?主要原因是很多人,尤其是很多网络管理员没有起码的网络安全防范意识,没有针对所用的网络操作系统,采取有效的安全策略和安全机制,给黑客以可乘之机。由于网络操作系统是用于管理计算机网络中的各种软硬件资源,实现资源共享,并为整个网络中的用户提供服务,保证网络系统正常运行的一种系统软件。如何确保网络操作系统的安全,是网络安全的根本所在。只有网络操作系统安全可靠,才能保证整个网络的安全。因此,详细分析Linux系统的安全机制,找出可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。2.Linux网络操作系统的基本安全机制Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制,如果这些安全机制配置不当,就会使系统存在一定的安全隐患。因此,网络系统管理员必须小心地设置这些安全机制。(1)Linux系统的用户帐号(2)Linux的文件系统权限(3)合理利用Linux的日志文件3.Linux网络系统可能受到的攻击和安全防范策略Linux操作系统是一种公开源码的操作系统,因此比较容易受到来自底层的攻击,系统管理员一定要有安全防范意识,对系统采取一定的安全措施,这样才能提高Linux系统的安全性。对于系统管理员来讲特别是要搞清楚对Linux网络系统可能的攻击方法,并采取必要的措施保护系统。(1)Linux网络系统可能受到的攻击类型“拒绝服务”攻击、“口令破解”攻击、“欺骗用户”攻击、“扫描程序和网络监听”攻击。(2)Linux网络安全防范策略仔细设置每个内部用户的权限、确保用户口令文件/etc/shadow的安全、加强对系统运行的监控和记录、合理划分子网和设置防火墙、定期对Linux网络进行安全检查、制定适当的数据备份计划确保系统万无一失。4.加强对Linux网络服务器的管理,合理使用各种工具(1)利用记录工具,记录对Linux系统的访问(2)慎用Telnet服务(3)合理设置NFS服务和NIS服务(4)小心配置FTP服务(5)合理设置POP-3和Sendmail等电子邮件服务(6)加强对服务器的管理,提供安全的服务(7)最好禁止提供finger服务8.1.6Linux网络安全工具1.sudosudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果用户需要每天以root身份做一些日常工作,经常执行固定的几个只有root身份才能执行的命令,那么用sudo是非常适合的。下面以Redhat9.0为例,介绍sudo的安装及设置过程:一般情况下,Redhat9.0中都已经缺省安装了当前较新的版本sudo-1.6.6-3。如果你的系统中没有安装,你能从下面的地址中下载forRedhatLinux的rpmpackage。执行#rpm-ivhsudo*进行安装,然后用/usr/sbin/visudo编辑/etc/sudoers文件。sudoers这个文件是由一个选择性的主机别名(hostalias)节区,一个选择性的指令别名(commandalias)节区以及使用者说明(userspecification)节区所组成的。所有的指令别名或主机别名必须需以自己的关键字作为开始(Host_Alias/Cmnd_Alias)。使用者说明节区格式:使用者接取群组[:接取群组]...接取群组::=主机象征=[op]指令象征[,[op]指令象征]...主机象征::=一个小写的主机名称或主机别名。指令象征::=一个指令或指令别名。op::=逻辑的'!'否定运算元。主机别名节区格式:Host_Alias主机别名=主机列表Host_Alias::=这是一个关键字。主机别名::=一个大写的别名。主机列表::=以逗号间隔的一些主机名称。指令别名节区格式:Cmnd_Alias指令别名=指令列表Cmnd_Alias::=这是一个关键字。指令别名::=一个大写的别名。指令列表::=以逗号间隔的一些指令。所有在“#”符号后面的文字都会被当作是注解。太长的行可以使用倒斜线“\”字符来分成新的行。保留的别名“ALL”在“{Host,Cmnd}_Alias”里都可以使用。不要用“ALL”来定义一个别名,这个别名无效。注意到“ALL”暗示全部的主机和指令。可以使用这个语法从整个范围中减掉一些项目:userhost=ALL,!ALIAS1,!/etc/halt...2.Sniffitsniffit是一个有名的网络端口探测器,可以配置它在后台运行,以检测哪些TCP/IP端口上用户的输入/输出信息。最常用的功能是可以用它来检测系统的23(telnet)和110(pop3)端口上的数据传送以轻松得到系统的登录口令和mail帐号密码,当然,sniffit基本上是被破坏者所利用的工具。sniffit的主页在~coder/sniffit/sniffit.html用户能从那里下载最新的版本,用户在根目录运行:#tarxvfzsniff*解开所有文件到对应目录后,先仔细阅读其中的README.FIRST文件,可能有些版本需要预先进行编译才能使用。用户能运行sniffit-i以交互式图形界面查看所有在指定网络接口上的输入/输出信息。例如:为了得到所有用户通过某接口a.b.c.d接收邮件时所输入的pop3帐号和密码,用户能运行:#sniffit-p110-ta.b.c.dsniffit-p110-sa.b.c.d&记录文件放在目录/usr/doc/sniffit*下面:logfile根据访问者的IP地址,随机用高端端口号和用来检测的网络接口IP地址和检测端口来命名。它利用了TCP/IP协议天生的虚弱性,因为普通的telnet和pop3所传的用户名和密码信息都是明文,不带任何方式的加密。因此对telnet/ftp,可以用ssh/scp来替代。sniffit检测到的ssh/scp信息基本上是一堆乱码,因此不需要担心ssh所传送的用户名和口令信息会被第三方所窃取。3、nmapnmap是用来对一个比较大的网络进行端口扫描的工具,它能检测该服务器有哪些TCP/IP端口目前正处于打开状态。可以运行它来确保已经禁止掉不该打开的不安全的端口号。nmap的主页在防火墙技术8.2.1什么是防火墙防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合,是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。防火墙是提供信息安全服务,实现网络和信息安全的基础设施。在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全,如图8-1。图8-1防火墙逻辑位置示意图使用防火墙地作用如下:(1)防火墙是网络安全的屏障(2)防火墙可以强化网络安全策略(3)对网络存取和访问进行监控审计(4)防止内部信息的外泄8.2.2防火墙的三种类型1.数据包过滤型防火墙数据包过滤(PacketFiltering)技术是在