摘自:https://blog.csdn.net/jhcsdb/article/details/15780433
PAM--- Pluggable Authentication Module
Linux下可扩展的鉴权模块,用户进程服务某服务进程,服务进程先把请求送到PAM模块进行鉴权,PAM根据服务名从/etc/pam.d/目录选择一个服务文件,根据服务文件的配置内容进行鉴权。
通过ldd命令查看服务名,确定服务是否使用pam功能(pam服务对应libpam*.so库文件):
ldd /usr/sbin/sshd
linux-vdso.so.1 => (0x00007fff1b8ef000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f579f2d8000)
libpam.so.0 => /lib64/libpam.so.0 (0x00007f579f0cb000)
/lib/security目录存放pam模块文件,支持哪些鉴权功能:
pam_access.so 控制访问者地址与账号名称 pam_listfile.so 控制访问者的账号名称或登录位置 pam_limits.so 控制为用户分配的资源 pam_rootok.so 对管理员(uid=0)无条件允许通过 pam_userdb.so 设定独立用户账号数据库认证
/etc/pam.d目录存放使用pam的服务名,哪些进程会使用pam模块:
[[email protected] ~]$ ls /etc/pam.d/ atd cups gdm-password ksu poweroff smartcard-auth sudo-i system-config-network authconfig cvs gnome-screensaver login ppp smartcard-auth-ac su-l system-config-network-cmd authconfig-gtk eject halt newrole reboot smtp system-auth system-config-users authconfig-tui fingerprint-auth kcheckpass other remote smtp.postfix system-auth-ac xdm chfn fingerprint-auth-ac kdm passwd run_init sshd system-config-authentication xserver chsh gdm kdm-np password-auth runuser ssh-keycat system-config-date config-util gdm-autologin kppp password-auth-ac runuser-l su system-config-kdump crond gdm-fingerprint kscreensaver polkit-1 setup sudo system-config-keyboard
login -------/etc/pam.d/login ipop3d -------/etc/pam.d/pop vsftpd -------/etc/pam.d/ftp(编译安装)或/etc/pam.d/vsftpd(rpm安装) sshd -------/etc/pam.d/sshd su -------/etc/pam.d/su
/etc/security/目录存放pam认证、鉴权时使用的配置文件,如limits.conf
[[email protected] ~]$ 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 pam_winbind.conf
一个服务进程AA使用pam鉴权功能需要做两步:
第一步:修改/etc/pam.d/AA 文件,指定AA服务需要加载一个libpam_XXXX.so动态库。
第二步:修改/etc/security/XXXX.conf,指定XXXX操作需要满足哪些鉴权规则。
通过配置文件增改删进程的鉴权规则,下面介绍两个常用的pam模块
- pam_access.so模块的使用―――控制访问sshd服务的主机和用户
1.修改需使用这个模块的服务文件/etc/pam.d/sshd 添加 account required pam_access.so 2.修改模块的配置文件 /etc/security/access.conf - : redhat : ALL EXCEPT 192.168.0. (ip为192.168.0.X的redhat机器无权访问) 结果:ip为192.168.0.X的redhat机器执行ssh时,无法登录该机器。
- pam_limits.so 模式使用
1.模块应用到sshd服务,修改服务文件 #vi /etc/pam.d/sshd 添加: session required pam_limits.so session控制用户进程的登录次数,文件大小,通过控制用户的会话进程来限制用户使用的资源。 2.编缉pam_limits.so的配置文件/etc/security/limits.conf * hard nofile 65536 * soft nofile 65535 任意用户进程的句柄上限都是65535。
原文地址:https://www.cnblogs.com/LiuYanYGZ/p/12381651.html