PAM限制實測

XXLLA發表於2024-11-19
  • 計算節點pam限制

排程系統slurm提供了pam外掛,可以實現如下功能:

當且僅當計算節點執行普通使用者作業的情況下,該使用者才可以透過ssh登入該計算節點。

計算節點的排程系統安裝後,在/lib64/security下存在如下三個庫檔案:

/lib64/security/pam_slurm_adopt.a

/lib64/security/pam_slurm_adopt.la

/lib64/security/pam_slurm_adopt.so

PAM限制實測

排程系統主配置檔案/opt/gridview/slurm/etc/slurm.conf的若干配置引數需要進行調整,如下所示:/

PrologFlags=CONTAIN

TaskPlugin=task/cgroup

ProctrackType=proctrack/cgroup

PAM限制實測

此外,/opt/gridview/slurm/etc/cgroup.conf配置示例如下:

CgroupAutomount=yes

ConstrainCores=yes

PAM限制實測

配置後,重啟slurmctld以及所有計算節點的slurmd服務

systemctl restart slurmctld

systemctl restart slurmd

PAM限制實測

系統相關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”選項。

PAM限制實測

(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

PAM限制實測

(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

PAM限制實測

(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

PAM限制實測

5)/etc/ssh/allowed_users

該配置檔案是sshd白名單列表。在該配置檔案中的使用者不受pam配置限制。

配置檔案示例如下:

root

sugon

chmod 600 /etc/ssh/allowed_users限制檔案許可權。

配置以上內容後,重啟sshd服務即可。

systemctl restart sshd

在上述配置的情況下,root使用者和sugon使用者將不受上述排程系統的pam外掛限制。

相關文章