(8)PAM认证模块通过PAM库将认证信息提供给应用程序。
(9)认证完成后,应用程序做出两种选择:
将所需权限赋予用户,并通知用户。
认证失败,并通知用户。
PAM工作流程见图1。
图1 PAM工作流程 PAM具体使用方法:
#cd /usr/src/redhat/SOURCES
/srp-2.1.1/base/pam_eps.
#install -m 644 pam_eps_auth.
so pam_eps_passwd.so /lib/security
上面命令会在/lib/security 目录下安装PAM模块。然后使用命令:"/usr/local/bin/tconf"创建/etc/tpasswd 和 /etc/tpasswd.conf文件。
2.使用EPS PAM模块进行密码验证
(1)首先备份 /etc/pam.d/system-auth文件
(2)修改 /etc/pam.d/system-auth文件如下形式:
auth required /lib/security/pam_unix.so likeauth
nullok md5 shadow
auth sufficient /lib/security/pam_eps_auth.so
auth required /lib/security/pam_deny.so
account sufficient /lib/security/pam_unix.so
account required /lib/security/pam_deny.so
password required /lib/security/pam_cracklib.so retry=3
password required /lib/security/pam_eps_passwd.so
password sufficient /lib/security/pam_unix.so
nullok use_authtok md5 shadow
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
注意上面第一行黑体字表示PAM的eps_auth模块可以满足认证需求。第二行黑体字表示PAM的pam_eps_passwd.so 模块用来进行密码管理。
(3)将标准密码转换为EPS格式
(4)/etc/pam.d/system-auth 配置文件的模块pam_eps_passwd.so 将EPS版本的密码验证字符串写入/etc/tpasswd 文件中。 修改 /etc/pam.dpasswd文件如下形式:
auth required /lib/security/pam_stack.so
service=system-auth
account required /lib/security/pam_stack.so
service=system-auth
password required /lib/security/pam_stack.so
service=system-auth
四、启动SRP版本下的Telnet服务器 (1)进入SRP源代码telnet子目录,分别建立Telnet服务器文件和Telnet客户端文件:
#cd /usr/src/redhat/SOURCES/srp-2.2.1/telnet
#make;make install
(2)建立超级访问程序/etc/xinetd.d/srp-telnetd 内容如下:
# description: The SRP Telnet server
serves Telnet connections.
# It uses SRP for authentication.
service telnet {
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/telnetd
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no }
(3)使用命令从新启动xinetd
#killall -USR1 xinetd
(4)建立/etc/pam.d/telnet 文件,内容如下:
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/telnetusers onerr=succeed
auth required /lib/security/pam_stack.so service=srp-telnet
auth required /lib/security/pam_shells.so
account required /lib/security/pam_stack.so service=srp-telnet
session required /lib/security/pam_stack.so service=srp-telnet
到此为止现在就建立了一个使用SRP服务的Telnet服务器。首先在本地进行试验。下面是一个典型会话:
$/usr/local/bin/telnet localhost 23
Trying 127.0.0.1...
Connected to localhost.intevo.com (127.0.0.1).
Escape character is '^]'.
[ Trying SRP ... ]
SRP Username (root): cao
[ Using 1024-bit modulus for 'cao' ]
SRP Password:
[ SRP authentication successful ]
[ Input is now decrypted with type CAST128_CFB64 ]
[ Output is now encrypted with type CAST128_CFB64 ]
Last login: Tue Dec 21 09:30:08 from cao.net
如果希望在其他Linux计算机使用telnet到SRP服务器,需要安装SRP服务支持和SRP客户机软件。方法是和在SRP服务器端相同的。
五、在非Linux平台上使用SRP客户机 SRP同样支持其他流行的操作系统(Unix、BSD、Winodws、MacOS)。只要安装Java插件浏览器即可。详细情况前查看相关网址:http://srp.stanford.edu/demo/ 。
总结:
以上提供了相对OPENSSH更加安全快捷的Telnet远程Linux服务器的方法,基于SRP服务 Telnet应用与其他网络应用一样属于客户机/服务器模型,一旦连通后,客户机可以享有服务器所提供的一切服务。SRP软件包是Telnet的安全软件。