Sun 企業辯證機制使用指南

SEAM 指令

Kerberos V5 是一種單一簽入的系統。這表示您只需要鍵入您的密碼一次,而 Kerberos V5 程式便會自動為您進行辯證(及選擇性的加密),因為 Kerberos 已經被建入每一個現存所有常見的網路程式套件中。Kerberos V5 應用程式是現存的 UNIX 網路程式新增 Kerberos 功能而得出的程式。

例如,當您使用一個 Kerberos 化程式與一個遠端主機連線時,程式、KDC、及遠端主機會執行一連串的快速協調。協調完成之後,您的程式便將您的身份證明給遠端主機,而遠端主機便會因此賦予您存取權限。

請注意 Kerberos 化的指令會先試著以 Kerberos 來進行辯證。如果 Kerberos 辯證失敗的話,會有一個錯誤發生,或者會嘗試 UNIX 的辯證,視與指令使用的選項而定。請參閱 Kerberos 指令線上援助頁中的 Kerberos 安全一節中的詳細資訊。

Kerberos 化指令的概觀

Kerberos 化的網路服務是在網際網路上某處與另一部機器連線的程式。這些程式位於 /usr/krb5/bin 中。請設定您的 PATH 變數好讓他們出現在非 Kerberos 的變數之前。程式包括﹕

這些程式都有與其相應的非 Kerberos 程式相同的功能。此外它們還有額外的功能,可以透明化地使用您的 Kerberos 許可證來與遠端主機協調辯證(及選擇性的加密)。在很多時候,您只會注意到您在使用他們時不再需要鍵入您的密碼,因為 Kerberos 可以證明您的身份。

Kerberos V5 網路程式可以讓您選擇﹕


註解 -

本節將假設您已經對非 Kerberos 的這些程式有所瞭解,因此只會重點式地說明 Kerberos V5 套裝軟體所附帶的 Kerberos 新增功能。欲知有關此處所說明指令的詳細資訊,請參見其各自的線上援助頁。


下列 Kerberos 選項已新增至 ftprcprloginrsh、及 telnet 中﹕

-a

嘗試使用您現存的許可證自動登入。使用如 getlogin() 所傳回的使用者名稱,除非它與目前的使用者識別碼不同。(請參見 telnet(1) 線上援助頁中的詳細說明。)

-f

將一張不可重新轉遞的許可證轉遞至一個遠端主機。此選項和 -F 不能並存(請參見下方);它們無法在相同的指令中一起使用。

如果您有理由相信您必須在一個第三方主機之上向其他 Kerberos 式的服務辯證自己的話,您就必須轉遞一張許可證 - 例如,您想要 rlogin 登入另一部機器然後再從它 rlogin 登入另一部機器。

如果您在遠端主機上的主目錄已使用 Kerberos V5 裝載的話,您就一定要使用一張可轉遞許可證。否則,您將無法存取您的主目錄。(也就是說,假設您一開始登入系統 1。然後又從系統 1 rlogin 登入您的主機器,系統 2,它又從系統 3 裝載您的主目錄。除非您已經與 rlogin 配合使用 -f-F 選項,否則您將無法取得您的主目錄,因為您的許可證無法被轉遞至系統 3。)

根據預設,kinit 會取得可轉遞的能賦予許可證的許可證 (TGT),不過您的 SEAM 設置在此可能會有所不同。

請參見 "以 -f 及 F 來轉遞許可證-" 中有關轉遞許可證的說明。

-F

將您的一張可重新轉遞之能賦予許可證的許可證副本轉遞給一個遠端系統。這和 -f 很類似(請參見上方),不過它還可讓您繼續存取其他更多(比方說第四或第五)的機器。因此 -F 選項可以被視為 -f 選項的上層集合。-F 選項無法與 -f 選項共存,它們無法被用於相同的指令中。

請參見 "以 -f 及 F 來轉遞許可證-" 中有關轉遞許可證的詳細說明。

-k realm

要求存取指定的範疇中的遠端主機之許可證,而不是使用 krb5.conf 檔案來自行決定範疇。

-K

使用您的許可證來向遠端主機辯證,但並不自動登入。

-m mechanism

指定要使用的 GSS-API 安全機制,如 /etc/gss/mech 檔案中所列。預設為 kerberos_v5

-x

加密此作業階段。

-Xauth_type

停用 auth_type 的辯證類型。

表 6-1 顯示擁有特定選項的指令(一個 "X" 表示指令有該選項)。

表 6-1 網路指令的 Kerberos 選項

 

ftp

rcp

rlogin

rsh

telnet

-a

 

 

 

 

-f

 

-F

 

 

-k

 

-K

 

 

 

 

-m

 

 

 

 

-x

 

-X

 

 

 

 

此外,ftp 允許一個作業階段的保護等級在其提示時設定﹕

clear

將保護等級設定為"clear"(沒有任何保護)。此為預設值。

private

將保護等級設定為"private"。利用加密來確保資料傳輸的保密性及整合性。不過這種專用的服務不適用於所有的 SEAM 使用者。

safe

將保護等級設定為"safety"。利用加密核對和來確保資料傳輸的整合性。

您也可以在上述的任何保護等級(clearprivate、或safety)之後輸入 protect,以在 ftp 提示時設定保護等級。

-f 及 F 來轉遞許可證-

"Kerberos 化指令的概觀" 中所述,您可以利用某些指令,配合 -f-F 選項來轉遞許可證。轉遞許可證可讓您將網路交換"鏈結"起來。例如,您可以 rlogin 登入一部機器,然後再從它 rlogin 登入到另一部機器。-f 選項允許您轉遞一張許可證,而 -F 選項則讓您重新將一張轉遞的許可證再轉遞出去。

圖 6-2 中,使用者 davidkinit 取得一張不可轉遞之能賦予許可證的許可證 (TGT)。(因為他並未指定 -f 選項,所以為不可轉遞。)在例 1 中,他可以 rlogin 登入機器 B,但是到此為止。在例 2 中,rlogin -f 指令因為他嘗試轉遞一張不可轉遞的許可證而失敗。

圖 6-2 使用不可轉遞的許可證

Graphic

(實際上 SEAM 設置檔案是預設為 kinit 取得可轉遞許可證。不過您的設置會有所不同。我們為了便於說明,就假設 kinit 沒有取得可轉遞的 TGT,除非它與 kinit -f 有關。同時請注意,kinit 並沒有一個 -F 選項;而 TGT 可以是可轉遞的,也可以不是。)

圖 6-3 中,davidkinit -f 取得可轉遞的 TGT。在例 3 中,他可以存取機器 C,因為他以 rlogin 使用一張可轉遞的許可證。而在例 4 中,第二個 rlogin 登入因為許可證不可重新轉遞而失敗。藉由改用 -F 選項,如例 5 所示,第二個 rlogin 登入成功,而且許可證也被重新重新轉遞至機器 D。

圖 6-3 使用可轉遞的許可證

Graphic

範例 - 使用 Kerberos 化的指令

下列範例將對 Kerberos 化指令選項的運作方式稍加說明。

範例 - 與 telnet 配合使用-a-f、及 -x 選項

在此範例中,使用者 david 已經登入,並且想要 telnet 至機器 denver.acme.com 之上。他使用 -f 選項來轉遞他現存的許可證,而以 -x 選項來加密作業階段,-a 選項來自動執行登入。因為他不打算使用第三部主機的服務, 因此可以使用 -f 而非 -F


% telnet -a -f -x denver.acme.com
Trying 128.0.0.5... 
Connected to denver.acme.com. Escape character is '^]'. 
[ Kerberos V5 accepts you as "david@eng.acme.com" ]
[ Kerberos V5 accepted forwarded credentials ]
SunOS 5.7: Tue May 21 00:31:42 EDT 1998  Welcome to SunOS  %

請注意,david 的機器是使用 Kerberos 來向 denver.acme.com 進行辯證,並且自動將他登入為本人。他有一個加密的作業階段,而且還準備好一份許可證的副本,也永遠不需要鍵入他的密碼。如果他使用的是非 Kerberos 的 telnet,他就會被提示要輸入他的密碼,而且密碼會在沒有加密的情況下透過網路傳送 - 如果當時剛好有人在盜取網路資料的交通,侵入者就會得知 david 的密碼。

如果您轉遞您的 Kerberos 許可證,telnet(以及其他此處所述的指令)便會在它結束時將它損毀。

範例 - 與 -F 選項配合使用 rlogin

在此使用者 jennifer 想要登入她自己的機器 boston.acme.com。她以 -F 來轉遞現存的許可證,並且利用 -x 來加密作業階段。她選擇使用 -F 而不是 -f,因為在她登入 boston 之後,還有可能要執行其他的網路交換,因此需要能夠隨時重新轉遞許可證。同時,因為她正在轉遞她現存的許可證,因此就不需要鍵入她的密碼。


% rlogin boston.acme.com -F -x
This rlogin session is using DES encryption for all transmissions.
Last login Mon May 19 15:19:49 from daffodil 
SunOS Release 5.7 (GENERIC) #2 Tue Nov 14 18:09:3 EST 1998 
%

範例 - 在 ftp 中設定保護等級

現在假設 joe 想要使用 ftp 來從 denver.acme.com 機器中的 ~joe/MAIL 目錄中獲取他的郵件,他就必須加密作業階段。其交換動作如下﹕


% ftp -f denver.acme.com
Connected to denver.acme.com
220 denver.acme.org FTP server (Version 6.0) ready.
334 Using authentication type GSSAPI; ADAT must follow
GSSAPI accepted as authentication type 
GSSAPI authentication succeeded Name (daffodil.acme.org:joe) 
232 GSSAPI user joe@MELPOMENE.ACME.COM is authorized as joe
230 User joe logged in.
Remote system type is UNIX.
Using BINARY mode to transfer files.
ftp> protect private
200 Protection level set to Private
ftp> cd ~joe/MAIL
250 CWD command successful.
ftp> get RMAIL
227 Entering Passive Mode (128,0,0,5,16,49)
150 Opening BINARY mode data connection for RMAIL (158336 bytes).
226 Transfer complete. 158336 bytes received in 1.9 seconds (1.4e+02 Kbytes/s)
ftp> quit
% 

要加密作業階段,joe 將保護等級設定為 private