이 장은 시스템에 SEAM을 이미 설치한 사용자를 대상으로 하며 SEAM에서 제공하는 ftp, rcp, rlogin, rsh, telnet 등의 "Kerberos 암호화를 지원하는" 명령 사용법에 대해 설명합니다. 이들은 Kerberos 암호화를 지원하지 않는 버전에서 이미 익숙한 명령들입니다. 이 설명서를 보면 Kerberos 암호화를 지원하는 버전과 그렇지 않은 버전이 본질적으로 동일함을 알 수 있습니다. 실제로 Kerberos 암호화 여부에 상관 없이 이러한 명령을 사용할 수 있지만, 차이점은 Kerberos를 이용한 기능(예: rlogin 사용 시 티켓 전송 기능)의 사용 여부에 있습니다.
이 장의 내용은 일반 사용자를 대상으로 하기 때문에 티켓 얻기, 보기, 폐기에 대한 정보가 포함되어 있습니다. 또한 Kerberos 암호 선택 및 변경에 대한 정보도 있습니다.
SEAM에 대한 개요는 제 1 장을 참고하십시오.
다음은 이 장의 주요 내용입니다.
이 절에서는 티켓 얻기와 보기, 폐기 방법에 대해 설명합니다. 티켓에 대한 개요는 "SEAM 작동 방법"을 참고하십시오.
SEAM을 설치하면 Kerberos가 login 명령에 내장되어 로그인 시 자동으로 티켓을 얻을 수 있습니다. rsh, rcp, telnet, rlogin 등의 Kerberos 암호화를 지원하는 명령은 티켓 복사본을 다른 시스템에 전송하도록 설정되어 있으므로 해당 시스템에 액세스할 때 티켓을 요청할 필요가 없습니다. (자동 전송 기능은 기본 설정이나 SEAM 구성 시 제외할 수도 있습니다.) 티켓 전송에 대한 자세한 내용은 "Kerberos 암호화를 지원하는 명령의 개요"와 "-f 및 -F를-사용한 티켓 전송-"을 참고하십시오.
대부분의 Kerberos 암호화를 지원하는 명령은 명령 종료 시 티켓을 자동으로 폐기하지만 kdestroy 를 사용하여 직접 폐기할 수도 있습니다. kdestroy에 대한 자세한 내용은 "티켓 폐기 방법"을 참고하십시오.
티켓 유효 기간에 대한 내용은 "티켓 유효 기간"을 참고하십시오.
일반적으로 티켓은 로그인시 자동으로 작성되므로 이를 얻기 위해 특별히 실행할 작업은 없습니다. 단, 다음과 같은 경우에는 티켓을 작성해야 합니다.
티켓이 만기된 경우
기본 주체가 아닌 다른 주체를 사용해야 할 경우(예: rlogin -l 을 사용하여 다른 사용자로 시스템에 로그인하는 경우)
티켓을 작성하려면 kinit 명령을 사용합니다.
% /usr/krb5/bin/kinit |
kinit에서 암호를 입력하라는 메시지가 나타납니다. kinit 명령의 전체 구문은 kinit(1) 매뉴얼 페이지를 참고하십시오.
다음 예에서는 사용자 jennifer가 자신의 시스템에서 티켓을 작성합니다.
% kinit jennifer@ENG.ACME.COM의 암호: <암호를 입력하십시오> |
다음은 사용자 david가 세 시간 동안 유효한 티켓을 -1 옵션을 사용하여 작성하는 예입니다.
% kinit -l 3h david@ACME.ORG Password for david@ACME.ORG: <암호를 입력하십시오> |
다음 예에서는 david가 -f 옵션을 사용하여 전송 가능 티켓을 작성합니다. 예를 들어, 이 전송 가능 티켓을 사용하여 2차 시스템에 로그인한 다음 3차 시스템에 telnet할 수 있습니다.
% kinit -f david@ACME.ORG david@ACME.ORG의 암호: <암호를 입력하십시오> |
전송 티켓 사용 방법에 대한 자세한 내용은 "-f 및 -F를-사용한 티켓 전송-"과 "티켓 유형"을 참고하십시오.
모든 티켓이 동일하지는 않습니다. 예를 들어 전송 가능 티켓과 날짜를 늦춰 적은 티켓의 속성을 모두 가진 티켓 등이 있을 수 있습니다. klist 명령과 -f 옵션을 사용하여 가지고 있는 티켓의 종류와 속성을 볼 수 있습니다.
% /usr/krb5/bin/klist -f |
다음 기호는 klist에서 각 티켓의 속성을 나타냅니다.
F |
전송 가능 |
f |
전송됨 |
P |
프록시 가능 |
p |
프록시 |
D |
날짜를 늦춰 적을 수 있는 |
d |
날짜를 늦춰 적은 |
R |
갱신 |
I |
초기 |
i |
유효하지 않은 |
"티켓 유형"에서는 여러 가지 티켓 속성에 대해 설명합니다.
다음 예에서 사용자 jennifer는 초기 티켓을 가지고 있는데 이는 전송 가능(F) 티켓이자 날짜를 늦춰 적은(d) 티켓이지만 아직 유효하지 않은(i) 티켓입니다.
% /usr/krb5/bin/klist -f 티켓 캐시: /tmp/krb5cc_74287 기본 주체: jenniferm@ENG.ACME.COM 유효 기간 시작일 만기일 서비스 주체 1999년 3월 9일 15:09:51 1999년 3월 9일 21:09:51 nfs/ACME.SUN.COM@ACME.SUN.COM 1999년 3월 10일 15:12:51까지 갱신, 플래그: Fdi |
다음 예에서 사용자 david는 다른 호스트에서 자신의 호스트로 전송된(f) 티켓을 두 장 가지고 있습니다. 이들은 전송 가능한(F) 티켓이기도 합니다.
% klist -f 티켓 캐시: /tmp/krb5cc_74287 기본 주체: david@ACME.SUN.COM 유효 기간 시작일 만기일 서비스 주체 1999년 3월 7일 06:09:51 1999년 3월 9일 23:33:51 host/ACME.COM@ACME.COM 1999년 3월 10일 17:09:51까지 갱신, 플래그: fF 유효 기간 시작일 만기일 서비스 주체 1999년 3월 8일 08:09:51 1999년 3월 9일 12:54:51 nfs/ACME.COM@ACME.COM 1999년 3월 10일 15:22:51까지 갱신, 플래그: fF |
일반적으로 티켓을 작성한 명령이 종료되면 티켓은 자동으로 폐기됩니다. 그러나 사용이 끝난 후 Kerberos 티켓을 직접 폐기할 수도 있습니다. 티켓은 도난 당할 수도 있는데 이런 경우 티켓을 훔친 사람이 만기일까지 사용할 수 있습니다(단, 도난 당한 티켓은 해독해야만 사용할 수 있습니다).
티켓을 폐기하려면 kdestroy 명령을 사용합니다.
% /usr/krb5/bin/kdestroy |
kdestroy 명령은 사용 중인 모든 티켓을 폐기합니다. 이 명령으로 특정 티켓만 선택하여 폐기할 수는 없습니다.
사용자가 시스템을 사용하지 않는 동안 권한을 도용 당할 위험이 있으면 kdestroy 명령을 사용하거나 화면을 잠그는 화면 보호기를 사용해야 합니다.
사용 후 티켓을 확실하게 폐기하는 방법은 kdestroy 명령을 홈 디렉토리의 .logout 파일에 추가하는 것입니다.
PAM 모듈이 구성되어 있는 경우(기본 설정) 로그아웃과 동시에 티켓이 자동으로 폐기되므로 kdestroy 명령 호출을 .login 파일에 추가하지 않아도 됩니다. 하지만 PAM 모듈이 구성되어 있지 않거나 구성 여부를 모를 경우에는 kdestroy 명령을 .login 파일에 추가하여 시스템 종료 시 티켓이 확실히 폐기되도록 합니다.
SEAM을 설치하면 두 개의 암호를 갖게 되는데, 하나는 정규 Solaris 암호이고 다른 하나는 Kerberos 암호입니다. 이 두 가지 암호를 동일하게 지정할 수도 있습니다.
Kerberos 암호화를 지원하지 않는 login 등의 명령은 대개 PAM을 통해 Kerberos와 UNIX로 모두 인증받도록 설정됩니다. 이 때 암호가 각기 다르면 두 개의 암호를 모두 제공하여 해당 인증으로 로그온해야 합니다. 두 개의 암호가 동일할 경우 처음 입력한 UNIX 암호가 Kerberos에서도 승인됩니다.
두 개의 암호가 동일할 경우 보안 문제가 발생할 수 있습니다. 즉, Kerberos 암호가 노출되면 UNIX 암호도 알려진 것이나 마찬가지입니다. 단, Kerberos 환경의 암호는 네트워크에서 전송되지 않으므로 UNIX와 Kerberos에 동일한 암호를 사용하더라도 Kerberos를 사용하지 않는 사이트보다는 안전합니다. 일반적으로 사이트에는 옵션을 선택할 수 있는 정책이 있습니다.
Kerberos 암호는 Kerberos에서 ID를 확인하는 유일한 방법이므로, 암호가 노출되면 Kerberos 보안은 아무 의미가 없습니다. 암호 도용자는 아무도 눈치 채지 못하게 암호 소유자의 이름으로 전자 우편을 보내거나, 다른 호스트에 로그인하고, 암호 소유자의 파일을 읽거나 편집, 삭제할 수 있습니다. 따라서 암호는 신중하게 선택하고 보안을 유지해야 합니다. 타인에게 자신의 계정 사용 권한을 줘야 할 경우 암호를 알리지 않고 Kerberos를 통해 권한을 줄 수 있습니다("계정에 대한 액세스 부여" 참고). 암호는 시스템 관리자를 비롯한 모든 사람에게 비밀로 해야 합니다. 또한, 암호를 자주 변경하고 다른 사람에게 암호가 노출되었을 경우 즉시 변경하도록 합니다.
암호에는 거의 모든 종류의 문자가 포함될 수 있습니다(<Ctrl> 키와 <Return> 키는 예외). 암호는 본인이 기억하기 쉽고 타인이 예측하기 어려운 암호를 설정하는 것이 좋습니다. 부적절한 암호의 예는 다음과 같습니다.
사전에 있는 단어
일반적이거나 대중적인 이름
유명한 인물의 이름
사용자의 이름이나 사용자 이름을 다른 형식으로 표시한 것(예: 역순, 두 번 반복 등)
배우자, 자녀, 애완 동물의 이름
본인이나 친척의 생일
주민등록번호, 운전 면허 번호, 여권 번호, 기타 ID 번호
이 설명서나 다른 설명서에 있는 예제 암호
암호의 길이는 8자 이상이 적당하며 대문자, 소문자, 숫자, 구두점 등을 함께 사용하는 것이 좋습니다. 좋은 암호의 예는 다음과 같습니다.
"I2LMHinSF"("I too left my heart in San Francisco"를 나타냄)와 같은 약어
"WumpaBun", "WangDangdoodle!" 등 발음하기 쉽고 의미 없는 단어
"6o'cluck", "RrriotGrrrlsRrrule!" 등 고의적으로 맞춤법을 잘못 표기한 단어
위의 예는 사용하지 마십시오. 설명서에 나타나는 암호는 가장 먼저 도용이 될 수 있습니다.
다음과 같은 두 가지 방법으로 Kerberos 암호를 변경할 수 있습니다.
일반적인 UNIX passwd 명령을 사용합니다. SEAM이 설치된 상태에서 Solaris passwd 명령을 사용해도 새로운 Kerberos 암호를 입력하라는 메시지가 자동으로 나타납니다.
kpasswd 명령 대신 passwd 명령을 사용하면 UNIX와 Kerberos 암호를 동시에 설정할 수 있는 장점이 있습니다. 하지만 대개의 경우 passwd 명령으로 양쪽 암호를 모두 변경할 필요는 없고, 둘 중 필요한 암호만 변경합니다.
passwd 명령은 PAM 모듈의 구성 방식에 따라 다르게 작동합니다. 일부 구성에서는 두 가지 암호를 모두 변경해야 하며, 사이트에 따라 UNIX 암호나 Kerberos 암호를 변경해야 합니다.
kpasswd 명령은 passwd와 비슷하지만 Kerberos 암호만 변경한다는 점이 다릅니다. UNIX 암호를 변경하려면 passwd 명령을 사용해야 합니다.
또 다른 차이점은 kpasswd 명령을 사용하면 유효한 UNIX 사용자가 아닌 Kerberos 주체의 암호를 변경할 수 있다는 점입니다. 예를 들어, david/admin은 Kerberos 주체이지만 실제 UNIX 사용자가 아니므로 passwd 대신 kpasswd를 사용해야 합니다.
암호를 변경한 후 암호가 시스템 전체에 전파되려면 시간이 어느 정도 소요됩니다(특히, 대형 네트워크의 경우). 시스템의 설정 상태에 따라 몇 분에서 몇 시간이 걸릴 수도 있습니다. 암호를 변경한 직후 새로운 Kerberos 티켓을 얻어야 할 경우 먼저 새 암호를 사용해 보십시오. 새 암호가 적용되지 않으면 이전 암호를 다시 사용해 봅니다.
시스템 관리자는 Kerberos V5를 사용하여 각 사용자에게 허용 가능한 암호 기준을 설정할 수 있습니다. 이러한 기준은 각 사용자에 대한 정책 집합(기본 정책)에서 정의됩니다. 정책에 대한 자세한 내용은 "정책 관리"를 참고하십시오. 예를 들어, jennifer의 정책(jenpol)에서 암호는 8자 이상이고 두 종류 이상의 문자가 포함되도록 지정되어 있다고 합시다. 이런 경우 kpasswd 명령에서 "sloth"를 암호로 지정하면 거부됩니다.
% kpasswd kpasswd: jennifer@ENG.ACME.COM.의 암호 변경 이전 암호: <jennifer가 기존의 암호를 입력합니다> kpasswd: jennifer@ENG.ACME.COM의 암호는 jenpol 정책에 의해 관리되며, 이 정책에서 암호는 8자 이상이고, 2개 이상의 클래스 (소문자, 대문자, 숫자, 문장 부호, 기타 다른 문자의 5개 클래스가 있음)가 포함되도록 지정해야 합니다. 새 암호: <jennifer가 'sloth'를 입력합니다> 새 암호(재입력): <jennifer가 'sloth'를 다시 입력합니다>> kpasswd: 새 암호가 너무 짧습니다. 최소 4자의 암호를 선택하십시오. |
여기서 jennifer는 암호로 "slothrop49"를 사용합니다. 'slothrop49'는 8자 이상이고 두 종류의 문자(숫자, 소문자)를 포함하므로 해당 기준을 충족시킵니다.
% kpasswd kpasswd: jennifer@ENG.ACME.COM.의 암호 변경 이전 암호: <jennifer가 기존의 암호를 입력합니다> kpasswd: jennifer@ENG.ACME.COM의 암호는 jenpol 정책에 의해 관리되며, 이 정책에서 암호는 8자 이상이고, 2개 이상의 클래스 (소문자, 대문자, 숫자, 문장 부호, 기타 다른 문자의 5개 클래스가 있음)가 포함되도록 지정해야 합니다. 새 암호: <jennifer가 'slothrop49'를 입력합니다> 새 암호(재입력): <jennifer가 'slothrop49'를 다시 입력합니다>Kerberos 암호가 변경되었습니다. |
다음 예는 david가 passwd를 사용하여 UNIX 및 Kerberos 암호를 모두 변경하는 과정을 보여 줍니다.
% passwd passwd: david의 암호 변경 로그인(NIS+) 암호 입력: <현재 UNIX 암호를 입력합니다> 새 암호: <새 UNIX 암호를 입력합니다> 암호 재입력: <새 UNIX 암호를 확인합니다> 이전 KRB5 암호: <현재 Kerberos 암호를 입력합니다> 새 KRB5 암호: <새 Kerberos 암호를 입력합니다> 새 KRB5 암호 재입력: <새 Kerberos 암호를 확인합니다> |
위의 예에서 passwd 명령은 UNIX와 Kerberos 암호를 모두 요구합니다. 그러나 try_first_pass가 PAM 모듈에 설정되어 있으면 Kerberos 암호는 자동으로 UNIX 암호와 동일하게 설정됩니다(기본 구성). 이 경우 david는 다음과 같이 kpasswd 명령을 사용하여 Kerberos 암호를 다르게 설정할 수 있습니다.
다음 예에서는 kpasswd를 사용하여 Kerberos 암호만 변경하는 과정을 보여 줍니다.
% kpasswd kpasswd: david@ENG.ACME.COM.의 암호 변경 이전 암호: <현재 Kerberos 암호를 입력합니다> 새 암호: <새 Kerberos 암호를 입력합니다> 새 암호(재입력): <새 Kerberos 암호를 확인합니다> Kerberos 암호가 변경되었습니다. |
다음 예에서 david는 Kerberos 주체 david/admin(유효한 UNIX 사용자가 아님)의 암호를 변경합니다. 이 경우 kpasswd를 사용해야 합니다.
% kpasswd david/admin kpasswd: david/admin의 암호 변경 이전 암호: <현재 Kerberos 암호를 입력합니다> 새 암호: <새 Kerberos 암호를 입력합니다> 새 암호(재입력): <새 Kerberos 암호를 확인합니다> Kerberos 암호가 변경되었습니다. |
타인이 자신의 계정에 로그인할 수 있도록 액세스를 부여할 경우 홈 디렉토리에 .k5login 파일을 두면, 암호를 알리지 않고도 Kerberos를 통해 이 작업을 수행할 수 있습니다. .k5login 파일은 액세스를 부여할 각 사용자에 해당하는 여러 Kerberos 주체의 목록입니다 각 주체는 서로 다른 행에 있어야 합니다.
사용자 david가 홈 디렉토리에 다음과 같은 .k5login파일을 가지고 있다고 가정합시다.
jennifer@ENG.ACME.COM joe@ACME.ORG |
이 파일에 의해 사용자 jennifer와 joe는 각기 해당 영역에 Kerberos 티켓을 가지고 있을 경우 david의 ID를 사용할 수 있습니다. 예를 들어, jennifer는 david의 시스템(boston)에 암호를 몰라도rlogin할 수 있습니다.
(david의 홈 디렉토리에 Kerberos V5 프로토콜을 통해 다른 시스템(세 번째 시스템)의 NFS가 마운트되어 있을 경우, jennifer는 그의 홈 디렉토리에 액세스하기 위해 전송 가능 티켓이 있어야 합니다. 전송 가능 티켓 사용에 대한 예는 "티켓 작성 방법"을 참고하십시오).
네트워크에서 다른 시스템에 로그인하려면 해당 시스템의 .k5login 파일에 자신의 Kerberos 주체가 포함되어야 합니다.
.k5login 파일을 사용하는 방법이 암호를 알려 주는 것보다 훨씬 안전합니다.
.k5login 파일에서 주체를 삭제하면 언제든지 액세스를 중단시킬 수 있습니다.
홈 디렉토리의 .k5login 파일에 이름이 포함된 사용자는 해당 시스템(NFS 등을 통해 파일이 공유될 경우 여러 시스템일 수도 있음)에서 계정에 완전히 액세스할 수 있지만, 네트워크 권한은 상속받지 않습니다. 즉, 모든 Kerberos 암호화를 지원하는 서비스는 액세스 제공자가 아니라 해당 사용자의 ID에 따라 액세스 권한을 부여합니다. 따라서 jennifer는 joe의 시스템에 로그인하여 작업을 수행할 수 있으나, ftp, rlogin 등의 Kerberos 암호화를 지원하는 프로그램을 사용할 경우 그녀 자신이 수행하는 것으로 됩니다.
Kerberos는 티켓을 얻는 자에 대해 로그 파일을 기록하므로, 필요한 경우 시스템 관리자는 특정 시점에서 타인의 사용자 ID를 사용할 수 있는 사람을 찾을 수 있습니다.
.k5login 파일을 사용하는 방법 중 하나는 root의 홈 디렉토리에 이 파일을 두고, 목록에 있는 Kerberos 주체에게 해당 시스템에 대한 root 권한을 부여하는 것입니다. 이렇게 하면 타인에게 root 암호를 제공하거나 네트워크에서 root 암호를 입력하지 않아도 시스템 관리자가 로컬에서 관리자 계정으로 들어가거나 원격으로 root에 로그인할 수 있습니다.
사용자 jennifer가 boston.acme.com 시스템에 root로 로그인한다고 가정합니다. 그녀는 boston.acme.com에서 root의 홈 디렉토리에 있는.k5login 파일에 그녀의 주체 이름 항목이 있으므로 암호를 다시 입력할 필요가 없습니다.
% rlogin boston.acme.com -l root -x 이 rlogin 세션은 모든 데이터 전송에 DES 암호화를 사용합니다. 마지막 로그인: 6월 20일 목요일 16:20:50, daffodil SunOS 5.7 버전(일반) #2: 1998년 11월 14일 화요일 18:09:31 EST boston[root]% |
Kerberos V5는 단일 사인온 시스템입니다. Kerberos는 기존의 각 네트워크 프로그램에 내장되어 있으므로 암호를 한 번만 입력하면 Kerberos V5 프로그램에서 인증(및 선택적 암호화)을 수행합니다. Kerberos V5 응용 프로그램은 기존의 UNIX 네트워크 프로그램에 Kerberos 기능이 추가된 버전입니다.
예를 들어, Kerberos 암호화를 지원하는 프로그램을 사용하여 원격 호스트에 연결하면 프로그램과 KDC, 원격 호스트에서 신속하게 협상을 수행합니다. 협상이 완료되면 프로그램에서 원격 호스트에 사용자 ID를 증명하고 원격 호스트에서 액세스를 부여합니다.
Kerberos 암호화를 지원하는 명령에서는 먼저 Kerberos로 인증하려 합니다. Kerberos 인증이 실패하면 명령에 사용된 옵션에 따라 오류가 발생하거나 UNIX 인증이 시도됩니다. 자세한 내용은 Kerberos 명령어 매뉴얼 페이지에서 Kerberos 보안 절을 참고하십시오.
Kerberos 암호화를 지원하는 네트워크 서비스는 인터넷상의 다른 시스템에 연결하는 프로그램입니다. 이들 프로그램은 /usr/krb5/bin에 있습니다. 이 프로그램이 Kerberos 암호화를 지원하지 않는 버전보다 먼저 사용되도록 PATH 변수를 설정합니다. 여기에는 다음과 같은 프로그램이 포함됩니다.
ftp
rcp
rlogin
rsh
telnet
이들 프로그램에는 Kerberos 암호화를 지원하지 않는 버전의 모든 기능이 포함되어 있으며, 원격 호스트와 인증(및 선택적 암호화)을 협상할 때 Kerberos 티켓을 투명하게 사용할 수 있는 추가 기능이 있습니다. 대부분의 경우 Kerberos에서 ID를 검사하므로 암호를 따로 입력하지 않아도 됩니다.
Kerberos V5 네트워크 프로그램에서는 다음과 같은 옵션을 사용할 수 있습니다.
다른 호스트에 티켓 전송(초기에 전송 가능 티켓을 얻을 경우)
사용자와 원격 호스트 간에 전송된 데이터의 암호화
이 절에서는 Kerberos 암호화를 지원하지 않는 버전에 익숙한 사용자를 대상으로, Kerberos V5 패키지의 새롭게 추가된 기능에 대해 설명합니다. 여기에 나온 명령에 대한 자세한 설명은 해당 매뉴얼 페이지를 참고하십시오.
다음과 같은 Kerberos 옵션이 ftp, rcp, rlogin, rsh, telnet에 추가되었습니다.
기존 티켓을 사용하여 자동 로그인을 시도입니다. 현재 사용자 ID와 다르지 않을 경우 getlogin()에서 반환되는 사용자 이름을 사용합니다(자세한 내용은 telnet(1)(1) 매뉴얼 페이지를 참고하십시오).
원격 호스트에 재전송할 수 없는 티켓을 전송합니다. 이 옵션은 -F 옵션과 상호 배타적이므로 같은 명령에 함께 사용할 수 없습니다(아래 참고).
제3의 호스트에서 다른 Kerberos 기반 서비스에 자신을 인증해야 할 경우 티켓을 전송해야 합니다. 예를 들어, 다른 시스템에 rlogin한 다음 여기서 또 다른 시스템에 rlogin하는 경우입니다.
Kerberos V5를 통해 원격 호스트의 홈 디렉토리에 NFS가 마운트되어 있으면 전송 가능 티켓을 사용해야 합니다. 그렇지 않으면 홈 디렉토리에 액세스할 수 없습니다. (즉, 먼저 시스템 1에 로그인하고, 시스템 1에서 홈 시스템인 시스템 2에 rlogin한다고 가정합니다. 시스템 2는 시스템 3으로부터 홈 디렉토리를 마운트합니다. 이런 경우 rlogin 명령에 -f나 -F 옵션을 사용하지 않으면 티켓을 시스템 3에 전송하지 못하므로 홈 디렉토리를 액세스할 수 없습니다.)
기본적으로 kinit를 사용하면 전송 가능 티켓 부여 티켓(TGT)을 얻게 되지만 사용자의 SEAM 구성이 이와 다를 수도 있습니다.
티켓 전송에 대한 자세한 내용은 "-f 및 -F를-사용한 티켓 전송-"을 참고하십시오.
티켓 부여 티켓의 재전송이 가능한 복사본을 원격 시스템에 전송합니다. 이 옵션은 -f 옵션과 비슷하지만(위 내용 참고) 더 많은 시스템(제 4, 5의 시스템)에 액세스할 수 있습니다. 즉, -F 옵션은 -f 옵션의 대집합이라고 할 수 있습니다. -F 옵션은 -f 옵션과 상호 배타적이므로 같은 명령에서 함께 사용할 수 없습니다.
티켓 전송에 대한 자세한 내용은 "-f 및 -F를-사용한 티켓 전송-"을 참고하십시오.
krb5.conf 파일을 사용하여 영역을 결정하는 대신 지정된 영역에서 원격 호스트에 대한 티켓을 요청합니다.
티켓을 사용하여 원격 호스트에 인증받지만 자동으로 로그인하지는 않습니다.
사용할 GSS-API 보안 메커니즘을 /etc/gss/mech 파일에 표시된 목록에서 지정합니다. 기본값은 kerberos_v5입니다.
현재 세션을 암호화합니다.
auth_type 인증 유형을 비활성화합니다.
표 6-1은 각 명령에서 사용할 수 있는 옵션을 보여 줍니다("X" 표시가 있는 명령은 해당 옵션을 사용할 수 있음).
표 6-1 네트워크 명령의 Kerberos 옵션
|
ftp |
rcp |
rlogin |
rsh |
telnet |
---|---|---|---|---|---|
-a |
|
|
|
|
X |
-f |
X |
|
X |
X |
X |
-F |
|
|
X |
X |
X |
|
|
X |
X |
X |
X |
-K |
|
|
|
|
X |
-m |
X |
|
|
|
|
-x |
|
X |
X |
X |
X |
-X |
|
|
|
|
X |
또한, ftp 세션의 보호 수준을 해당 프롬프트에서 설정할 수 있습니다.
보호 수준을 "지우기"로 설정합니다(보호 없음). 이는 기본 설정입니다.
보호 수준을 "개인"으로 설정하면 데이터 전송 시 암호화를 통해 데이터의 신뢰성 및 무결성이 보호됩니다. 단, 개인 정보 서비스의 경우 모든 SEAM 사용자가 사용할 수 있는 것은 아닙니다.
보호 수준을 "보안"으로 설정하면 데이터 전송 시 암호 검사 합계를 통해 데이터의 무결성이 보호됩니다.
위의 보호 수준(지우기, 개인, 보안)을 ftp 프롬프트에서 protect 다음에 입력하여 보호 수준을 설정할 수도 있습니다.
"Kerberos 암호화를 지원하는 명령의 개요"의 설명과 같이 -f 나 -F 옵션을 사용하여 티켓을 전송할 수 있는 명령도 있습니다. 티켓을 전송하면 네트워크 트랜잭션을 "연결"할 수 있습니다. 예를 들어, 한 시스템에 rlogin한 다음 여기에서 다른 시스템으로 rlogin할 수 있습니다. -f 옵션을 사용하면 티켓을 전송할 수 있고, -F 옵션을 사용하면 전송된 티켓을 재전송할 수 있습니다.
그림 6-2에서 사용자 david는 kinit를 사용하여 전송할 수 없는 티켓 부여 티켓(TGT)을 얻습니다. -f 옵션을 지정하지 않았기 때문에 티켓을 전송할 수 없습니다. 시나리오 1에서 그는 시스템 B에 rlogin할 수 있지만 더 이상 다른 시스템에 로그인할 수는 없습니다. 시나리오 2에서 그는 전송할 수 없는 티켓을 전송하려 하기 때문에 rlogin -f 명령이 실패합니다.
(실제로 SEAM 구성 파일은 kinit 명령을 실행할 때 전송 티켓을 얻을 수 있도록 기본 설정되어 있으나 사용자의 구성은 다를 수 있습니다. 설명을 위해 여기서는 kinit가 kinit -f 로 호출되지 않을 경우, 전송 가능한 티켓 부여 티켓을 얻지 못한다고 가정합니다. 또한 kinit에는 -F 옵션이 포함되어 있지 않음을 주의하십시오. TGT는 전송이 가능할 수도 있고 그렇지 않을 수도 있습니다.)
다음의 그림 6-3에서 david는 kinit -f를 사용하여 전송 가능한 TGT를 얻습니다. 시나리오 3에서 그는 rlogin으로 전송 가능 티켓을 사용하므로 시스템 C에 액세스할 수 있습니다. 시나리오 4에서 티켓을 재전송할 수 없으므로 두 번째 rlogin 명령이 실패합니다. 시나리오 5와 같이 -F 옵션을 사용하면 두 번째 rlogin 명령이 성공하고 시스템 D로 티켓을 재전송할 수 있습니다.
다음 예에서는 Kerberos 암호화를 지원하는 명령의 옵션 사용 방법에 대해 설명합니다.
다음 예에서 사용자 david는 이미 로그인했고 denver.acme.com 시스템에 telnet을 하려고 합니다. 그는 -f 옵션으로 기존의 티켓을 전송하고, -x 옵션으로 세션을 암호화하고, -a 옵션으로 로그인을 자동으로 수행합니다. 세 번째 호스트의 서비스는 사용하지 않을 계획이므로-F 대신 -f를 사용합니다.
% telnet -a -f -x denver.acme.com 128.0.0.5 시도 중... denver.acme.com.에 연결됨. 이스케이프 문자는 '^]'입니다. [ Kerberos V5는 다음과 같이 받아 들입니다. "david@eng.acme.com" ] [ Kerberos V5가 전송된 증명서를 받아 들였습니다. ] SunOS 5.7: 1998년 5월 21일 화요일 00:31:42 EDT SunOS에 오신 것을 환영합니다. % |
사용자 david의 시스템은 Kerberos를 사용하여 그를 denver.acme.com에 인증하고 david 자신으로 자동 로그인했습니다. 이미 대기 중인 티켓 복사본인 암호화 세션이 있으므로 그는 암호를 입력할 필요가 없습니다. Kerberos 암호화를 지원하지 않는 telnet 버전을 사용했다면 암호를 입력하라는 메시지가 나타나며 이는 암호화되지 않고 네트워크에서 전송됩니다. 이 때 네트워크 트래픽을 주시하는 침입자가 있다면 david의 암호를 금방 알 수 있습니다.
Kerberos 티켓을 전송하면 telnet 종료 시 티켓이 폐기되며, 이것은 여기에 언급된 다른 명령의 경우도 마찬가지입니다.
사용자 jennifer는 자신의 시스템인 boston.acme.com에 로그인하려 합니다. 그녀는 기존의 티켓을 -F 옵션으로 전송하고 -x 옵션으로 세션을 암호화합니다. 그녀는 -f 대신 -F 옵션을 사용하는데 이는 boston에 로그인한 후 다른 네트워크 트랜잭션을 수행하기 위해 티켓을 재전송해야 할 수도 있기 때문입니다. 기존 티켓을 전송하므로 암호를 입력할 필요가 없습니다.
% rlogin boston.acme.com -F -x 이 rlogin 세션은 모든 데이터 전송에 DES 암호화를 사용합니다. 마지막 로그인 5월 19일 월요일 15:19:49, daffodil SunOS 버전 5.7 (일반) #2 1998년 11월 14일 화요일 18:09:3 EST % |
다음 예에서는 joe가 ftp를 사용하여 denver.acme.com 시스템의 ~joe/MAIL 디렉토리에서 메일을 가져오기 위해 세션을 암호화합니다. 다음과 같은 교환이 이루어집니다.
% ftp -f denver.acme.com denver.acme.com에 연결됨. 220 denver.acme.org FTP 서버(버전 6.0)가 준비됨. 334 GSSAPI; ADAT 인증 유형 사용 GSSAPI이(가) 인증 유형으로 사용되었습니다. GSSAPI 인증이 성공했습니다. (daffodil.acme.org:joe) 232 GSSAPI 사용자 joe@MELPOMENE.ACME.COM가 joe로 인증되었습니다. 230 사용자 joe가 로그인했습니다. 원격 시스템 유형이 UNIX입니다. 이진 모드를 사용하여 파일을 전송합니다. ftp>protect private 200 보호 수준이 개인으로 설정되었습니다. ftp>cd ~joe/MAIL 250 CWD 명령이 성공했습니다. ftp>get RMAIL 227 수동 모드를 입력 중(128,0,0,5,16,49). 150 RMAIL을 위해 이진 모드 데이터 연결을 여는 중(158336바이트). 226 전송이 완료되었습니다. 1.9초 동안 158336바이트가 수신되었습니다(1.4e+02 Kbytes/s). ftp>quit % |
세션을 암호화하기 위해 joe는 보호 수준을 개인으로 설정합니다.