- 计算节点pam限制
调度系统slurm提供了pam插件,可以实现如下功能:
当且仅当计算节点运行普通用户作业的情况下,该用户才可以通过ssh登录该计算节点。
计算节点的调度系统安装后,在/lib64/security下存在如下三个库文件:
/lib64/security/pam_slurm_adopt.a
/lib64/security/pam_slurm_adopt.la
/lib64/security/pam_slurm_adopt.so
调度系统主配置文件/opt/gridview/slurm/etc/slurm.conf的若干配置参数需要进行调整,如下所示:/
PrologFlags=CONTAIN
TaskPlugin=task/cgroup
ProctrackType=proctrack/cgroup
此外,/opt/gridview/slurm/etc/cgroup.conf配置示例如下:
CgroupAutomount=yes
ConstrainCores=yes
配置后,重启slurmctld以及所有计算节点的slurmd服务
systemctl restart slurmctld
systemctl restart slurmd
系统相关pam配置
计算节点的调度系统安装后,在/lib64/security下存在如下三个库文件,如下所示:
/lib64/security/pam_slurm_adopt.a
/lib64/security/pam_slurm_adopt.la
/lib64/security/pam_slurm_adopt.so
这些库文件是操作系统启用pam限制的基础。
在具体配置层面,每个计算节点需要修改如下的配置项:
(1)/etc/ssh/sshd_config
确保该配置文件中启用了“UsePAM yes”选项。
(2)/etc/pam.d/sshd
修改sshd服务的PAM配置文件,添加pam_listfile.so和pam_slurm_adopt两行“account”配置,示例如下:
…
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
account required pam_nologin.so
account include password-auth
account sufficient pam_listfile.so item=user sense=allow onerr=fail file=/etc/ssh/allowed_users
account required pam_slurm_adopt.so
password include password-auth
# pam_selinux.so close should be the first session rule
…
(3)/etc/pam.d/system-auth
在该配置文件中注释掉原有的“pam_localuser.so”和“pam_systemd.so”,配置示例如下:
…
account required pam_unix.so broken_shadow
#account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
…
session optional pam_keyinit.so revoke
session required pam_limits.so
#-session optional pam_systemd.so
session optional pam_oddjob_mkhomedir.so umask=0077
#session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
session optional pam_ldap.so
(4)/etc/pam.d/password-auth
与system-auth类似,注释掉原有的“pam_localuser.so”和“pam_systemd.so”,配置示例如下:
…
account required pam_unix.so broken_shadow
#account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
…
session optional pam_keyinit.so revoke
session required pam_limits.so
#-session optional pam_systemd.so
session optional pam_oddjob_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
session optional pam_ldap.so
5)/etc/ssh/allowed_users
该配置文件是sshd白名单列表。在该配置文件中的用户不受pam配置限制。
配置文件示例如下:
root
sugon
chmod 600 /etc/ssh/allowed_users限制文件权限。
配置以上内容后,重启sshd服务即可。
systemctl restart sshd
在上述配置的情况下,root用户和sugon用户将不受上述调度系统的pam插件限制。