循序渐进 七步加强Linux安全性

原贴:http://blog.chinaunix.net/u/23204/showart_205369.html

循序渐进 七步加强Linux安全性
 
 

    如果你问一个在任何大型单位的网络管理员,你感觉Linux和其它网络操作系统例如Windows NT或Novell开放企业服务器有什么不同?大多数情况他会告诉你,Linux天生就是一个更稳定和伸缩扩展性更强的操作系统解决方案;不过他们同时也 会承认,当操作系统要加强安全性以阻挡来自外部的攻击的时候,Linux可能这三个操作系统中最麻烦的一个。

    这种感觉并不是某一个网络管理员的个别感觉,从点击设置安全参数的用户界面,到一个需要编辑复杂且难于查找内容的文本文件的方式,这个转变让很多刚接触 linux的管理员一时难于适应。大多数管理员都知道需要手动来设置防护措施来阻挡准黑客们的攻击,以保证公司数据的安全性。但是这是他们所不熟悉的 Linux世界,他们不能非常确定究竟该从何入手。

    那么这就是笔者写这篇文章要解决的问题。本文将讲解一些可供管理员采用的建议,以帮助他们使公司的Linux服务器更加安全,从而大大减少他们将面对的安全风险。

    1、保护好你的root帐号
   
Linux系统中的root帐号就是超级管理员的代名词,这是系统的最后一道防线,突破了它,就可以访问一切文件,可以发起任何操作。因此,我们非常有必要对他额外关照,专门通过设置来加强对它的保护。

    首先通过passwd命令为它设置一个很难让别人猜到的密码,并且定期对其进行修改,而且它的密码除了单位内个别关键的人物外,不能透漏给其他人。

    另外,通过编辑/etc/securetty文件,限制root用户使用终端,当root用户试图登陆时,login程序先来查阅/etc/securetty,看看其中是否列出了当前字符终端设备,如果没有,login则认为它不安全,而提示输入口令。

    为了防止用户以root登陆终端后忘了退出,可以设置root登陆后不活动的超时时间,方法是设置本地变量中的TMOUT属性。并且确保禁用root用户的历史操作命令,因为这可能包含了一些敏感信息,方法是设置本地变量中的HISTFILESIZE为0。

    最后,强制制定一些策略来规定使用这个帐号只能执行一些特定的管理任务,并禁止用户默认使用root帐号登陆。

    小技巧:关闭了上述漏洞后,接下来要做的是要求每一个普通用户帐号都必须设置密码,并且确保密码不要采用很容易被人猜到的启发式密码,例如生日、姓名或常用的英文单词等。

  2、安装防火墙
    防火墙可以让你过滤进出你的服务器的数据包,可以确保只有那些符合预先定义规则的数据包才允许进入或出去。Linux下有很多优秀的防火墙,且防火墙代码甚至可以被直接编译到内核中。

     首先可以使用ipchains或iptables命令,定义进入、输出和转发规则,来控制数据包进入或离开你的网络。规则可以基于特定的IP地址、网络接口(比如网卡)、端口、协议或它们的组合来建立;这些定义的规则同时要指定,当某些数据包与该规则匹配的时候,该采取什么样的动作(接受、拒绝还是转发)。这些规则被加载后,准备大量的测试来确保该规则没有漏洞存在。

    一个好的防火墙是你抵御攻击的第一道防线,例如可以帮助你防御拒绝服务(DDoS)攻击。

     3、使用OpenSSH来进行网络交易
    
客户-服务器体系结构的一个重要问题是如何 保证通过网络传输的数据的安全性。如果网络交易是以明文的形式进行,黑客就有可能侦听到被传输的数据包,进而访问其中的敏感信息。你可以使用类似 OpenSSH的安全工具来关闭这个漏洞,它如同创建了一个安全加密的通道来让你传送数据。通过这种方式加密你的连接信息,使得未经授权的用户很难阅读在 网络主机之间传送的数据。

   4、关闭不想要的服务
   
大多数Linux系统在安装后开启了很多不同的服务,例如FTP、 telnet、UUCP、ntalk等等。大多数情况下,这些服务几乎很少用到,但是如果你一直运行着它们,就如同打开了一扇窗口让黑客有可能由此而入, 因此对于你不使用的服务,建议还是把它关上。你可以打开/etc/inetd.conf或/etc/xinetd.conf文件,然后找到相应的服务,用 #号把他们注释掉,然后重启inetd或Xinetd进程。

    另外,某些服务,例如数据库服务器,可能在系统启动的过程中默认启动,这种情况你可以编辑/etc/rc.d/*目录结构来禁用自动启动。许多有经验的管理员通常是禁用所有的多余服务,只留下SSH通信端口开放。

    5、使用反垃圾邮件和反病毒过滤
   
垃圾邮件和病毒一直在困扰着我们,严重的时候甚至导致影响较大的网络故障。Linux对病毒的抵抗力可以说是很强的,但是运行Windows的客户端机器就非常容易受到感染了。

    因此,在你的邮件服务器上安装一个垃圾邮件或病毒过滤软件是一个不错的想法,这样就可以阻挡可疑的信息,从而减少一系列网络风险的发生。

     首先你可以安装业界领先的开源工具SpamAssassin,它使用了不同的技术来识别和标记垃圾邮件;同时该软件还还支持用户创建白名单和黑名单以获得对垃圾信息的更准确定位。

     接下来,你可以安装procmail来实现用户级别的基于表达式的过滤;这个工具可以从用户和系统两个层次自动过滤收入到邮箱中的邮件。

     最后安装免费的防病毒工具Clam Anti-Virus,它可以与Sendmail和SpamAssassin配合使用,支持对正在被访问的邮件附件的扫描。

 6、安装入侵检测系统
   
入侵检测系统(IDS)是一种提前预警系统,可以让你知道你的网络中是否有变化发生。这是识别试图攻入你的系统的行为的一种很好的方法,尽管这可能以付出增加资源占用为代价。

    目前有两个非常出名的IDS你可以试一下。一个是tripwire,它可以通过文件签名来监测变化的发生;另一个是snort,可以使用基于规则的指令来 执行实时的数据包分析,以及搜索和识别那些探测或攻击你的系统的尝试。两种工具都可以产生邮件告警,当你怀疑你的网络正在受到危险但是需要确切的证据的时 候,IDS是非常有用的。

 7、实行定期的安全攻击测试
    在你增强你的系统安全的时候,这最后的一步可能也是最重要的一步。现在假设你就是一名黑客,开始想尽一切办法来突破前几步中你建立起来的安全防线,这样做 可以让你对自己的系统究竟有多安全有一个立即且客观的认识,并且可以发现是否还有潜在的安全漏洞需要你去立即修补。

    目前有许多工具可以帮助你实施这项检测:你可以尝试用密码破解工具,例如Crack和John the Ripper,来黑一下你的密码文件,你可以使用nmap或netstat来看一下哪些端口正在开放着;你可以使用tcpdump来监听网络,你可以利用 已公布的你安装的程序中的漏洞来看一下是否可以攻入系统。如果你发现了一个方法可以穿越你设置的安全防线,那么你要相信别人也可以。那么请立即采取措施来 关闭缺陷。

    保护你的Linux系统是一件长期的工作,因此你不能在采取了以上步骤后就开始感觉安枕无忧。经常去看看Linux安全论坛的内容,获得更多的安全技巧,并随时监控和更新你的系统的安全性。

 

你可能感兴趣的:(linux安全)