系统安全

将非登录用户的Shell设为/sbin/nologin

查看/etc/passwd 文件,可以看到多个程序用户

使用usermod命令修改登录shell

锁定长期不使用的账号

usermod -L mcl    锁定用户方式一

usermod -U mcl    解锁用户方式一

passwd -l mcl    锁定用户方式二

passwd -u mcl    解锁用户方式二

删除无用的账号

userdel -r 用户名

密码安全控制——设置密码规则

一般通过设置密码规则来控制密码安全,主要设置以下两点:

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

对于新建用户——修改/etc/login.defs文件

对于新建用户,可以修改/etc/login.defs文件里的内容来设置密码规则。

查看/etc/login.defs文件:

 

参数说明:

PASS_MAX_DAYS #密码最大有效期

PASS_MIN_DAYS #两次修改密码的最小间隔时间

PASS_MIN_LEN #密码最小长度,对于root无效

PASS_WARN_AGE #密码过期前多少天开始提醒

对于现有用户——chage命令

命令格式:

 chage [选项] 用户名

选项:

-m:密码可更改的最小天数。为0时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。

-W:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:设置”最后一次修改密码的日期“。设置为 0 有特殊意思,表示用户应该在下次登录系统时更改密码。

-i:停滞时期。允许密码过期后多少天内仍能使用,如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。

Linux中的PAM安全认证

su命令的安全隐患

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

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

是一种高效而且灵活便利的用户级别的认证方式

也是当前Linux服务器普遍使用的认证方式

PAM认证原理:

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

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

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

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

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

使用sudo机制提升权限

sudo命令的用途及用法

用途 :以其他用户身份(如root执行授权的命令)

用法:sudo 权限命令

配置sudo授权

visudo或者vi /etc/sudoers(此文件没有写的权限,保存时必须 wq!强制执行操作)

记录格式:用户 主机名=命令程序列表

可以使用通配符“ * ”号任意值和“ !”号进行取反操作。

权限生效后,有5分钟的闲置时间,超过5分钟没有操作则需要再输入密码。

操作格式

用户  主机名=命令程序列表

用户  主机名=(用户)命令程序列表

mcl  ALL=(root)   /sbin/ifconfig   sudo  -l

用户: 直接授权指定的用户名,或采用“&组名"的形式(授权一个组的所有用户)

主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机

(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令

命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,"进行分隔。ALL则代表系统中的所有命令

执行调用格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)

启用sudo操作日志

需启用Defaults logfile配置

默认日志文件:/var/log/sudo

操作:在/etc/sudoers末尾添加Defaults logfile="/var/log/sudo"

 
posted @ 2022-10-15 18:40  林乃均  阅读(128)  评论(0编辑  收藏  举报