Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|

系统安全|账户安全|登录控制

  • 一、账户安全管理
    • 1.清理系统账户
      • 1.1 将非登陆用户的Shell设为/sbin/nologin或者/bin/falsh
      • 1.2 锁定长期不使用的账号
      • 1.3 删除无用的账号
      • 1.4 清空一个账号密码
      • 1.5 锁定账号文件passwd、shadow
      • 1.6 禁止root用户登录
      • 1.7禁止普通用户登录
    • 2.密码安全控制
      • 2.1 设置新用户的密码有效期
      • 2.2 强制使某个用户下次登陆时更换密码
    • 3.防止历史记录泄露
      • 3.1 减少记录的命令条数
      • 3.2 登录时自动清理历史记录
    • 4.终端自动注销
    • 5.su用户切换命令
      • 5.1 限制用户进行切换用户操作
      • 5.2 给某个用户切换用户操作的权限
  • 二、PAM安全认证
    • 查看su操作记录
    • 1.PAM 认证原理
  • 三、账户权限管理
    • 1.单个用户权限
    • 2.别名组权限
  • 四、GRUB保护
    • 1.设置GRUB密码

一、账户安全管理

1.清理系统账户

1.1 将非登陆用户的Shell设为/sbin/nologin或者/bin/falsh

usermod -s /sbin/nologin 用户名

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第1张图片

1.2 锁定长期不使用的账号

usermod -L 用户名           //锁定用户账户  
passwd -l 用户名            //锁定用户密码
passwd -S 用户名            //查看用户状态

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第2张图片

1.3 删除无用的账号

userdel -r 用户名           //删除用户及其宿主目录

在这里插入图片描述

1.4 清空一个账号密码

passwd -d 用户名            //清空账户密码

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第3张图片

1.5 锁定账号文件passwd、shadow

chattr +i /etc/passwd /etc/shadow      //锁定文件
lsattr /etc/passwd /etc/shadow         //查看文件状态
chattr -i /etc/passwd /etc/shadow      //解锁文件

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第4张图片

1.6 禁止root用户登录

在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统

vi /etc/securetty           
#tty5           
//想要不让在哪个终端登陆就在该终端前加注释#
tty6  

1.7禁止普通用户登录

login 程序会检查/etc/nologin 文件是否存在,如果存在,则拒绝普通用户登录系统(root 用户不受限制)

touch /etc/nologin
//创建/etc/nologin文件即禁止普通用户登录
rm -rf /etc/nologin			
//删除该文件即取消登录限制

2.密码安全控制

chage -M 日期 用户                //设置用户密码有效期
chage -E xxxx-xx-xx             //设置过期日期
[xxxx为年][xx为月]-[xx为日]

在这里插入图片描述

2.1 设置新用户的密码有效期

vim /etc/login.defs     //修改密码配置文件适用于新建用户

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第5张图片

2.2 强制使某个用户下次登陆时更换密码

chage -d 0 用户             //强制在下次登陆时更改密码

3.防止历史记录泄露

原因:不法分子会查看上次输入的记录,可能导致root密码等重要信息揭露

3.1 减少记录的命令条数

vi /etc/profile              //编辑全局变量配置文件
export HISTZIZE=200          //将内容插入最后一行

在这里插入图片描述
历史记录将只保留最近的200条

3.2 登录时自动清理历史记录

vim ~/.bashrc
echo " " > ~/.bash_history     //将内容插入最后一行

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第6张图片

4.终端自动注销

当终端处于闲置一段时间后实现自动注销

vim /etc/profile              //编辑全局变量配置文件
export TMOUT=600             //将内容插入最后一行

5.su用户切换命令

su命令使得每个用户都具有反复尝试其他用户的登陆密码,若是root用户,则风险更大

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块
vim /etc/pam.d/su

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第7张图片

  • 以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的
  • 两行都注释也是允许所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码

pam_rootok.so模块的主要作用是使uid为0的用户,即 root用户能够直接通过认证而不用输入密码

  • 如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
  • 如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令
第一列代表PAM认证模块类型 解释
auth 对用户身份进行识别,如提示输入密码,判断是否为root。
account 对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
password 使用用户信息来更新数据,如修改用户密码。
session 定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。
第二列代表PAM控制标记 解释
required 表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
requisite 与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient 如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
optional 不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session 类型)。
include 表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。

第三列代表PAM模块默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。

第四列代表PAM模块的参数这个需要根据所使用的模块来添加。

5.1 限制用户进行切换用户操作

vim /etc/pam.d/su
#auth    required    pam_wheel.so use_uid
//去除此段的#

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第8张图片

5.2 给某个用户切换用户操作的权限

gpasswd -a gtt wheel     //将用户“gtt7”加入到whell组中

在这里插入图片描述

二、PAM安全认证

  • Linux-PAM是linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式

  • PAM使用/etc/pam.d/下的配置文件,来管理对程序的认证方式。应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在/lib64/security下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的

查看su操作记录

安全日志文件:/var/log/secure

cat /var/log/secure

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第9张图片

1.PAM 认证原理

  • PAM 认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so(认证模块)

  • PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于 /lib64/security/下)进行安全认证

  • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM 模块也是不同的

如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看/etc/pam.d/

ls /etc/pam.d/                    //PAM配置文件

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第10张图片

ls /lib64/security/             //认证模块

Linux 私房菜————Linux系统基本操作命令(十二)|系统安全|账户安全|登录控制|_第11张图片

三、账户权限管理

vim /etc/sudoers         //默认为只读,保存方式:wq!
或
visudo

1.单个用户权限

  • 格式1:用户 主机名=命令程序列表
  • 格式2:(用户) 主机名=命令程序列表
fox foxhome=/sbin/ifconfig  //使fox拥有ifconfig权限
fox foxhome=!/sbin/reboot   //使fox没有reboot权限
fox foxhome=/sbin/*         //使fox拥有所有sbin权限
fox foxhome=/sbin/reboot,poweroff //加逗号自定义

1.1禁止某用户开关机

2.别名组权限

  • 用户别名 User_Alias
  • 主机别名 Host_Alias
  • 命令别名 Cmnd_Alias
User_Alias USERS=fox,cat 
//用户的别名users包含fox和cat

Host_Alias HOSTS=foxhome,cathome   
//主机别名hosts包括:foxhome和cathome

Cmnd_Alias CMNDS=/sbin/reboot,poweroff
//可执行的命令包括关机和重启

USERS HOSTS=CMNDS        
//相当于:用户组   主机组  =  命令程序列表

四、GRUB保护

不法分子会借着开关机的期间进入BIOS界面篡改GRUB的内容,最后导致服务器无法正常开启

1.设置GRUB密码

使用grub2-mkpasswd-pbkdf2生成密钥

grub2-mkpasswd-pbkdf2

从grub到最后都是密钥,记得保存好
在这里插入图片描述

创建登录用户前记得先备份

//对重要文件进行备份
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

vim /etc/grub.d/00_header

在这里插入图片描述

你可能感兴趣的:(linux,shell,运维,云计算,bash)