Я устанавливаю Squid3 на Ubuntu 14.10, и я хочу интегрироваться, это ПРИБАВЛЯЕТ Windows Server использование 2012 года kerberos 5. Моя инфраструктура следующие:
Шлюз по умолчанию:
192.168.1.1
DNS & Domain Controller (Windows Server 2012):
dc.mydomain.com
address 192.168.1.250
netmask 255.255.255.0
gateway 192.168.1.1
Прокси (Рабочий стол Ubuntu 14.10) vmproxy
address 192.168.1.251
netmask 255.255.255.0
gateway 192.168.1.1
dns-search mydomain.com
dns-nameservers 192.168.1.2
Шаги следующие
Шаг 1: поиск DNS Проверки: то, что это хорошо работало и вперед и обратный поиск.
Шаг 2:Configure корректный часовой пояс на Вашем прокси-сервере:
$ sudo service ntp stop
$ sudo ntpdate -b dc.mydomain.com
$ sudo service ntp start
Шаг 3:Install Клиентские Библиотеки Kerberos и определенное имя области Kerberos, на MYDOMAIN.COM
$ sudo apt-get install krb5-user
Шаг 4:Edit Конфигурационный файл Kerberos/etc/krb5.conf.
[libdefaults]
default_realm = MYDOMAIN.COM
default_tgs_enctypes = rc4-hmac des3-hmac-sha1
default_tkt_enctypes = rc4-hmac des3-hmac-sha1
Проверьте, что конфигурация Kerberos корректна.
$ kinit Administrator@mydomain.com
$ klist
Step:5, создающий специализированного пользователя в Active Directory и отображающий этого пользователя на имя принципала Kerberos
c:/> ktpass -princ HTTP/vmproxy.mydomain.com@MYDOMAIN.COM -mapuser squid@MYDOMAIN.COM -crypto rc4-hmac-nt -pass P@ssw0rd -ptype KRB5_NT_PRINCIPAL -out krb5.keytab
Копия Step:6 keytab файл к/etc/krb5.keytab на vmproxy
Мои/etc/krb5.conf следующим образом:-
[libdefaults]
default_realm= MYDOMAIN.COM
default_tgs_enctypes=rc4.hmac des3-hmac.sha1
default_tkt_enctypes=rc4.hmac des3-hmac.sha1
[realms]
MYDOMAIN.COM={
kdc=dc.mydomain.com
admin_server=dc.mydomain.com
default_domain=mydomain.com
}
[domain_realm]
.mydomain.com= MYDOMAIN.COM
mydomain.com=MYDOMAIN.COM
теперь, когда я тестирующий TGT из dc.mydomain.com как:
$ kinit -V -k -t /etc/krb5.keytab HTTP/vmproxy.mydomain.com@MYDOMAIN.COM
это говорит:
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/vmproxy.mydomain.com@MYDOMAIN.COM
Using Keytab: /etc/krb5.keytab
kinit:Client 'HTTP/vmproxy.mydomain.com@MYDOMAIN.COM' not found in kerberos database while getting initial credentials
При использовании
$ kinit -k
это говорит
kinit:Cannot determine realm for host (principal host/vmproxy@)
Эта команда:
c:/> ktpass -princ HTTP/vmproxy.mydomain.com@MYDOMAIN.COM -mapuser squid@MYDOMAIN.COM -crypto rc4-hmac-nt -pass P@ssw0rd -ptype KRB5_NT_PRINCIPAL -out krb5.keytab
Полагаю, что HTTP/vmproxy.mydomain.com@MYDOMAIN.COM является директором службы, связанной с пользователем squid@MYDOMAIN.COM в AD. Active Directory обычно не позволяет вам аутентифицироваться в качестве принципала сервиса (а именно, не позволяет ему получить TGT через AS_REQ); теоретически, принципы сервиса должны быть для принятия пользовательских мандатов, а не для аутентификации в вашей области kerberos.
Это отличается от Unix KDC, которые обычно не различают "принципы сервиса" и "принципы пользователя" по умолчанию, позволяя либо аутентифицироваться через kinit
. В Active Directory вместо этого KDC делает вид, что принципала не существует, когда вы пытаетесь использовать kinit
, что довольно запутанно.
Если вы можете успешно аутентифицироваться как любой другой пользователь, я попробую проверить работоспособность принципала сервиса, вместо этого запустив:
$ kinit some_other_user
$ kvno HTTP/vmproxy.mydomain.com@MYDOMAIN.COM
Который просто получает сервисный тикет для HTTP/vmproxy.mydomain.com@MYDOMAIN.COM. Или, возможно, вы сможете аутентифицироваться как squid@MYDOMAIN.COM, а не как сервисный директор, который вы установили.
Если вам нужно иметь возможность kinit
непосредственно как HTTP/vmproxy.mydomain.com@MYDOMAIN.COM, я думаю, что это возможно, но вам нужно изменить атрибут userPrincipalName в соответствующей учетной записи AD. На данный момент я не могу вспомнить, как этого добиться, но если я правильно помню, у вас может быть только одно такое UPN; вы не можете иметь несколько разных основных имён, которые вы можете kinit
как для одной учётной записи.