保护根账户
  Linux 系统上的根账户(或超级用户账户)——它允许您访问系统中的所有内容。因此,值得采取额外的步骤对它加以保护。首先,用密码命令给这个账户设置一个难以猜测的密码,并定期进行修改,而且这个密码应仅限于公司内的几个主要人物(指管理员或指派使用者)知晓。

  然后,对 /etc/securetty 文件进行编辑,限定能够进行根访问的终端。为避免用户让根终端“开放”,可设置TMOUT当地变量为非活动根登录设置一个使用时间;并将HISTFILESIZE当地变量设为0,保证根命令记录文件(其中可能包含机密信息)处于禁止状态。最后,制订一个强制性政策,即使用这个账户只能执行特殊的管理任务;并阻止用户默认以根用户服务登录。

  提示:关闭这些漏洞后,再要求每一个普通用户必须为账户设立一个密码,并保证密码不是容易识别的启示性密码,如生日、用户名或字典上可查到的单词。

  安装一个防火墙
  防火墙帮助您过滤进出服务器的数据包,并确保只有那些与预定义的规则相匹配的数据包才能访问系统。有许多针对 Linux 的优秀防火墙,而且防火墙代码甚至可直接编译到系统内核中。首先应用 ipchains 或 iptables 命令为进出网络的数据包定义输入、输出和转寄规则。可以根据IP地址、网络界面、端口、协议或这些属性的组合制订规则。这些规则还规定匹配时应采取何种行为(接受、拒绝、转寄)。规则设定完毕后,再对防火墙进行详细检测,保证没有漏洞存在。安全的防火墙是您抵御分布式拒绝服务(DDoS)***这类常见***的第一道防线。

  使用OpenSSH处理网络事务
  在网络上传输的数据安全是客户-服务器构架所要处理的一个重要问题。如果网络事务以纯文本的形式进行,***就可能“嗅出”网络上传输的数据,从而获取机密信息。您可以用OpenSSH之类的安全壳应用程序为传输的数据建立一条“加密”通道,关闭这个漏洞。以这种形式对连接进行加密,未授权用户就很难阅读在网络主机间传输的数据。

  禁用不必要的服务
  大多数Linux系统安装后,各种不同的服务都被激活,如FTP、telnet、UUCP、ntalk等等。多数情况下,我们很少用到这些服务。让它们处于活动状态就像是把窗户打开让盗贼有机会溜进来一样。您可以在/etc/inetd.conf或/etc/xinetd.conf文件中取消这些服务,然后重启inetd或xinetd后台程序,从而禁用它们。另外,一些服务(如数据库服务器)可能在开机过程中默认启动,您可以通过编辑 /etc/rc.d/*目录等级禁用这些服务。许多有经验的管理员禁用了所有系统服务,只留下SSH通信端口。

  使用垃圾邮件和反病毒过滤器
  垃圾邮件和病毒干扰用户,有时可能会造成严重的网络故障。Linux有极强的抗病毒能力,但运行Windows的客户计算机可能更易受病毒***。因此,在邮件服务器上安装一个垃圾邮件和病毒过滤器,以“阻止”可疑信息并降低连锁崩溃的风险,会是一个不错的主意。

  首先安装SpamAssassin这个应用各种技术识别并标注垃圾邮件的一流开源工具,该程序支持基于用户的白名单与灰名单,提高了精确度。接下来,根据常规表达式安装用户级过滤,这个工具可对收件箱接收的邮件进行自动过滤。最后再安装Clam Anti-Virus,这个免费的反病毒工具整合Sendmail和SpamAssassin,并支持电子邮件附件的来件扫描。

  安装一个***检测系统
  ***检测系统(IDS)是一些帮助您了解网络改变的早期预警系统。它们能够准确识别(并证实)***系统的企图,当然要以增加资源消耗与错误线索为代价。您可以试用两种相当知名的IDS:tripwire,它跟踪文件签名来检测修改;snort,它使用基于规则的指示执行实时的信息包分析,搜索并识别对系统的探测或***企图。这两个系统都能够生成电子邮件警报(以及其它行为),当您怀疑您的网络受到安全威胁而又需要确实的证据时,可以用到它们。

  定期进行安全检查
  要保障网络的安全,这最后一个步骤可能是最为重要的。这时,您扮演一个反派的角色,努力攻破您在前面六个步骤是建立的防御。这样做可以直接客观地对系统的安全性进行评估,并确定您应该修复的潜在缺陷。

  有许多工具可帮助您进行这种检查:您可以尝试用Crack和John the Ripper之类的密码破解器破译您的密码文件;或使用nmap或netstat来寻找开放的端口;还可以使用tcpdump探测网络;另外,您还可以利用您所安装的程序(网络服务器、防火墙、Samba)上的公开漏洞,看看能否找到进入的方法。如果您设法找到了突破障碍的办法,其他人同样也能做到,您应立即采取行动关闭这些漏洞。

  保护Linux系统是一项长期的任务,完成上述简单步骤后,也并不表示您就可以高枕无忧。