21.20.7
9 形形色色的安全事务
下面各小节提出了与安全相关的多种其他主题。它们中的大多数是对管理员有帮助的功能,但如果不加以检查就可能成为给黑客提供“建窝材料”的坏功能。
21.20.79.1
远程事件日志
系统日志工具(syslog)能把内核和用户进程的日志信息转发给一个文件、一组用户或网络上的另一台主机。请考虑设置一一台安全的主机来充当中央日志机器,,分析日志文件,以及为感兴趣事件发电子邮件。并在老式的行式打印机上打印出违反安全的情况(以auth设备)。这项预防措施可以防止黑客通过重写或清除日志文件来抹掉他们的行踪。有关系统日志的更多信息请参见第101章。
21.20.79.2
安全终端
Linux可以进行配置,限制root只能登录特定的“安全”终端。禁止root在SSH、VPN或者其他远程连接拨号调制解调器这样的通道上登录是明智的。网络伪终端也往往设置为禁止root登录。
安全通道通常按照配置文件/etc/securetty中的一张TTY设备列表来设置。还有可能用/etc/ security/access.conf文件中的配置项把非root用户限制在特定位置登录,或者用/etc/security/time.conf文件中的配置项把他们限制他们在特定时间登录。
系统管理员仍然能正常登录,使用sudo获得对超级用户的权限的。
21.20.79.3
/etc/hosts.equiv和~/.rhosts
hosts.equiv和~/.rhosts文件定义的主机在管理上是彼此“等价的”,用户无需键入口令即可(通过rlogin)登录和(通过rcp)复制文件。在UNIX和谐和睦的时代,这个工具程序一度得到普遍使用,但每个人最后都感到它非常讨厌,并且认识到这可不是个好主意。
幸好SSH协议实际上消除了客户使用不安全的等效程序telnet、rsh和rlogin。它的用法在本章后面介绍。
我们建议禁用rshd和rlogind,它们是读取.rhosts和hosts.equiv的服务器进程。在大多数系统中,只需把它们从/etc/inetd.conf中注释掉即可禁用它们。禁用服务器守护进程之后,将不能再通过telnet、rlogin、rsh或rcp访问主机。不过,这些命令的功能可以替换为安全性更高的等价物,比如SSH;参考21.9.3节。
rlogin的一些替代软件品(包括SSH!)如果配置不正确的话,它们会注意它们会注意.rhosts和/etc/hosts.equiv内的配置。为了增加安全性,您可以为每位用户(包括root)创建/etc/hosts.equiv文件和一个不可写的、长度为0的~/.rhosts文件。如果存在一个文件存在并且没有被人碰过,那么估计它在凌晨3:00时的状态总要比估计一个不存在的文件的状态容易一些。当您在跟踪闯入者和他们危害系统的企图时当您在跟踪入侵者和他们攻破系统的企图时,这一点区别是至关重要的。
21.7.4
rexecd和tftpd
rexecd是另一个远程命令执行守护进程。它是rexec库例程用的服务程序。发送给rexecd的请求中包括一个纯文本口令,所以任何对网络的监听都可以搞到口令并获得对目标系统的访问权。这个守护进程应该被禁用。
tftpd是用于TFTP(Trivial File Transfer Protocol,简单文件传输协议)的服务程序,这种协议易于实现,有时用于把固件或引导代码下载到网络设备中。因为它允许网络上的机器向您的硬盘请求文件,所以它是一个潜在的安全漏洞。如果您不使用它,最好让它保持禁用。
21.7.5
fingerd
finger是一个Linux命令,它可以打印出有关某个特殊用户的简短报告:

不带参数时,finger将打印所有已登录用户的摘要信息。
当得到远程主机上fingerd守护进程的支持时,finger还可以用finger user@host或仅仅是finger @host的形式运行。很遗憾,返回的信息可能对黑客有用,因此我们建议在/etc/inetd.conf中(或者在Red Hat上是/etc/xinetd.d下的fingerd文件中)禁用fingerd。
21.20.79.6
4 安全与NIS
除了用作本节的标题之外,这两个名词永远不应该一起使用。NIS(Network Information
Service,网络信息服务,以前叫做黄页)是一种Sun的的数据库发布工具,许多站点用它来保存和发布像/etc/group、/etc/passwd和/etc/hosts这样的文件。很遗憾,其“易于信息访问”的性质使它成为吸引黑客的诱饵。稍后,代替NIS的NIS+为解决NIS的安全性问题进行了无力的尝试。别在站点上运行任何一种形式的NIS,这样会更安全些。有关NIS的更多信息请参见第18章。
更安全和可靠地发布这些文件的一种方法是创建像“netadmin”这样的一个登录名,并把这些文件最新的副本放在文件并把这些文件最新的副本放在目录~netadmin中下。然后您可以在每台客户机上运行一个cron调用的脚本来用scp复制文件、检查完整性和安装文件。scp是SSH的一部分,参考21.20.911.3节了解有关SSH的更多知识。
21.20.97.7
5 安全与NFS
NFSv4是IETF对Sun公司以前的协议所做的一种扩展,它具有很强的安全性,而且有其他一些比早先的实现更好的优点。虽然该协议尚不完善,但是开发工作开展顺利,所以在Linux 2.6内核中包含了NFSv4。
参考17.1.7节了解有关NFS安全性的更多知识。使用showmount -e可以看到哪些文件系统被导出了,导出给谁了。每个被导出的文件系统都应该有一个访问列表,并且所有的主机名都应该用全名。NFS的老版本都使用一种安全性很弱的模型。参考16.1.7节了解更多有关NFS安全的知识。使用showmount -e可以看到哪些文件系统被导出了,导出给谁了。每个被导出的文件系统都应该有一个访问列表,并且所有的主机名都应该用全名。
21.20.79.8
6 安全与sendmail
sendmail是一个庞大的网络系统是一个庞大的程序,它要以root权限运行(至少原来是这样的很大一部分以root的身份运行)。因此,sendmail常常成为黑客攻击的目标,而且随着时间的流逝,它暴露出了许多弱点。要确保在所有系统上运行的都是最新版本的sendmail。因为安全问题是发行新软件版本最可能的原因之一,所以,除了最新版本外,所有版本的sendmail都可能有问题,有关sendmail安全性的特殊详情在19.11节介绍。您可以从www.sendmail.org获知当前版本有哪些已知的安全性问题。有关sendmail的更多信息请参见第19章。
专门和sendmail安全性有关的细节在18.12节介绍。您可以从www.sendmail.org获知特定版本的信息。
21.20.97.9
7 安全与备份
定期的系统备份是任何网点安全计划的一个重要组成部分。要保证所有分区都被定期地转储到磁带上了,而且还要在异地保存一些备份。如果发生重大的安全事故,您可以恢复到一个未受污染的检验点。有关备份的更多信息请参见第910章。
备份也可以成为一种安全风险。因为一旦把磁带安装到驱动器上,任何人都可以读取它的内容,所以您必须妥善严密地保管所有的备份磁带。备份时考虑使用加密。如果您在考虑签订合同使用一种存储设施,那么先要求实际试用一下。
20.9.8 病毒与蠕虫
Linux一直都最不容易感染病毒。Linux上只有很少的一些病毒(其中大部分的本质还是学术研究性质的),而且没有哪种病毒对Linux造成了Windows上司空见惯的那种损失。尽管如此,仍然没有阻止某些防病毒厂商去预测Linux平台将被恶意软件所摧毁—当然,除非您以一个特殊的指导价,购买这些商家的防病毒产品。
Linux上少有恶意软件的真正原因还不清楚。有些人认为Linux只是因为比其桌面竞争对手的市场份额低,因此没有成为病毒制造者感兴趣的目标。其他人则坚持认为Linux受访问控制的环境限制了自行传播的蠕虫或者病毒的扩散破坏。
后一种观点有一定道理。因为Linux把系统中可执行程序的写权限限制在文件系统一级,没有特权的用户账号不能影响到环境的其他地方。除非病毒代码是以root身份运行的,否则其作用范围就会大大地受到限制。于是最关键的一点就是不要用root账号做日常的工作。
或许与人们的直觉相反的是,在Linux服务器上运行防病毒软件有一个正确的理由,即保护您本地的Windows系统免于受到专门针对Windows的病毒的侵害。邮件服务器可以扫描电子邮件中的附件有没有携带病毒,文件服务器能够扫描共享文件看是否受到病毒感染。不过,这些解决方案应该作为对桌面机器防病毒保护的一种补充,而不能代替后者。
Tomasz Kojm开发的ClamAV是一种用于Linux的流行的免费防病毒产品。这种得到广泛使用的GPL软件是一套完整的防病毒工具库,带有成千上万种病毒的特征。您可以从www.clamav.net下载到最新版的ClamAV。
Viruses and worms
Linux has been mostly
immune from viruses. Only a handful exist (most of which
are academic in nature),
and none have done the costly damage that has become
commonplace in the
Windows world. Nonetheless, this hasn’t stopped certain antivirus
vendors from predicting
the demise of the Linux platform from malware—
unless you purchase their
antivirus product at a special introductory price, of course.
21.20.97.10
9 特洛伊木马
特洛伊木马是一种表里不一的程序。特洛伊木马的一个例子是名为turkey的程序,它在很久以前发布在在Usenet上流传。这个程序说它将在您的终端屏幕上绘制一幅火鸡图片,但实际上它会删除您主目录下的文件。
另一个引起更大争议的特洛伊木马的例子是,2004年和2005年索尼公司发布的许多音乐光盘中带的保护版权的软件。这种指导思想上就有错的行为的目的是阻挠共享音乐的人,索尼公司在未征得听音乐的人同意的情况下,在Windows系统上安装了保护软件。这个软件给电脑主机引来了可以被蠕虫和病毒利用的安全漏洞。
特洛伊木马的不完整碎片不时会出现在主要的Linux软件包中。sendmail、tcpdump、OpenSSH和InterBase都发布了有关其产品中出现恶意软件的安全建议。这些特洛伊木马一般植入恶意代码,让攻击者能随心所欲地访问受害者的系统。还好,大多数软件商都会在一两周内纠正软件,并发出安全建议。对于Linux主机上运行的任何网络软件包,都要关注其安全邮递列表。
在列出Linux界过去几年中发现的与安全有关的异常行为的数量后发现,引起人们注意的是特洛伊木马的事故是如此之少。这种情况在很大程度上要归功于Internet通信的速度。
在列出Linux界过去几年中发现的与安全有关的异常行为的数量后发现,引起人们注意的是特洛伊木马的事故是如此之少。实际上,我们还没有碰到过一起因为下面这样的程序包含恶意代码或故意避开系统的安全措施而引发的安全事件实例:
传说有某种有用的用途;
不作为一个操作系统的一部分发布;
以源代码形式提供;
可以广泛获得。
别误解我们的意思:我们确信肯定发生过这样的情况。但对一般管理员来说风险非常小。
这种情况在很大程度上要归功于Internet的团结。明显的安全性问题往往很快被发现并广泛讨论。在知名的Internet服务器上,恶意的软件包不会被保留太久。
可以肯定的是,任何被发现怀有恶意的软件都会在UsenetInternet上得到广泛讨论。如果您希望在安装软件之前快速确认一下,可以用这个包的名字在您最喜欢的搜索引擎上搜索一下。
20.9.10 Rootkits
最熟练的黑客总是会试图掩盖他们的踪迹,避免自己被发现。他们经常希望能连续利用您的系统非法扩散软件、探测其他网络或者发起针对其他系统的攻击。他们经常使用“rootkit”来帮助自己不会被检测到。索尼公司的特洛伊木马就利用了类似rootkit的功能来防止自己被用户发现。
rootkit是隐藏重要系统信息(如进程、硬盘或者网络活动)的程序和补丁。它们有许多种风格,复杂程度也千变万化,简单到替换应用程序(如被黑过的ls和ps版本),复杂到几乎不可能被发现的内核模块。
基于主机的入侵检测软件,如samhain(下面会介绍)是一种监视系统是否有rootkit出现的有效手段。虽然有程序能帮助系统管理员把rootkit从一个被感染的系统中删除,但是考虑到做一次彻底的清理工作所花费的时间,更节省时间的做法是保存数据、重新格式化硬盘,从头开始装系统。最高级的rootkit知道常见的删除程序,会试图破坏它们。






