前言
作为一种开放源代码的操作系统,Linux服务器以其安全、高效和稳定显著优势而得以广泛应用
一、账号安全控制
用户账号,是计算机使用者的身份凭证或标识,每一个要访问系统资源的人,必须凭借其用户账号才能进入计算机。在Linux系统中,提供了多种机制来确保用户账号的正当、安全使用。
1.1、基本安全措施
1.1.1、系统账号清理
(1)将非登录用户的Shell设为/sbin/nologiin
在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生产的其他大量账号。除了超级用户root之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登陆的,因此也成为非登陆用户。
常见的非登录用户包括bin,daemon,adm,lp,mail,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等。为了确保系统安全,这些用户的登录shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动。
(2)删除无用的账号
各种非登录用户中,还有相当一部分是很少用到的,如news,uucp,games,gopher等,这些用户可视为冗余账号,直接删除即可。除此之外,还有一些随着应用程序安装的用户账号,若程序卸载以后未能自动删除,需要管理员手动进行清理。
(3)锁定长期不使用的账号
对于Linux服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。
(4)锁定账号文件passwd、shadow
如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。
使用chattr命令,分别结合“+i”,“-i”选项来锁定、解锁文件,使用lsattr命令可以查看文件锁定情况。
在账号文件被锁定的情况下,其内容将不允许变更,因此无法添加、删除账号,也不能更换用户的密码、登录shell、宿主目录等属性信息。
1.1.2、密码安全控制
(1)设置密码有效期
在不安全的网络环境中,为了降低密码被猜出或者被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已经过期的用户,登录时将被要求重新设置密码,否则拒绝登录。
执行以下操作可将密码的有效期限设为30天(chage命令用于设置密码时限)
(2)要求用户下次登录时修改密码
在某些特殊情况下,如要求批量创建的用户初次登录时必须自设密码,根据安全规划统一要求所有用户更新密码等,可以有管理员执行强制策略,以便用户在下次登录时必须更改密码。
1.1.3、命令历史、自动注销
(1)命令历史限制
shell环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来潜在的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。
Bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中的所有用户。