分类: LINUX
2007-06-16 14:17:41
3、pam_unix认证模块
所属类型: account; auth; password; session
功能描述:该模块是标准UNIX认证模块pam_unix的替代模块。
在作为auth类型使用时,此时该模块可识别的参数有debug、audit、use_first_pass、try_first_pass、nullok、nodelay,主要功能是验证用户密码的有效性,在缺省情况下(即不带任何参数时),该模块的主要功能是禁止密码为空的用户提供服务;
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth required /lib/security/$ISA/pam_deny.so
在作为account类型使用时,此时该模块可识别的参数有debug、audit,该模块主要执行建立用户帐号和密码状态的任务,然后执行提示用户修改密码,用户采用新密码后才提供服务之类的任务;
account required /lib/security/$ISA/pam_unix.so
account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet
account required /lib/security/$ISA/pam_permit.so
在作为password类型使用时,此时该模块可识别的参数有debug、 audit、 nullok;、not_set_pass、use_authtok、try_first_pass、use_first_pass、md5、bigcrypt、shadow、nis、
remember,该模块完成让用户更改密码的任务;
password requisite /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5
shadow
password required /lib/security/$ISA/pam_deny.so
在作为session类型使用时,此时该模块没有可识别的参数,该模块仅仅完成记录用户名和服务名到日志文件的工作。
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
可带参数:
debug:将调试信息写入日志
audit:记录更为信息的信息
nullok:缺省情况下,如果用户输入的密码为空,则系统能够不对其提供任何服务。但是如果使用参数,用户不输入密码就可以获得系统提供的服务。同时,也允许用户密码为空时更改用户密码。 ?
nodelay:当用户认证失败,系统在给出错误信息时会有一个延迟,这个延迟是为了防止。黑客猜测密码,使用该参数时,系统将取消这个延迟。通常这是一个1秒钟的延迟。
try_first_pass:在用作auth模块时,该参数将尝试在提示用户输入密码前,使用前面一个堆叠的auth模块提供的密码认证用户;在作为password模块使用时,该参数是为了防止用户将密码更新成使用以前的老密码。
use_first_pass:在用作auth模块时,该参数将在提示用户输入密码前,直接使用前面一个堆叠的auth模块提供的密码认证用户;在作为password模块使用时,该参数用来防止用户将密码设置成为前面一个堆叠的password模块所提供的密码。
no_set_pass:使密码对前后堆叠的password模块无效。
use_authok:强制使用前面堆叠的password模块提供的密码,比如由pam_cracklib模块提供的新密码。
md5:采用md5对用户密码进行加密。
shadow:采用影子密码。
unix:当用户更改密码时,密码被放置在/etc/passwd中。
bigcrype:采用DEC C2算法加密用户密码。
nis:使用NIS远处过程调用来设置新密码。
remember=x:记录x个使用过的旧密码,这些旧密码以MD5方式加密后被保存在/etc/security/opasswd文件中。
broken_shadow:在作为account使用时,该参数用来忽略对影子密码的读错误。
likeauth:未知。
配置实例:
参考/etc/pam.d/system-auth
设置密码中的常见错误信息?
⑴当用户输入的密码字符数太少时:
BAD PASSWORD: it's WAY too short
⑵当用户输入的密码相同字符太多时:
BAD PASSWORD: it does not contain enough DIFFERENT characters
⑶当用户输入的密码为某英文单词时:
BAD PASSWORD: it is based on a dictionary word
⑷当用户在“(current) UNIX password:”提示后输入的现有密码错误时:passwd: Authentication token manipulation error
⑸当用户两次输入的密码不相同时:Sorry, passwords do not match passwd: Authentication information cannot be recovered
⑹当用户输入的密码未被系统接受时:
passwd: Authentication token manipulation error
example 1
auth required pam_securetty.so
只用来控制root用户只可以从包含在/etc/securetty文件中的终端登录系统。
telnet 服务使用PAM的login进行用户身份验证,#more /etc/pam.d/login便能看到此行,要让root不受限制远程login,第一种方法注销此处这一行,另一种在 /etc/securetty文件中加入诸如pts/n(1-n);
同理如果想限制root使用ssh远程进入系统,只需在/etc/pam.d/sshd文件中加入这行;auth required pam_securetty.so即可。
example 2