. 基本安全措施

1.系统账号清理

Linux系统中除了用户手动创建的各种账号以外,还包括随系统或程序安装过程而产生的其他大量账号。除了超级用户root以外,其他大量账号只是用来维护系统运作,启动或保持服务进程,一般不允许登录的,因此称为非登录用户。

常见的非登录用户包括bindaemonadmlpmailnoboodyapache mysqldbusftpgdmhaldaemon等。为了确保系统安全,这些用户的登录shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动。

[root@localhost~]# grep"/sbin/nologin$" /etc/passwd //查看非登录用户

对于linux服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。

[root@localhost~]# usermod -L lisi //锁定账号

[root@localhost~]# passwd -S lisi //查看账号状态

182215371.jpg

[root@localhost~]# usermod -U lisi //解锁账号

[root@localhost~]# passwd -S lisi //查看账号状态

182227843.jpg

如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。使用 chattr 命令,分别结合+i,"-i"选项来锁定,解锁文件,使用lsattr命令可以查看文件锁定情况。

[root@localhost~]# chattr +i/etc/passwd /etc/shadow //锁定文件

[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看为锁定的状态

182241281.jpg

[root@localhost~]# chattr -i/etc/passwd /etc/shadow //解锁文件

[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看为锁定的状态

182253603.jpg

账号文件被锁定的情况下,其内容将不允许变更,因此无法添加,删除账号,也不能更改用户密码,登录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 //适用于所有登录用户

182307710.jpg

[root@localhost~]# export HISTSIZE=200 //适用于当前用户

添加history –c命令当用户退出已登录BASH环境以后,所记录的历史命令将自动清空

[root@localhost~]# vim ~/.bash_logout

182321910.jpg

设置终端超时时间,当超时指定的时间没有任何输入即自动注销终端,(默认单位为秒)有效避免当管理员不在时其他人员对服务器的误操作

[root@localhost~]# vim /etc/profile

export TMOUT=600 //添加

[root@localhost~]# export TMOUT=600 //适用于当前用户

二、用户切换于提权

1. su命令----切换用户

Root用户切换到普通用户不需要输入密码,从普通用户切换到root 需要输入root用户密码

182334596.jpg

为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许个别用户使用su命令进行切换。

将授权使用su命令的用户添加到wheel组,修改、etc/pam.d/su认证配置。

[root@localhost~]# gpasswd -a u1 whell //加授权用户u1

182536927.jpg

[root@localhost~]# grep whell /etc/group //确定whell组成员

[root@localhost~]# vim /etc/pam.d/su

//去掉#

182727551.jpg


使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中。

[root@localhost~]# tail /var//log/secure

182837951.jpg


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

182752839.jpg

[root@localhost~]# init q //重新读取文件,更新

2.限制更改GRUB引导参数

GRUB菜单设置的密码建议采用“grub-md5-crypt”命令生成,经过MD5算法加密的字符串,安全性更好。

[root@localhost~]# grub-md5-crypt //根据提示指定密码

182936234.jpg

[root@localhost~]# vim /boot/grub/grub.conf

182948856.jpg

四、终端及登录控制

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

183002805.jpg

[root@localhost~]# init q

3.禁止root用户登录

若要禁止root用户从tty1 终端登录,可以修改/etc/securetty文件,将tty1行注释掉。

[root@localhost~]# vim /etc/securetty

183019372.jpg

4.禁止普通用户登录

当服务器正在进行备份或调式等维护工作时,可能不希望再有新的用户登录系统。这时候,只需要简单地建立/etrc/nologin文件即可。Login程序会检查/etc/nologin文件是否存在,如果存在则拒绝普通用户登录系统(root用户不受限制)。

[root@localhost~]# touch /etc/nologin

只建议在服务器维护期间临时使用。当手动删除/etc/nologin文件或者重新启动主机以后,即可恢复正常。