Скажу сразу что на гениальность и оригинальность не претендую, ибо мануалов в интернете немерянно по настройке. В моем случае надо было подружить домен на Windows 2003, xubuntu 12.04 и squid 3.1.19
Для настройки сети использую пока
network-manager После тучи ошибок, проверок и настроек у меня заработало так:
/etc/hosts10.0.0.20 squid-01
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/network/interfacesauto lo
iface lo inet loopback
/etc/resolv.confnameserver 127.0.0.1
search OBR.DOMAIN.RU
/etc/hostname/etc/default/squid3KRB5_KTNAME=/etc/krb5.keytab
export KRB5_KTNAME
/etc/krb5.conf[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = OBR.DOMAIN.RU
default_keytab_name = /etc/krb5.keytab
# The following krb5.conf variables are only for MIT Kerberos.
# krb4_config = /etc/krb.conf
# krb4_realms = /etc/krb.realms
# kdc_timesync = 1
# ccache_type = 4
# forwardable = true
# proxiable = true
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
clockskew = 300
default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true
[realms]
OBR.DOMAIN.RU = {
kdc = 10.0.0.62
admin_server = 10.0.0.62
default_domain = obr.domain.ru
kpasswd_server = 10.0.0.62
}
[domain_realm]
.obr.domain.ru = OBR.DOMAIN.RU
obr.domain.ru = OBR.DOMAIN.RU
/etc/squid3/squid.conf# Три следующие строки относятся к авторизации Kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -s HTTP/squid-01.obr.domain.ru@OBR.DOMAIN.RU
auth_param negotiate children 10
auth_param negotiate keep_alive on
# Написанные ниже три строки относятся к доступу в интернет
acl password proxy_auth REQUIRED
http_access allow password
http_access deny all
Самое интересное, что в некоторых мануалах советуют ставить первую строку
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -s -d HTTP/squid-01.obr.domain.ru@OBR.DOMAIN.RUтак вот если это делать, а я сделал сразу, то в логах сыпятся ошибки
authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information. 'authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH received type 1 NTLM token'И авторизацию пройти не получается, вот именно с этим ключом я бился очень долго
apt-get install msktutilkeytab хранится в /etc/krb5.keytab, создавался с помощью команды:
msktutil -c -b "CN=COMPUTERS" -s HTTP/squid-01.obr.domain.ru -k /etc/krb5.keytab --computer-name SQUID-01-K --upn HTTP/squid-01.obr.domain.ru --server dc-01.obr.domain.ru --verbosesquid-01 -- сервер со сквидом
SQUID-01-K -- "виртуальный" комп который создается в AD и привязывается к реальному серверу со сквидом
dc-01 -- сервер раздающий ключи Kerberos, он же DNS, он же 10.0.0.62
Все эти ПК хранятся в AD в группе COMPUTERS (по-умолчанию так оно и есть, в мануалах рекомендуют группы с русскими именами не использовать)
На dc-01 предварительно создал записи типа "A" в прямой/обратной зоне DNS, объект типа КОМПЬЮТЕР в AD
НЕ создавал.
chgrp proxy /etc/krb5.keytab
chmod g+r /etc/krb5.keytab
kinit -A -k -t /etc/krb5.keytab HTTP/squid-01.obr.domain.ru@OBR.DOMAIN.RU
squid3 -k reconfigureВ браузере прописал прокси
squid-01 (
не IP адрес), порт
3128 -- Заработало.
Во всем вышеописанном помогли мануалы:
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberoshttp://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectoryСейчас разбираюсь со временем жизни билета и необходимостью его обновления... В принципе тему можно и закрыть, я получил чего хотел
