Войти

Показать полную графическую версию : Squid3+AD win 2008 R2


Negativ
05-08-2010, 17:15
Задача:
Настроить прозрачный прокси с авторизацией в АД 2008 R2.
Шлюз на базе FreeBSD 7.2 i386.
Установлена samba34-3.4.8, squid-3.0.14.
Натроен ipfw с форвардингом пакетов на прокси.
Машина включена в домен.

klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: admin@OFFICE.LOCAL

Issued Expires Principal
Aug 3 13:22:03 >>>Expired<<< krbtgt/OFFICE.LOCAL@OFFICE.LOCAL



wbinfo -t
checking the trust secret via RPC calls succeeded

wbinfo -g и wbinfo -u
выдают списки пользователей и групп домена.
Аутентификация проходит успешно:


wbinfo --authenticate=domainuser%password
plaintext password authentication succeeded
challenge/response password authentication succeeded


Проблема:
Клиентская машина в домене, при попытке через браузер попасть на любой из сайтов выдает сообщение:

Запрошенный URL не может быть доставлен.

--------------------------------------------------------------------------------

Во время доставки URL: /

Произошла следующая ошибка:

•Неправильный URL
Некоторые аспекты URL неправильны. Возможные проблемы:

•Отсутствует либо неверный протокол доступа (должен быть `http://'' или похожий)
•Отсутствует имя сервера
•Некорректный двойной управляющий символ в URL-пути
•Недопустимый символ в имени сервера; подчёркивания недопустимы



--------------------------------------------------------------------------------

Generated Thu, 05 Aug 2010 08:54:00 GMT by GATE_17.OFFICE.LOCAL (squid/3.0.STABLE14)


Из сообщения видно что сквиду приходит урл вида / вместо запрашиваемого.
Где и что нужно поправить?

Negativ
29-10-2010, 14:04
В общем задача не изменилась.
Имеем шлюз с
squid-3.1.4_1 HTTP Caching Proxy

Шлюз включен в домен win2008 r2 enterprise

klist
klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: inetuser@DOMEN.LOCAL

Issued Expires Principal
Oct 29 13:46:41 Oct 29 23:45:18 krbtgt/DOMEN.LOCAL@DOMEN.LOCAL


krb5.conf

[libdefaults]
default_realm = DOMEN.LOCAL
dns_lookup_kdc = no
dns_lookup_realm = no
default_keytab_name = /etc/krb5.keytab
........
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
permitted_enctypes = rc4-hmac

........
[realms]
DOMEN.LOCAL = {
kdc = host-pdc.domen.local
admin_server = host-pdc.domen.local

}
........
[domain_realm]
.domen.local = DOMEN.LOCAL
domen.local = DOMEN.LOCAL
........................................................
[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log



squid.conf брал из примера отсюда -> http://www.lissyara.su/?id=2101

#порт на котором будет висеть сквид
http_port 3128 accel vhost vport allow-direct
#http_port 3128
#директория под кеш и её параметры
cache_dir ufs /usr/local/squid/cache 8000 8 64
#лог доступа, полезен для отладки
access_log /var/log/squid/access.log squid
cache_store_log /var/log/squid/store.log

#сл. три строки - аутентификатор
auth_param negotiate program /usr/local/libexec/squid/squid_kerb_auth -d -s HTTP/gate_serv.domen.local@DOMEN.LOCAL
#auth_param basic program /usr/local/libexec/squid/squid_kerb_auth -d
#кол-во аутентификаторов 10 у меня хватает на сотню пользователей
#(хватает и 4 на 100)
auth_param negotiate children 2
auth_param negotiate keep_alive on

#хелпер, который берёт информацию о принадлежности пользователя к группе из AD
external_acl_type ldap_search %LOGIN \
/usr/local/libexec/squid/squid_ldap_group \
-R -b "dc=domen,dc=local" \
-f "(&(samaccountname=%v)(memberof=cn=%a,cn=users,dc=domen,DC=local))" \
-D inetuser@domen.local -W /usr/local/etc/squid/authpw \
-K -h host-pdc.domen.local
acl i_allowed external ldap_search internet

acl AUTHENTICATED proxy_auth REQUIRED

acl localnet dst 192.168.0.0/24
#выпускаем всех кто прошёл kerberos аутентификацию на локальные сайты
http_access allow AUTHENTICATED localnet
#выпускаем в инет всех кто в нужной группе
http_access allow i_allowed
#всем остальным оставить попытки и заниматься своими обязанностями.
http_access deny all


в итоге браузер на клиенте требует аутентифицироваться, а в логах сквида вижу:

2010/10/29 13:46:00| squid_kerb_auth: DEBUG: Got 'YR TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbA
dAAAADw==' from squid (length: 59).
2010/10/29 13:46:00| squid_kerb_auth: DEBUG: Decode 'TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbA
dAAAADw==' (decoded length: 40).
2010/10/29 13:46:00| squid_kerb_auth: WARNING: received type 1 NTLM token
2010/10/29 13:46:00| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error re
turned 'BH received type 1 NTLM token'


Т.е. аутентификация не прошла.
Уже 3 месяца пытаюсь разными способами подружить домен и сквид.

Iruta-san
27-01-2011, 17:04
прозрачный сквид с авторизацией из AD сделать невозможно. Потому что иначе получается следующее: браузер ломится на сайт, прокси спрашивает пароль, а браузер не понимает, что прокси - это прокси. И никакого пароля не дает.
Проще насильно распихать адрес прокси через групповую политику.

Более того, у меня с третьим сквидом большие проблемы залить что-нибудь на файлообменники. Вот буду сейчас ставить обратно второй....




© OSzone.net 2001-2012