CentOS 7中系统安全及应用详述(3)

PAM(Pluggable Authentication Modules),是 Linux 系统可插拔认证模块,是一种高效而且灵活便利的用户级别的认证方式,它也是当前 Linux 服务器普遍使用的认证方式 。

PAM 认证原理

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

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

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

PAM 认证类型包括四种

认证管理:接受用户名和密码,进而对该用户的密码进行认证;
帐户管理:检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等;
密码管理:主要是用来修改用户的密码;
会话管理:主要是提供对会话的管理和记账。

控制类型,用于 PAM 验证类型的返回结果

required 验证失败时仍然继续,但返回 Fail

requisite 验证失败则立即结束整个验证过程,返回 Fail

sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续

optional 不用于验证,只是显示信息(通常用于 session 类型)

CentOS 7中系统安全及应用详述

可以通过查看PAM配置文件目录来查看支持PAM认证的服务项

[root@localhost ~]# ls /etc/pam.d //查看pam配置文件目录 atd gdm-pin postlogin-ac su chfn gdm-smartcard ppp sudo chsh ksu remote sudo-i config-util liveinst runuser su-l crond login runuser-l system-auth cups other setup system-auth-ac fingerprint-auth passwd smartcard-auth systemd-user fingerprint-auth-ac password-auth smartcard-auth-ac vlock gdm-autologin password-auth-ac smtp vmtoolsd gdm-fingerprint pluto smtp.postfix xserver gdm-launch-environment polkit-1 sshd gdm-password postlogin sssd-shadowutils //支持认证的服务项

每一个服务项目录下都存放着不同的安全认证配置文件,在/etc/security目录下同样存放在安全认证的配置文件。

[root@localhost ~]# ls /etc/security access.conf console.handlers group.conf namespace.conf opasswd sepermit.conf chroot.conf console.perms limits.conf namespace.d pam_env.conf time.conf console.apps console.perms.d limits.d namespace.init pwquality.conf

进入pam配置文件下目录服务项目录,查看安全认证信息。

[root@localhost ~]# vim /etc/pam.d/su #%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. #auth required pam_wheel.so use_uid auth substack system-auth auth include postlogin account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session include postlogin session optional pam_xauth.so

每一行都是一个独立的认证过程;每一行可以区分为三个字段:
auth:认证类型
sufficient:控制类型
pam_rook.so:PAM 模块及其参

在此模式下开启pam认证。

[root@localhost ~]# vim /etc/pam.d/su #%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. auth required pam_wheel.so use_uid //去掉此条目前# 开启pam认证 auth substack system-auth auth include postlogin account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session include postlogin session optional pam_xauth.so

wheel组

在Linux中wheel组就类似于一个管理员的组。在pam认证开启的情况下只有wheel组内的用户才可以通过su命令通过root用户密码进入root用户界面。如果不在wheel组内的普通用户即使有root密码也无法用su命令切换至root用户。这样也大大提高了root用户的安全性。

[root@localhost ~]# vim /etc/group //查看组 ...//省略部分内容... mem:x:8: kmem:x:9: wheel:x:10:sun //wheel组,现在只有sun一个用户 cdrom:x:11: mail:x:12:postfix man:x:15: dialout:x:18: ...//省略部分内容... [root@localhost ~]# su - sun //切换至sun用户 上一次登录:三 8月 28 16:22:56 CST 2019pts/0 上 [sun@localhost ~]$ su - root //切换到root用户 密码: 上一次登录:三 8月 28 16:23:23 CST 2019pts/0 上 [root@localhost ~]# su - siti //切换到siti用户 上一次登录:三 8月 28 16:23:14 CST 2019pts/0 上 [siti@localhost ~]$ su - root //切换到root用户 密码: su: 拒绝权限 //无法切换,拒绝访问 [siti@localhost ~]$

sudo提权

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/960b94ed28ea5d1b2e729797423d24df.html