Linux系统安全及sudo机制

本文详细阐述了Linux系统中账号安全管理的基本措施,包括清理非登录用户、设置密码策略、限制su命令使用和启用PAM认证,以及利用sudo提升权限的配置与日志监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.账号安全基本措施

1.系统账号清理

  • 将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
  • 锁定长期不使用的账号
usermod -L 用户名
passwd -l  用户名
passwd -S  用户名
  • 删除无用的账号
userdel [-r] 用户名
  • 锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow
  • 解锁文件并查看状态
lsattr /etc/passwd /etc/shadow
chattr -i /etc/passwd /etc/shadow

在这里插入图片描述

二.账号安全基本措施

1.密码安全控制

  • 设置密码有效期
  • 要求用户下次登录时修改密码

适用于新建用户

vim  /etc/login.defs

在这里插入图片描述
在这里插入图片描述

  • “30”代表最长有效天数,99999代表永久有效
  • “0”代表最短有限天数
  • “5”密码长度
  • “7”警告密码过期时间
    在这里插入图片描述

适用于已有用户

chage -M 时间 用户名

在这里插入图片描述
强行在下次登录时更改密码:

chage -d 0 xxx

在这里插入图片描述

在这里插入图片描述
2.命令历史限制

  • 临时清空历史命令
history -c    临时清空

在这里插入图片描述

  • 减少记录的命令条数(最大1000条)
vim /etc/profile

在这里插入图片描述
进入/etc/profile进行修改,注意须在histsize前加上export,表示开启全局
在这里插入图片描述
在这里插入图片描述

  • 登录时自动清空命令历史
    执行vim .bashrc命令,
    将echo " " > ~/.bash_history添加在末尾
    在这里插入图片描述
    在这里插入图片描述
  • 终端自动注销

执行vim /etc/profile命令
在这里插入图片描述
在这里插入图片描述

三.使用su命令切换用户

1.用途及用法

  • 用途:Substitute User,切换用户
  • 格式:su_目标用户
    在这里插入图片描述

2.密码验证

  • root→任意用户,不验证密码
  • 普通用户→其他用户,验证目标用户的密码
    在这里插入图片描述

3.限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块
gpasswd -a 【用户名】 wheel
#将用户加入wheel组

vi /etc/pam.d/su
#进入设置su使用命令

在这里插入图片描述
进入设置su使用命令
在这里插入图片描述
在这里插入图片描述
☝ 小说明:
对于 /etc/pam.d/su 文件中的配置:

  1. 默认是开启第2行,注释第6行,这种状态下是允许所有用户间使用su命令进行切换的。 如果第2行不注释,pam rootok.so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证切换普通用户不需要输入密码;
  2. 两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;
  3. 如果开启第6行,表示只有root用户和wheel组内的用户才可以使用su命令。
  4. 如果注释第1行,开启第6行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令
  1. 查看su操作记录

日志文件:/var/log/secure,新执行的操作信息会新增在末尾
在这里插入图片描述

四.Linux中的PAM安全认证

1.su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

2.PAM(Pluggable Authentication Modules)可插拔式认证模块

  • 是一种高效而且灵活便利的用户级别的认证方式
  • 也是当前Linux服务器普遍使用的认证方式
    在这里插入图片描述

3.PAM认证原理:
① .PAM认证一般遵循的顺序:Service (服务)–> PAM(配置文件)–> pam_*.so;
② .PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/ lib64/ security/下)进行安全认证。
③ .用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到Pw模块进行认证。不同的应用程序所对应的PA模块也是不同的。

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

☛ PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用

◆ 在PAM的su配置文件 /etc/pam.d/su 文件中
在这里插入图片描述

  • 第一列代表 PAM认证模块类型(auth、account、password、session)
  • 第二列代表 PAM控制标记(required、requisite、sufficient、optional、include)
  • 第三列代表 PAM模块,默认是在 /lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
  • 第四列代表 PAM模块的参数,这个需要根据所使用的模块来添加。

◆ PAM安全认证流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果

  1. required验证失败时仍然继续,但返回Fail
  2. requisite验证失败则立即结束整个验证过程,返回Fail
  3. sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
  4. optional不用于验证,只显示信息(通常用于session类型)
    在这里插入图片描述

五.使用sudo机制提升权限

1.sudo命令的用途及用法
● 用途:以其他用户身份(如root)执行授权的命令
● 用法:sudo 授权命令
2.配置stdo授权
● visudo或者vim /etc/sudoers——(此文件的默认权限为440,保存退出时必须执行":wq!"命令来强制操作)

● 记录格式:用户 主机名=(用户)命令程序列表
语法解析:
用户:直接授权指定的用户名,或采用"%组名"的形式(授权一个组的所有用户)
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,A.L则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号" "进行分隔。ALL则代表系统中的所有命令
可使用which命令查看命令程序的完整路径

例子:

Tom ALL=/ sbin/ifconfig

Jerry localhost=/sbin/*,! / sbin/reboot, ! / sbin/poweroff
#通配符"*"表示所有、取反符号"!"表示排除

%wheel ALL=NOPASSwD:ALL
#表示wheel组成员无需验证密码即可使用sudo执行任何命令

Mike ALL=(root)NOPASSwD:/bin/kill,/usr/bin/killall

实验:
比如用普通用户 haha创建网卡,结果无操作权限:
在这里插入图片描述
此时用 root 用户登录,执行 visudo,在末尾添加 haha ALL=/sbin/ifconfig,wq保存,再看 /etc/sudoers 文件,发现也增加了:
在这里插入图片描述
切换到haha用户,执行 sudo 命令,输入一次登录密码,就能执行 ifconfig 命令成功新增网卡 ens33:1,因为已经授权了/sbin/ifconfig 命令了。
在这里插入图片描述
3.sudo 设置别名

使用关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置别名(别名必须为大写)

User_Alias USERS=Tom, Jerry, Mike

Host_Alias HOSTS=localhost, bogon

Cmnd_Alias CMNDS=/ sbin/ ifconfig, /usr/ sbin/useradd,/usr/sbin/ userdel

USERS HOSTS=CMNDS

USERS HOSTS=NOPASSWD:CMNDS
#执行过程不需要验证密码

在这里插入图片描述
在这里插入图片描述

4.启动sudo操作日志

在 /etc/sudoers 中新增一行代码Defaults logfile = /var/log/sudo,启动sudo操作日志
在这里插入图片描述

在这里插入图片描述

5.查看授权的sudo操作

sudo -l  查询当前用户可使用哪些授权命令

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值