Linux系统的安全性主要取决于用户账号的安全性。每个进入Linux系统的用户都会被分配唯一的账号,用户对系统中各种对象的访问权限取决于他们登录系统时的账号权限。
风险分析 对可登录账号进行控制,可以大大降低攻击者获取Shell的概率,让系统更加安全。
加固详情 系统账号默认存放在/etc/passwd中,可以手动查询账号信息,将除需要登录的账号以外的其他账号全部设置为禁止登录,即将其Shell设置为/sbin/nologin。
[root@centos7~]# cat /etc/passwd|grep-i test1
test1:x:1003:1004::/home/test1:/bin/bash
[root@centos7~]# usermod-L-s /sbin/nologin test1
[root@centos7~]# cat /etc/passwd|grep-i test1
test1:x:1003:1004::/home/test1:/sbin/nologin
加固步骤 使用usermod-L-s /sbin/nologin username锁定账号登录。
风险分析 root 用户作为超级管理员,拥有操作系统资源的所有访问权限,因此日常使用中不建议直接使用root用户登录系统,以防重要的文件或文件夹被删除,造成系统崩溃。
加固详情 创建一个普通用户并给予sudo权限,然后禁止root用户直接登录系统。
加固步骤
(1)首先创建一个普通用户test。
[root@centos7~]# useradd test
[root@centos7~]# passwd test
Changing password for user test.
New password:
passwd: all authentication tokens updated successfully.
(2)根据业务场景,在/etc/sudoers中给普通用户添加适当的sudo权限。
(3)编辑文件/etc/ssh/sshd_config,将PermitRootLogin设置为no,禁止root用户登录,如图1-1所示。
图1-1 禁止root用户登录
风险分析 非活动用户可能对系统安全造成威胁,例如对系统进行暴力破解、撞库攻击等。
加固详情 对于密码过期30天后仍未登录使用的用户,进行强制禁用。
加固步骤 执行命令useradd-D-f 30,将默认密码不活动期限设置为30天。
风险分析 防止非root用户访问root用户权限文件。
加固详情 确保root用户的GID为0。
加固步骤 执行命令usermod-g 0 root。
风险分析 防止非root用户访问root用户权限文件。
加固详情 确保仅root用户的UID为0。
加固步骤 执行命令awk-F: '($3==0) { print $1 }' /etc/passwd,返回UID为0的用户,确保返回的只有root用户,如果返回非root用户,则执行usermod命令修改用户的UID为非0数字。以下示例修改用户test的UID为1234。
[root@centos7~]# cat /etc/passwd|grep-i test
test:x:1004:1005::/home/test:/bin/bash
[root@centos7~]# usermod-u 1234 test
[root@centos7~]# cat /etc/passwd|grep-i test
test:x:1234:1005::/home/test:/bin/bash