浅谈Linux系统安全问题
2013-04-29雷丽娟许敏
雷丽娟 许敏
摘 要 本文对Linux系统安全进行了简单的介绍,并从系统的用户管理和一些安全工具的使用方面阐述如何保护Linux安全。
关键词 Linux 系统安全 用户管理 安全工具
中图分类号:TP316.8 文献标识码:A
安全是当今IT相关头条新闻的重要话题。经常出现的系统漏洞和安全补丁以及病毒和蠕虫是每个使用计算机的人都耳熟能详的名词。因为几乎每台计算机系统都连接到另外的计算机或者连接到Internet,因此确保这些计算机的安全,对于减少入侵、数据窃取或丢失、误用甚至对第三方的责任而言都是至关重要的。①
Linux作为一个现代的、开放源代码的操作系统,它允许用户自由的复制和修改其源代码,用户可以根据自己的环境定制Linux、向操作系统添加新部件等,正是由于软件的每个用户和开发者都可以访问其源代码,因而有许多人在控制和审视源代码中可能的安全漏洞。软件缺陷很快会被发现。一方面,这会导致这些缺陷更早被利用;另一方面,很快就会有可用的安全补丁。
当系统连接到网络并向其他计算机提供服务时,系统就会有可能成为被攻击的对象。在这种情况下,系统漏洞可能会让入侵者控制计算机。因此,从开始计划直到拆除系统的整个系统生命周期中安全都是一个最基本的问题。
那么,如何保护Linux安全呢?
1 系统的用户管理
与其他UNIX操作系统一样,在进入Linux系统时需要验证账号和密码。Linux一般将密码加密之后,存放在/etc/passwd文件中,Linux系统上的所有用户都可以读到该文件,这种方法不太安全,因为一般的用户可以利用现成的密码破译工具,用穷举法猜测出密码。②比较安全的方法是设定影子文件/etc/shadow,通过影子文件允许特殊权限的用户阅读该文件。在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能支持影子文件。这种方法比较麻烦,比较简单的方法是采用插入式验证模块(PAM)。很多Linux系统都带有PAM,它是一种身份验证机制,可以用来动态地改变身份验证的方法和要求,而不要求重新编译其他公用程序。这是因为PAM采用封闭包的方式,将所有与身份验证有关的逻辑全部隐藏在模块内,因此它是影子文件的最佳帮手。
除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。
在Linux系统中,可以在/etc/hosts.allow文件中设定允许上机人员的名单,同时在/etc/hosts.deny文件中设置不允许上机人员的名单,Linux将自动把允许进入或不允许进入的结果记录到/rar/log/secure文件中,系统管理员可以据此查出可疑的进入记录。
每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是利用了那些很久不用的账号。
在用户账号之中,尤其要注意具有root权限的账号,这种超级用户权力无限,可以修改或删除各种系统设置。因此,在给任何账号赋予root权限之前,都必须仔细考虑,最好不要轻易将超级用户授权出去。Linux系统中的/etc/security文件包含了一组能够以root账号登陆的终端机名称,该文件的初始值仅允许本地虚拟控制台(rtys)以root权限登陆,而不允许远程用户以root权限登陆,最好不要修改该文件。有些程序的安装和维护工作必须要求有超级用户的权限,在这种情况下,可以利用sudo这样的工具让这类用户有部分超级用户的权限。
2 安全工具
下面介绍一些可以用于Linux的安全工具,这些工具使用户的服务器运行起來更加安全,可以解决各方面的问题。
2.1 nmap和nessus网络安全扫描工具
nmap工具是一个端口扫描工具,它能扫描整个网络或一台主机上的开放端口。如果读者对安全担忧或者要寻找攻击者将会发现的漏洞,那么应花些时间来安装并使用nmap。nmap集成了大量的扫描技术。nmap工具还可以使用TCP/IP指纹来识别一个远程系统运行的是哪种操作系统。该工具处于系统管理员和攻击工具之间的灰色区域。如果读者负责一个网络,可以使用nmap检测本地网络是否有安全漏洞。
nessus是一个功能强大而又易于使用的远程安全扫描器,它不仅免费而且更新极快。安全扫描器的功能是对指定网络进行安全检查,找出该网络是否存在会导致对手攻击的安全漏洞。该系统被设计为C/S模式,服务器段负责进行安全检查,客户端用来配置管理服务器。nessus的安全检查是由大量插件完成的,其扩展性强,容易使用,功能强大,可以扫描出多种安全漏洞。
2.2 弱点测试工具
(1)chkacct。chkacct是一个检查用户账号安全的工具。它能检查文件的权限并恢复到初始权限。它还能寻找那些能被所有用户可读的文件并查看以点号开头的文件。它可以被用户使用或者被系统或安全管理员专用。
(2)Courtney。Courtney检测一个网络,查明SATAN探索的结果 ,并试图识别他们的来源。它从tcpdump获得输入并计算一台机器在一个特定时段内产生新的服务请求的次数。如果在该时段内,一台机器和大量服务器连接,Courtney就把该机器识别为一个潜在的SATAN主机
3 日志工具(logrotate,swatch,logcheck)
(1)logrotate。一般的Linux发行版中都自带这个工具,能够解决日志文件过大的问题。它可以自动使日志循环,删除保存最久的日志。可以把它放在crontab中,每天定期运行。这在很多Linux发行版中都是默认设置的。
(2)swatch。Swatch是一个实时的日志监控工具。读者可以设置感兴趣的时间,它可以在事件发生的时候告诉读者。Swatch有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息。
4 SSH和Tripwire
(1)SSH服务
传统的网络服务程序,如ftp、pop和telnet在本周上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易收到“中间人”方式的攻击。这些“中间人”冒充真正的服务器接收用户传给服务器的数据,然后冒充用户的数据传给真正的服务器。
通过使用SSH,用户可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
(2)Tripwire
如果有人侵入了你的系统,在系统中放置了木马和后门,你怎么才能知道呢?tripwire就是这样一个对系统做完整性检查的工具,它是目前最为著名的Linux下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。
5 反扫描工具Portsentry
通过防火墙可以限制自己系统中什么端口开放,什么端口不开放。对于外部的人们来说,这些信息都是保密的。黑客为了得到他人计算机中开放的端口,往往会进行各种方式的扫描,这样的扫描在互联网上也推出课件。一般的扫描活动都是进行入侵的前奏,对安全是极大的威胁。Portsentry就是这样一个反扫描工具,它可以实时发现并分析记录对本机的扫描,它通过syslog做记录,将扫描的主机加入/etc/hosts.deny,马上禁止所有通向扫描主机的网络流量,同时过滤掉所有来自扫描主机的网络流量。
从计算机安全角度来看,世界上没有百分之百安全的计算机系统,Linux系统也不例外,作为Linux系统管理员,需要保持一定的安全防范意识,对系统要定期做检查,发现问题要立即采取措施,根据实际的应用场景,灵活地综合采取以上方法和工具,才能取得较好的效果。
注释
① 何世晓,等.Linux管理师[M].机械工业出版社,2009.
② 张智龙.浅谈Linux系统安全[J].安防科技,2006(57).