SRP同樣支持其他流行的操作系統(Unix、BSD、Winodws、MacOS)。Kermit 95是一個工作在Windows 9x, ME, NT, and 2000, XP和 OS/2操作系統下的SRP客戶機。
三、建立指數密碼系統EPS
EPS全稱:Exponential Password System(指數密碼系統),SRP軟件包中已經包括EPS源代碼。
1. 安裝PAM模塊
PAM簡介:
PAM全稱:Pluggable Authentication Module (嵌入式認證模塊)。它最初有SUN公司開發;很快被Linux社區的接受,并且開發了更多的模塊。其目標是提供一套可用于驗證用戶身份的函數庫,從而將認證從應用程序開發中獨立出來。Linux-PAM處理四種獨立的(管理)工作。它們是: 認證管理; 帳號管理; 會話期間管理;和密碼管理。
PAM工作方式:
(1) 調用某個應用程序,以得到該程序的服務。
(2) PAM應用程序調用后臺的PAM庫進行認證工作。
(3) PAM庫在/etc/pam.d/目錄中查找有關應用程序細節的配置文件,該文件告訴PAM,本應用程序使用何種認證機制。
(4) PAM庫裝載所需的認證模塊。
(5) 這些模塊可以讓PAM與應用程序中的會話函數進行通信。
(6) 會話函數向用戶要求有關信息。
(7) 用戶對這些要求做出回應,提供所需信息。
(8) PAM認證模塊通過PAM庫將認證信息提供給應用程序。
(9) 認證完成后,應用程序做出兩種選擇:
將所需權限賦予用戶,并通知用戶。
認證失敗,并通知用戶。
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 |
#p#
注意上面第一行黑體字表示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版本下的FTP服務器
(1)進入SRP源代碼FTP子目錄,分別建立FTP服務器文件和FTP客戶端文件:
#cd /usr/src/redhat/SOURCES/srp-2.2.1/ftp
#make;make install |
(2)建立超級訪問程序/etc/xinetd.d/srp-ftpd 內容如下:
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/ftpd
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
} |
(3)使用命令從新啟動xinetd:
(4)建立/etc/pam.d/telnet 文件,內容如下:
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user \
sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_stack.so service=srp-ftp
auth required /lib/security/pam_shells.so
account required /lib/security/pam_stack.so service=srp-ftp
session required /lib/security/pam_stack.so service=srp-ftp |
到此為止現在就建立了一個使用SRP服務的FTP服務器。首先在本地進行試驗。下面是一個典型會話:
$$ /usr/local/bin/ftp localhost
Connected to localhost.intevo.com.
220 k2.intevo.com FTP server (SRPftp 1.3) ready.
SRP accepted as authentication type.
Name (localhost:kabir): cao
SRP Password: xxxxxxxx
SRP authentication succeeded.
Using cipher CAST5_CBC and hash function SHA.
200 Protection level set to Private.
232 user kabir authorized by SRP.
230 User kabir logged in.
Remote system type is UNIX.
Using binary mode to transfer file |
如果希望在其他Linux計算機使用FTP登錄到SRP服務器,需要安裝SRP服務支持和SRP客戶機軟件。方法是和在SRP服務器端相同的。使用SRP的FTP服務中非常好下面的密碼公式:
NONE (1)
BLOWFISH_ECB (2)
BLOWFISH_CBC (3)
BLOWFISH_CFB64 (4)
BLOWFISH_OFB64 (5)
CAST5_ECB (6)
CAST5_CBC (7)
CAST5_CFB64 (8)
CAST5_OFB64 (9)
DES_ECB (10)
DES_CBC (11)
DES_CFB64 (12)
DES_OFB64 (13)
DES3_ECB (14)
DES3_CBC (15)
DES3_CFB64 (16)
DES3_OFB64 (17) |
SRP也支持MD5和SHA哈希函數。缺省情況下SRP使用CAST5_CBC 密碼和SHA 函數。要使用其它格式的密碼。可以使用-c或-h選項。
#/usr/local/bin/ftp -c blowfish_cfb64 “ip地址” |
上面的命令使用BLOWFISH_CFB64 密碼而不是缺省的CAST5_CBC。
#/usr/local/bin/ftp –h md5 “ip地址” |
上面的命令使用MD5函數而不是缺省的SHA函數。
五、在非Linux平臺上使用SRP客戶機
SRP同樣支持其他流行的操作系統(Unix、BSD、Winodws、MacOS)。Kermit 95是一個工作在Windows 9x, ME, NT, and 2000, XP和 OS/2操作系統下的SRP客戶機。詳細情況前查看相關網址:http://www.columbia.edu/kermit/k95.html 。
總結
詳細的SRP工作原理可以在SRP的有關站點發現。地址是http://srp.stanford.edu/srp,在這里你可以得到有關協議的在線說明http://srp.standford.edu/srp/design.html或者是一個出版的關于SRP的技術白皮書http://srp.standford.edu/srp/ftp。 以上提供了相對OPENSSH更加安全快捷的FTP登錄遠程Linux服務器的方法,基于SRP服務 FTP應用與其他網絡應用一樣屬于客戶機/服務器模型,一旦連通后,客戶機可以享有服務器所提供的一切服務。
【編輯推薦】
- 教你用SRP服務構建Linux下FTP服務器(上)
- 一站式服務之:Linux FTP服務器安全完全攻略
- 用Linux構建高效FTP服務器
【責任編輯:
faya TEL:(010)68476606】
責任編輯:趙寧寧
來源:
百度博客
分享到微信
分享到微博