
yum 명령을 통해 CentOS 7에 Kerberos를 설치했습니다.
yum install krb5-server krb5-libs krb5-workstation pam_krb5 -y
내 상황은 아래와 같습니다.
- KDC가 1개 있습니다.
- 2개의 서비스 서버가 있습니다.
KDC의 krb5.conf 파일은 다음과 같이 설정됩니다.
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
default_realm = MYREALM.NET
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
MYREALM.NET = {
kdc = kdc.myrealm.net
admin_server = kdc.myrealm.net
}
[domain_realm]
.myrealm.net = MYREALM.NET
myrealm.net = MYREALM.NET
그리고 다음 명령을 사용하여 호스트 주체를 추가했습니다.
# kadmin.local -q 'addprinc -randkey host/build.myrealm.net'
# kadmin.local -q 'ktadd -k /tmp/build.keytab host/build.myrealm.net'
# scp /tmp/build.keytab build.myrealm.net:/etc/krb5.keytab
# kadmin.local -q 'addprinc -randkey host/api.myrealm.net'
# kadmin.local -q 'ktadd -k /tmp/api.keytab host/api.myrealm.net'
# scp /tmp/api.keytab api.myrealm.net:/etc/krb5.keytab
그리고 다음 명령을 사용하여 사용자 주체를 추가했습니다.
# kadmin.local -q 'addprinc eric'
위에서 추가한 사용자 주체를 통해 다음 ssh 명령을 통해 두 서비스 서버가 비밀번호 없이 성공적으로 연결됩니다.
그런데, 사용자 본인이 접속할 수 있는 서비스 서버를 관리하고 싶습니다.
추가된 사용자 주체가 영역의 특정 호스트 주체에 액세스하지 않도록 설정하는 방법이 궁금합니다.
정리하자면, 추가된 사용자 주체를 서비스 서버 중에서 eric
만 접근할 수 있도록 하는 방법에 대해 조언을 구하고 싶습니다 .api.myrealm.net
사용자 주체와 호스트 주체를 추가하고 호스트 주체 keytab 파일을 서비스 서버에 복사했습니다.
동일한 영역에 있는 서비스 서버에 비밀번호 없이 접속이 성공적으로 이루어졌습니다.
다만 제가 하고 싶은 일은 사용자 주체별로 권한을 관리하는 것입니다.
답변1
내 질문에 대한 답변으로 FreeIPA를 사용하는 것이 좋습니다. FreeIPA에서 정책을 생성하고 이를 사용자별로 적용하면 의도한 문제가 해결되었습니다.