技术开发 频道

Linux常见安全策略与实践

  【IT168 技术】操作系统的安全问题是信息安全领域最重要和最基本的问题之一。随着近几年国内互联网技术和行业的迅猛发展,采用Linux网络操作系统作为服务器的用户也越来越多。Linux面临着前所未有的发展机遇,同时Linux也面临着越来越多的安全隐患。作为一个开放式系统,互联网上有大量的Linux版本的开源软件产品和工具。这既方便于满足用户使用需求,也给黑客提供了更多的途径来攻击服务器,甚至盗取服务器上的机密信息。因此,详细分析Linux系统的安全机制,找出它可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。

  Linux操作系统提供了基本的安全机制。本文以Red Hat Enterprise Linux Server release 6.7为例介绍这些安全机制的基本原理及实施方法,主要包括以下内容:

  1、 系统帐号和密码管理

  2、Linux网络安全

  3、 文件系统的安全

  4、 系统日志的保存

  5、 内核更新及安全补丁安装

  1. 系统帐号和密码管理

  账户和密码可以说是操作系统安全的第一道防线。其中账户用来确认系统访问者的身份,密码可以验证系统访问者是否有权使用此账户。密码泄露就像是房门钥匙被人窃取一样危险。系统一旦被入侵,不只对使用者账户本身有影响,系统内的所有资料和文档都有被窃取和损坏的风险,从而造成巨大的损失。所以,管理员应该采取必要的技术手段强制用户使用强密码并定期更改,定期验证系统中账号合法性,及时删除不必要的账户、防止超级用户被篡改等,保证系统用户账号和密码的安全。

  1.1. 及时删除或禁用无用账户

  Linux系统中所有的账户都存放在/etc/passwd文件中。系统管理员可以定期监控/etc/passwd文件,验证系统中活动账户的合法性,及时删除或禁用系统中不必要或不再使用的账户。此类账户主要分为以下两种情况。

  1) 某些服务安装时默认创建的执行账户,比如ftp、news、postfix、apache、squid等。

  2) 无人使用或者无业务需求的账户。

  此类账户最好做删除处理。如下示例所示:

Linux常见安全策略与实践

  如果因为特殊原因需保留账户,可以锁定账户或者修改账户登录shell为/sbin/nologin。如下示例所示:

Linux常见安全策略与实践

  1.2. 设置密码复杂度策略

  现在的计算机的计算能力越来越强,弱密码很容易被破解。Linux有自定义密码复杂度策略的机制,可以从以下几个方面加强管理。

  1) 最短密码长度为8。

  2) 包含一个字符或非字符(数字、标点或特殊字符)。

  3) 密码中不允许包含账户。

  4) 每隔90天修改一次密码。

  5) 密码最短生命周期设置为1,防止恶意更改密码。

  6) 8次修改密码不可以重复并且加密保存。

  7) 连续5次输入错误密码,锁定账户。

  8) 初次登录强制修改密码。

  具体实现方式,如以下示例所示:

Linux常见安全策略与实践

Linux常见安全策略与实践

Linux常见安全策略与实践

Linux常见安全策略与实践

  1.3. 保护shadow密码文件

  Linux中账户密码叫做影子文件,存放在/etc/shadow里面。如果在/etc/pam.d/system-auth中设置了加密存储,那在/etc/shadow中看到的将是加密后的密码信息。虽然经过了加密处理,但这些加密信息仍然可以借助一些密码破解程序进行强制破解。John the Ripper就是这样的一个密码破解程序,该程序的源代码可以从http://www.openwall.com/john/网站上下载。经过实验,通过John程序可以轻易的破解shadow中的加密密码。所以系统管理员应保护好shadow文件,正常情况下应只有root用户拥有该文件的访问权限。此外,管理员不该在有其他人员在场的情况下随便打开shadow文件,以免其中的内容被人窃取。

Linux常见安全策略与实践

  1.4. 防止root账户被篡改

  在Linux系统中root账户是超级管理员账户。它可以执行所有的系统的命令,也具有系统中最高的权限。而且Linux系统中只有一个root超级账户。但是在Linux系统中,用户是由UID来区分,而不是账户名。如果把一个普通账户的UID修改为0,即root账户的UID,则这个普通账户也将获得root相同的超级管理员权限。如果这种账户,没有经过正常的审批流程,或者不是系统管理员设置,这种账户很有可能是非法入侵者更改的。所谓管理员,应及时发现这种非法账户,并作相应的处理。

  2. Linux网络安全

  相比于其它的操作系统,Linux操作系统更加安全和稳定,所以经常被用作网络应用服务器。但是由于程序代码的缺陷的难以避免,这些安装在Linux系统上的网络应用程序往往会存在着各种漏洞,而入侵者则是利用这些漏洞进行网络攻击,进入系统窃取数据、破坏系统或者使系统无法提供正常服务等等。针对入侵者进行网络攻击的常用手段,及早发现系统中的网络安全漏洞并执行相应的防范措施非常重要。

  2.1. ping入侵

  ping是入侵者确认服务器是否开机的最快、最常用的方法。ping命令会发出一个ICMP echo请求,服务器接收到请求后会返回一个ICMP应答。Linux服务器管理员可限制服务器禁止其它用户Ping。同时又保证Linux服务器又可以Ping其它服务器。

Linux常见安全策略与实践

  2.2. 端口安全

  TCP/IP的各种Linux应用服务基本上都是采用服务器/客户端的工作模式,这些服务在服务器端会监听一些固定的服务端口,接受来自客户端的请求。而入侵者往往会利用各种端口扫描工具对目标主机的端口进行探测和扫描。获得目标主机上的服务和端口列表以后,入侵者就可以针对不同服务的漏洞进行相应的攻击。为了阻止入侵者对主机端口的扫描。管理员可以采取以下措施:

  1) 关闭不必要的应用服务;

  2) 修改应用服务的默认端口。例如更改FTP服务的端口为31,那么即使入侵者获得该端口号,也无法确定该端口号对应的是什么服务;

  3) 开启防火墙,限制用户访问相应的服务端口。这样,即使应用服务的端口泄漏,非法访问也会被挡在防火墙之外。

  2.3. 拒绝攻击

  拒绝攻击是一种消耗服务器可用资源的攻击方式,这些资源包括进程数、磁盘占用、CPU时间或者网络带宽等,被攻击的服务器将会出现资源被不断消耗的情况,最终丧失应用服务的能力。在Linux系统中提供了一种限制用户资源使用的技术手段,管理员可以通过设置/etc/security/limits.conf的配置参数,限制用户对内存空间、CPU时间以及进程数等资源的使用。防止负荷过载造成服务器宕机。用户可以执行命令ulimit -a查看自己的的资源限制情况。

Linux常见安全策略与实践

0
相关文章