탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1 관리: 보안 서비스 Oracle Solaris 11.1 Information Library (한국어) |
새 Kerberos 주체를 만들기 위한 기본값을 설정하는 방법
서비스를 제공하는 모든 호스트에는 keytab(“키 테이블”의 줄임말)이라는 로컬 파일이 있습니다. keytab에는 서비스 키라고 하는 해당 서비스에 대한 주체가 포함되어 있습니다. 서비스 키는 서비스가 KDC에 대해 자신을 인증하는 데 사용되며, Kerberos 및 서비스 자체를 통해서만 알려집니다. 예를 들어 Kerberos화된 NFS 서버가 있는 경우, 이 서버에는 nfs 서비스 주체를 포함하는 keytab 파일이 있습니다.
keytab 파일에 서비스 키를 추가하려면 kadmin의 ktadd 명령을 사용하여 호스트의 keytab 파일에 해당 서비스 주체를 추가하십시오. 서비스 주체를 keytab 파일에 추가하는 것이기 때문에 주체가 이미 Kerberos 데이터베이스에 있어야 kadmin이 주체가 있는지 확인할 수 있습니다. Kerberos화된 서비스를 제공하는 애플리케이션 서버의 경우 keytab 파일은 기본적으로 /etc/krb5/krb5.keytab에 있습니다.
keytab은 사용자 암호와 비슷합니다. 사용자가 자신의 암호를 보호하는 것이 중요하듯이, 애플리케이션 서버가 해당 keytab 파일을 보호하는 것도 똑같이 중요합니다. keytab 파일은 항상 로컬 디스크에 저장하고 root 사용자만 읽을 수 있도록 설정해야 합니다. 또한 비보안 상태의 네트워크를 통해 keytab 파일을 전송해서도 안됩니다.
root 주체를 호스트의 keytab 파일에 추가해야 하는 특별한 경우가 있습니다. Kerberos 클라이언트의 사용자가 Kerberos화된 NFS 파일 시스템을 마운트하려는데 이때 루트와 동등한 액세스 권한이 필요한 경우, 클라이언트의 root 주체를 클라이언트의 keytab 파일에 추가해야 합니다. 또는 사용자가 자동 마운트를 사용하고 있지만 root 액세스 권한으로 Kerberos화된 NFS 파일 시스템을 마운트하려는 경우 항상 kinit 명령을 root로 사용하여 클라이언트의 root 주체에 대한 자격 증명을 얻어야 합니다.
keytab 파일을 관리할 때 사용할 수 있는 또 다른 명령은 ktutil 명령입니다. ktutil은 kadmin과 마찬가지로 Kerberos 데이터베이스와 상호 작용하지 않기 때문에 이 대화식 명령을 사용하면 Kerberos 관리 권한 없이도 로컬 호스트의 keytab 파일을 관리할 수 있습니다. 따라서 주체가 keytab 파일에 추가되면 ktutil을 사용하여 keytab 파일의 키 목록을 확인하거나 일시적으로 서비스에 대한 인증을 사용 안함으로 설정할 수 있습니다.
주 - kadmin의 ktadd 명령을 사용하여 keytab 파일에서 주체를 변경하면 새 키가 생성되어 keytab 파일에 추가됩니다.
|
자세한 내용은 Kerberos 주체 목록을 보는 방법을 참조하십시오.
# /usr/sbin/kadmin
kadmin: ktadd [-e enctype] [-k keytab] [-q] [principal | -glob principal-exp]
krb5.conf 파일에 정의된 암호화 유형 목록을 대체합니다.
keytab 파일을 지정합니다. 기본적으로 /etc/krb5/krb5.keytab이 사용됩니다.
간단한 정보를 표시합니다.
keytab 파일에 추가될 주체를 지정합니다. host, root, nfs 및 ftp를 서비스 주체로 추가할 수 있습니다.
주체 표현식을 지정합니다. principal-exp와 일치하는 모든 주체가 keytab 파일에 추가됩니다. 주체 표현식 규칙은 kadmin의 list_principals 명령에 대한 규칙과 같습니다.
kadmin: quit
예 23-16 Keytab 파일에 서비스 주체 추가
다음 예에서는 KDC가 denver의 네트워크 서비스를 인증할 수 있도록 denver의 host 주체가 denver의 keytab 파일에 추가됩니다.
denver # /usr/sbin/kadmin kadmin: ktadd host/denver.example.com Entry for principal host/denver.example.com with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/denver.example.com with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/denver.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/denver.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab. Entry for principal host/denver.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab. kadmin: quit
# /usr/sbin/kadmin
자세한 지침은 Keytab 파일에 키 목록(주체)을 표시하는 방법을 참조하십시오.
kadmin: ktremove [-k keytab] [-q] principal [kvno | all | old ]
keytab 파일을 지정합니다. 기본적으로 /etc/krb5/krb5.keytab이 사용됩니다.
간단한 정보를 표시합니다.
keytab 파일에서 제거할 주체를 지정합니다.
키 버전 번호가 kvno와 일치하는 지정된 주체에 대한 모든 항목을 제거합니다.
지정된 주체에 대한 모든 항목을 제거합니다.
키 버전 번호가 가장 높은 주체를 제외하고, 지정된 주체에 대한 모든 항목을 제거합니다.
kadmin: quit
예 23-17 Keytab 파일에서 서비스 주체 제거
다음 예에서는 denver의 host 주체가 denver의 keytab 파일에서 제거됩니다.
denver # /usr/sbin/kadmin kadmin: ktremove host/denver.example.com@EXAMPLE.COM kadmin: Entry for principal host/denver.example.com@EXAMPLE.COM with kvno 3 removed from keytab WRFILE:/etc/krb5/krb5.keytab. kadmin: quit
주 - 다른 사용자 소유의 keytab 파일을 만들 수는 있지만, keytab 파일의 기본 위치를 사용하려면 root 소유권이 필요합니다.
# /usr/bin/ktutil
ktutil: read_kt keytab
ktutil: list
현재 키 목록 버퍼가 표시됩니다.
ktutil: quit
예 23-18 Keytab 파일에 키 목록(주체) 표시
다음 예에서는 denver 호스트의 /etc/krb5/krb5.keytab 파일에 키 목록을 표시합니다.
denver # /usr/bin/ktutil ktutil: read_kt /etc/krb5/krb5.keytab ktutil: list slot KVNO Principal ---- ---- --------------------------------------- 1 5 host/denver@EXAMPLE.COM ktutil: quit
때때로 네트워크 애플리케이션 서버에서 일시적으로 rlogin 또는 ftp 등의 서비스에 대한 인증 방식을 사용 안함으로 설정해야 할 수 있습니다. 예를 들어 유지 보수 절차를 수행 중인 동안에는 사용자가 시스템에 로그인하지 못하도록 하고자 할 수 있습니다. ktutil 명령을 사용하면 kadmin 권한 없이도 서버의 keytab 파일에서 서비스 주체를 제거할 수 있으므로 이 작업이 가능합니다. 인증을 다시 사용으로 설정하려면 저장한 원본 keytab 파일을 다시 원본 위치로 복사하기만 하면 됩니다.
주 - 기본적으로 대부분의 서비스는 인증이 필요하도록 설정되어 있습니다. 인증이 필요하도록 서비스가 설정되지 않은 경우 서비스에 대한 인증을 사용 안함으로 설정하더라도 서비스가 계속 작동합니다.
주 - 다른 사용자 소유의 keytab 파일을 만들 수는 있지만, keytab 파일의 기본 위치를 사용하려면 root 소유권이 필요합니다.
# /usr/bin/ktutil
ktutil: read_kt keytab
ktutil: list
현재 키 목록 버퍼가 표시됩니다. 사용 안함으로 설정하려는 서비스에 대한 슬롯 번호를 메모해 둡니다.
ktutil: delete_entry slot-number
여기서 slot-number는 list 명령으로 표시되는 삭제할 서비스 주체의 슬롯 번호를 지정합니다.
ktutil: write_kt new-keytab
ktutil: quit
# mv new-keytab keytab
예 23-19 호스트에서 일시적으로 서비스를 사용 안함으로 설정
다음 예에서는 denver 호스트의 host 서비스가 일시적으로 사용 안함으로 설정되었습니다. denver에서 호스트 서비스를 다시 사용으로 설정하려면 krb5.keytab.temp 파일을 /etc/krb5/krb5.keytab 파일로 복사하십시오.
denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp denver # /usr/bin/ktutil ktutil:read_kt /etc/krb5/krb5.keytab ktutil:list slot KVNO Principal ---- ---- --------------------------------------- 1 8 root/denver@EXAMPLE.COM 2 5 host/denver@EXAMPLE.COM ktutil:delete_entry 2 ktutil:list slot KVNO Principal ---- ---- -------------------------------------- 1 8 root/denver@EXAMPLE.COM ktutil:write_kt /etc/krb5/new.krb5.keytab ktutil: quit denver # cp /etc/krb5/new.krb5.keytab /etc/krb5/krb5.keytab