一. 基本安全措施
1.系统账号清理
在Linux系统中除了用户手动创建的各种账号以外,还包括随系统或程序安装过程而产生的其他大量账号。除了超级用户root以外,其他大量账号只是用来维护系统运作,启动或保持服务进程,一般不允许登录的,因此称为非登录用户。
常见的非登录用户包括bindaemon、adm、lp、mail、noboody、apache、 mysql、dbus、ftp、gdm、haldaemon等。为了确保系统安全,这些用户的登录shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动。
[root@localhost~]# grep"/sbin/nologin$" /etc/passwd //查看非登录用户
对于linux服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。
[root@localhost~]# usermod -L lisi //锁定账号
[root@localhost~]# passwd -S lisi //查看账号状态
[root@localhost~]# usermod -U lisi //解锁账号
[root@localhost~]# passwd -S lisi //查看账号状态
如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。使用 chattr 命令,分别结合“+i”,"-i"选项来锁定,解锁文件,使用lsattr命令可以查看文件锁定情况。
[root@localhost~]# chattr +i/etc/passwd /etc/shadow //锁定文件
[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看为锁定的状态
[root@localhost~]# chattr -i/etc/passwd /etc/shadow //解锁文件
[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看为锁定的状态
账号文件被锁定的情况下,其内容将不允许变更,因此无法添加,删除账号,也不能更改用户密码,登录shell、宿主目录等属性信息
2.密码安全控制
以下操作可将密码的有效期设为30天(chage 用于设置密码时限)。
[root@localhost~]# vim /etc/login.defs //适用于新建的用户
PASS_MAX_DAYS 90 #密码最长过期天数
PASS_MIN_DAYS 80 #密码最小过期天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #密码过期警告天数
[root@localhost~]# chage -M 30 lisi //适用于已有的lisi用户
3.命令历史,自动注销
Bash终端环境中,历史命令的记录条数由变量HLSTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HLSTSIZE变量值,可以影响系统中的所有用户。
可以设置最多只记录200条历史命令
[root@localhost~]# vim /etc/profile //适用于所有登录用户
[root@localhost~]# export HISTSIZE=200 //适用于当前用户
添加history �Cc命令当用户退出已登录BASH环境以后,所记录的历史命令将自动清空
[root@localhost~]# vim ~/.bash_logout
设置终端超时时间,当超时指定的时间没有任何输入即自动注销终端,(默认单位为秒)有效避免当管理员不在时其他人员对服务器的误操作
[root@localhost~]# vim /etc/profile
export TMOUT=600 //添加
[root@localhost~]# export TMOUT=600 //适用于当前用户
二、用户切换于提权
1. su命令----切换用户
由Root用户切换到普通用户不需要输入密码,从普通用户切换到root 需要输入root用户密码
为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许个别用户使用su命令进行切换。
将授权使用su命令的用户添加到wheel组,修改、etc/pam.d/su认证配置。
[root@localhost~]# gpasswd -a u1 whell //加授权用户u1
[root@localhost~]# grep whell /etc/group //确定whell组成员
[root@localhost~]# vim /etc/pam.d/su
//去掉#号
使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中。
[root@localhost~]# tail /var//log/secure
2.sudo命令―提升权限
[root@localhost~]# vim /etc/sudoers
添加: lisi localhost=/sbin/ifconfig //允许lisi修改ip地址
%whell ALL=NOPASSWD: ALL //whell组的成员不需要验证密码即可执行任何命令
三、系统引导和登录控制
1.禁止Ctrl + Alt + Del 热键重启
[root@localhost~]# vim /etc/inittab
[root@localhost~]# init q //重新读取文件,更新
2.限制更改GRUB引导参数
为GRUB菜单设置的密码建议采用“grub-md5-crypt”命令生成,经过MD5算法加密的字符串,安全性更好。
[root@localhost~]# grub-md5-crypt //根据提示指定密码
[root@localhost~]# vim /boot/grub/grub.conf
四、终端及登录控制
1.修改登录提示信息
系统登录的提示信息保存在/etc/issce /etc/issce.net文件中,其中包括操作系统类型。内核版本等。
[root@localhost~]# vim /etc/issue
[root@localhost~]# cp /etc/issue /etc/issue.net
2.减少开放的tty终端个数
通过修改配置文件/etc/inittab 可以减少开放的tty终端个数。
[root@localhost~]# vim /etc/inittab
[root@localhost~]# init q
3.禁止root用户登录
若要禁止root用户从tty1 终端登录,可以修改/etc/securetty文件,将tty1行注释掉。
[root@localhost~]# vim /etc/securetty
4.禁止普通用户登录
当服务器正在进行备份或调式等维护工作时,可能不希望再有新的用户登录系统。这时候,只需要简单地建立/etrc/nologin文件即可。Login程序会检查/etc/nologin文件是否存在,如果存在则拒绝普通用户登录系统(root用户不受限制)。
[root@localhost~]# touch /etc/nologin
只建议在服务器维护期间临时使用。当手动删除/etc/nologin文件或者重新启动主机以后,即可恢复正常。