关键词:Linux、操作系统、网络安全、策略
1、引言
随着Internet/Intranet网络的日益普及,采用Linux网络操作系统作为服务器的用户也越来越多,这一方面是因为Linux是开放源代码的免费正版软件,另一方面也是因为较之微软的Windows NT网络操作系统而言,Linux系统具有更好的稳定性、效率性和安全性。在Internet/Intranet的大量应用中,网络本身的安全面临着重大的挑战,随之而来的信息安全问题也日益突出。以美国为例,据美国联邦调查局(FBI)公布的统计数据,美国每年因网络安全问题所造成的经济损失高达75亿美元,而全球平均每20秒钟就发生一起Internet计算机黑客侵入事件。一般认为,计算机网络系统的安全威胁主要来自黑客攻击和计算机病毒2个方面。那么黑客攻击为什么能够经常得逞呢?主要原因是很多人,尤其是很多网络管理员没有起码的网络安全防范意识,没有针对所用的网络操作系统,采取有效的安全策略和安全机制,给黑客以可乘之机。在我国,由于网络安全研究起步较晚,因此网络安全技术和网络安全人才还有待整体的提高和发展,本文希望就这一问题进行有益的分析和探讨。
我们知道,网络操作系统是用于管理计算机网络中的各种软硬件资源,实现资源共享,并为整个网络中的用户提供服务,保证网络系统正常运行的一种系统软件。如何确保网络操作系统的安全,是网络安全的根本所在。只有网络操作系统安全可靠,才能保证整个网络的安全。因此,详细分析Linux系统的安全机制,找出它可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。
2、Linux网络操作系统的基本安全机制
Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制,如果这些安全机制配置不当,就会使系统存在一定的安全隐患。因此,网络系统管理员必须小心地设置这些安全机制。
2.1 Linux系统的用户帐号
在Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成。在Linux系统中,系统将输入的用户名存放在 /etc/passwd文件中,而将输入的口令以加密的形式存放在/etc/shadow文件中。在正常情况下,这些口令和其他信息由操作系统保护,能够对其进行访问的只能是超级用户(root)和操作系统的一些应用程序。但是如果配置不当或在一些系统运行出错的情况下,这些信息可以被普通用户得到。进而,不怀好意的用户就可以使用一类被称为“口令破解”的工具去得到加密前的口令。
2.2 Linux的文件系统权限
Linux文件系统的安全主要是通过设置文件的权限来实现的。每一个Linux的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。特别注意,权限为SUID和SGID的可执行文件,在程序运行过程中,会给进程赋予所有者的权限,如果被黑客发现并利用就会给系统造成危害。
2.3 合理利用Linux的日志文件
Linux的日志文件用来记录整个操作系统使用状况。作为一个Linux网络系统管理员要充分用好以下几个日志文件。
2.3.1 /var/log/lastlog文件
记录最后进入系统的用户的信息,包括登录的时间、登录是否成功等信息。这样用户登录后只要用lastlog命令查看一下/var/log/lastlog文件中记录的所用帐号的最后登录时间,再与自己的用机记录对比一下就可以发现该帐号是否被黑客盗用。
2.3.2 /var/log/secure文件
记录系统自开通以来所有用户的登录时间和地点,可以给系统管理员提供更多的参考。
2.3.3 /var/log/wtmp文件
记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。可以用last命令查看,若想清除系统登录信息,只需删除这个文件,系统会生成新的登录信息。
3、Linux网络系统可能受到的攻击和安全防范策略
Linux操作系统是一种公开源码的操作系统,因此比较容易受到来自底层的攻击,系统管理员一定要有安全防范意识,对系统采取一定的安全措施,这样才能提高Linux系统的安全性。对于系统管理员来讲特别是要搞清楚对Linux网络系统可能的攻击方法,并采取必要的措施保护自己的系统。
3.1 Linux网络系统可能受到的攻击类型
3.1.1 “拒绝服务”攻击
所谓“拒绝服务”攻击是指黑客采取具有破坏性的方法阻塞目标网络的资源,使网络暂时或永久瘫痪,从而使Linux网络服务器无法为正常的用户提供服务。例如黑客可以利用伪造的源地址或受控的其他地方的多台计算机同时向目标计算机发出大量、连续的TCP/IP请求,从而使目标服务器系统瘫痪。
3.1.2 “口令破解”攻击
口令安全是保卫自己系统安全的第一道防线。“口令破解”攻击的目的是为了破解用户的口令,从而可以取得已经加密的信息资源。例如黑客可以利用一台高速计算机,配合一个字典库,尝试各种口令组合,直到最终找到能够进入系统的口令,打开网络资源。
3.1.3 “欺骗用户”攻击
“欺骗用户”攻击是指网络黑客伪装成网络公司或计算机服务商的工程技术人员,向用户发出呼叫,并在适当的时候要求用户输入口令,这是用户最难对付的一种攻击方式,一旦用户口令失密,黑客就可以利用该用户的帐号进入系统。
3.1.4 “扫描程序和网络监听”攻击
许多网络入侵是从扫描开始的,利用扫描工具黑客能找出目标主机上各种各样的漏洞,并利用之对系统实施攻击。
网络监听也是黑客们常用的一种方法,当成功地登录到一台网络上的主机,并取得了这台主机的超级用户控制权之后,黑客可以利用网络监听收集敏感数据或者认证信息,以便日后夺取网络中其他主机的控制权。
3.2 Linux网络安全防范策略
纵观网络的发展历史,可以看出,对网络的攻击可能来自非法用户,也可能来自合法的用户。因此作为Linux网络系统的管理员,既要时刻警惕来自外部的黑客攻击,又要加强对内部网络用户的管理和教育,具体可以采用以下的安全策略。
3.2.1 仔细设置每个内部用户的权限
为了保护Linux网络系统的资源,在给内部网络用户开设帐号时,要仔细设置每个内部用户的权限,一般应遵循“最小权限”原则,也就是仅给每个用户授予完成他们特定任务所必须的服务器访问权限。这样做会大大加重系统管理员的管理工作量,但为了整个网络系统的安全还是应该坚持这个原则。
3.2.2 确保用户口令文件/etc/shadow的安全
对于网络系统而言,口令是比较容易出问题的地方,作为系统管理员应告诉用户在设置口令时要使用安全口令(在口令序列中使用非字母,非数字等特殊字符)并适当增加口令的长度(大于6个字符)。系统管理员要保护好/etc/passwd和/etc/shadow这两个文件的安全,不让无关的人员获得这两个文件,这样黑客利用John等程序对/etc/passwd和/etc/shadow文件进行了字典攻击获取用户口令的企图就无法进行。系统管理员要定期用John等程序对本系统的/etc/passwd和/etc/shadow文件进行模拟字典攻击,一旦发现有不安全的用户口令,要强制用户立即修改。
3.2.3 加强对系统运行的监控和记录
Linux网络系统管理员,应对整个网络系统的运行状况进行监控和记录,这样通过分析记录数据,可以发现可疑的网络活动,并采取措施预先阻止今后可能发生的入侵行为。如果进攻行为已经实施,则可以利用记录数据跟踪和识别侵入系统的黑客。
3.2.4 合理划分子网和设置防火墙
如果内部网络要进入Internet,必须在内部网络与外部网络的接口处设置防火墙,以确保内部网络中的数据安全。对于内部网络本身,为了便于管理,合理分配IP地址资源,应该将内部网络划分为多个子网,这样做也可以阻止或延缓黑客对整个内部网络的入侵。
3.2.5 定期对Linux网络进行安全检查
Linux网络系统的运转是动态变化的,因此对它的安全管理也是变化的,没有固定的模式,作为Linux网络系统的管理员,在为系统设置了安全防范策略后,应定期对系统进行安全检查,并尝试对自己管理的服务器进行攻击,如果发现安全机制中的漏洞应立即采取措施补救,不给黑客以可乘之机。
3.2.6 制定适当的数据备份计划确保系统万无一失
没有一种操作系统的运转是百分之百可靠的,也没有一种安全策略是万无一失的,因此作为Linux系统管理员,必须为系统制定适当的数据备份计划,充分利用磁带机、光盘刻录机、双机热备份等技术手段为系统保存数据备份,使系统一旦遭到破坏或黑客攻击而发生瘫痪时,能迅速恢复工作,把损失减少到最小。
4、加强对Linux网络服务器的管理,合理使用各种工具
4.1 利用记录工具,记录对Linux系统的访问
Linux系统管理员可以利用前面所述的记录文件和记录工具记录事件,可以每天查看或扫描记录文件,这些文件记录了系统运行的所有信息。如果需要,还可以把高优先级的事件提取出来传送给相关人员处理,如果发现异常可以立即采取措施。
4.2 慎用Telnet服务
在Linux下,用Telnet进行远程登录时,用户名和用户密码是明文传输的,这就有可能被在网上监听的其他用户截获。另一个危险是黑客可以利用Telnet登入系统,如果他又获取了超级用户密码,则对系统的危害将是灾难性的。因此,如果不是特别需要,不要开放Telnet服务。如果一定要开放Telnet服务,应该要求用户用特殊的工具软件进行远程登录,这样就可以在网上传送加密过的用户密码,以免密码在传输过程中被黑客截获。
4.3 合理设置NFS服务和NIS服务
NFS(Network File System)服务,允许工作站通过网络共享一个或多个服务器输出的文件系统。但对于配置得不好的NFS服务器来讲,用户不经登录就可以阅读或者更改存储在NFS服务器上的文件,使得NFS服务器很容易受到攻击。如果一定要提供NFS服务,要确保基于Linux的NFS服务器支持Secure RPC(Secure Remote Procedure Call),以便利用DES(Data Encryption Standard)加密算法和指数密钥交换(Exponential Key Exchange)技术验证每个NFS请求的用户身份。
NIS(Network Information System)服务,是一个分布式数据处理系统,它使网络中的计算机通过网络共享passwd文件,group文件,主机表文件和其他共享的系统资源。通过NIS服务和NFS服务,在整个网络中的各个工作站上操作网络中的数据就像在操作和使用单个计算机系统中的资源一样,并且这种操作过程对用户是透明的。但是NIS服务也有漏洞,在NIS系统中,不怀好意的用户可以利用自己编写的程序来模仿Linux系统中的ypserv 响应ypbind的请求,从而截获用户的密码。因此,NIS的用户一定要使用ypbind的secure选项,并且不接受端口号小于1024(非特权端口)的ypserv响应。
4.4 小心配置FTP服务
FTP服务与前面讲的Telnet服务一样,用户名和用户密码也是明文传输的。因此,为了系统的安全,必须通过对/etc/ftpusers文件的配置,禁止root,bin,daemon,adm等特殊用户对FTP服务器进行远程访问,通过对/etc/ftphosts的设定限制某些主机不能连入FTP服务器,如果系统开放匿名FTP服务,则任何人都可以下载文件(有时还可以上载文件),因此,除非特别需要一般应禁止匿名FTP服务。
4.5 合理设置POP-3和Sendmail等电子邮件服务
对一般的POP-3服务来讲,电子邮件用户的口令是按明文方式传送到网络中的,黑客可以很容易截获用户名和用户密码。要想解决这个问题,必须安装支持加密传送密码的POP-3服务器(即支持Authenticated POP命令),这样用户在往网络中传送密码之前,可以先对密码加密。
老版本的Sendmail邮件服务器程序存在安全隐患,为了确保邮件服务器的安全,应尽可能安装已消除安全隐患的最新版的Sendmail服务器软件。
4.6 加强对WWW服务器的管理,提供安全的WWW服务
当一个基于Linux系统的网站建立好之后,绝大部分用户是通过Web服务器,利用WWW浏览器对网络进行访问的,因此必须特别重视Web服务器的安全,无论采用哪种基于HTTP协议的Web服务器软件,都要特别关注CGI脚本(Common Gateway Interface),这些CGI脚本是可执行程序,一般存放在Web服务器的CGI-BIN目录下面,在配置Web服务器时,要保证CGI可执行脚本只存放于CGI-BIN目录中,这样可以保证脚本的安全,且不会影响到其他目录的安全。
4.7 最好禁止提供finger 服务
在Linux系统下,使用finger命令,可以显示本地或远程系统中目前已登录用户的详细信息,黑客可以利用这些信息,增大侵入系统的机会。为了系统的安全,最好禁止提供finger服务,即从/usr/bin下删除finger 命令。如果要保留 finger服务,应将finger文件换名,或修改权限为只允许root用户执行finger命令。
5、结束语
由于Linux操作系统使用广泛,又公开了源码,因此是被广大计算机用户研究得最彻底的操作系统,而Linux本身的配置又相当的复杂,按照前面的安全策略和保护机制,可以将系统的风险降到最低,但不可能彻底消除安全漏洞,作为Linux系统的管理员,头脑中一定要有安全防范意识,定期对系统进行安全检查,发现漏洞要立即采取措施,不给黑客以可乘之机。本文所述的安全措施已在红旗Linux 1.0 和蓝点Linux上获得验证,并实际应用于我院图书馆计算机集成管理系统中,确保了我院图书馆计算机集成管理系统安全、稳定地运转。