Здравствуйте!
Настроена и работает LDAP авторизация Squid 3.1.10 на основе групп в AD на Windows Server 2003 R2 SP2 посредством модулей squid_kerb_auth + squid_ldap_auth + squid_ldap_group
CentOS release 6.5 (Final)
Squid 3.1.10
http://pastebin.com/jFG9iGq4 squid -v
http://pastebin.com/nbS1z97P squid.conf
Но по разным причинам есть необходимость применять acl типа «src» (например
acl Myorganization src «/usr/local/squid/acc-list-all») для не авторизованных в домене клиентов.
Проблема в том, что если клиент не авторизован в домене, то браузер циклично запрашивает у него логин и пароль и squid, как будто не переходит к обработке следующего http_access. (Если ввести логин и пароль доменной учетки, то запрашиваемая страница в браузере отображается, но это не подходит)
Кусок лога cache.log в отладочном режиме:
http://pastebin.com/UJFuTxH7
Здесь логирована попытка открыть страницу в браузере под локальным пользователем на доменной машинке, в результате чего запрошен логин и пароль.
Можно ли сделать так, чтобы в описанной ситуации никакие пароли у клиентов не запрашивались, а чтобы squid просто переходил к обработке следующих правил?
Нельзя
У squid логика first match wins
Срабатывает первый подходящий http_access
Если до правила с auth ничего не сработало, то оно либо разрешит, либо запретитМожно использовать вариант с NTLM и сохранить пароль у пользователя.
Либо вариант с IDENT, но он требует ПО на клиенте и ненадежен.http://wiki.squid-cache.org/Features/Authentication
Так в том и дело, что если даже подходящий (не ldap) http_access гарантированно имеется, то до него дело не доходит.
Другими словами, если первым стоит правило
"http_access allow ad-... " (ldap)
а за ним
"http_access allow Myorganization" , (IP)
То второе правило никогда не сработает, даже если не сработало первое(!), что противоречит логике "first match wins"> Нельзя
> У squid логика first match wins
> Срабатывает первый подходящий http_access
> Если до правила с auth ничего не сработало, то оно либо разрешит,
> либо запретит
> Можно использовать вариант с NTLM и сохранить пароль у пользователя.
> Либо вариант с IDENT, но он требует ПО на клиенте и ненадежен.
> http://wiki.squid-cache.org/Features/Authentication
Чтобы проверить ad-* нужно имя пользователя.
Браузер может передать данные локальной УЗ, но она не соответствует записи в AD
Поэтому squid и запрашивает авторизацию
> Чтобы проверить ad-* нужно имя пользователя.
> Браузер может передать данные локальной УЗ, но она не соответствует записи в
> AD
> Поэтому squid и запрашивает авторизациюЭто-то понятно. Вот и нужно, чтоб не запрашивал ничего, а следующие правила проверял.
Это правила доступа.
Если не хватает входных данных для проверки то они запрашиваются
Изменить не получится
> Это правила доступа.
> Если не хватает входных данных для проверки то они запрашиваются
> Изменить не получитсяА может лучше попробовать srcdom_regex -i ... вместо просто src
>> Это правила доступа.
>> Если не хватает входных данных для проверки то они запрашиваются
>> Изменить не получится
> А может лучше попробовать srcdom_regex -i ... вместо просто srcчто это даст?
Возникла еще проблема с подключением QIP Infium. Лог:
========================================================
192.168.4.60 - - [07/Nov/2014:14:04:22 +0600] "CONNECT api.login.icq.net:443 HTTP/1.0" 407 3784 TCP_DENIED:NONE
192.168.4.60 - User@DOMAIN.LOC [07/Nov/2014:14:04:23 +0600] "GET http://api.icq.net/aim/startOSCARSession? HTTP/1.1" 200 977 TCP_MISS:DIRECT
192.168.4.60 - - [07/Nov/2014:14:04:23 +0600] "CONNECT 178.237.19.96:443 HTTP/1.0" 407 3701 TCP_DENIED:NONE
192.168.4.60 - User@DOMAIN.LOC [07/Nov/2014:14:04:28 +0600] "CONNECT api.login.icq.net:443 HTTP/1.0" 200 1446 TCP_MISS:DIRECT
192.168.4.60 - - [07/Nov/2014:14:04:45 +0600] "CONNECT api.login.icq.net:443 HTTP/1.0" 407 3784 TCP_DENIED:NONE
192.168.4.60 - - [07/Nov/2014:14:04:45 +0600] "GET http://api.icq.net/aim/startOSCARSession? HTTP/1.1" 407 4216 TCP_DENIED:NONE
192.168.4.60 - User@DOMAIN.LOC [07/Nov/2014:14:04:45 +0600] "GET http://api.icq.net/aim/startOSCARSession? HTTP/1.1" 200 1236 TCP_MISS:DIRECT
192.168.4.60 - - [07/Nov/2014:14:04:46 +0600] "CONNECT 178.237.19.96:443 HTTP/1.0" 407 3701 TCP_DENIED:NONE
192.168.4.60 - - [07/Nov/2014:14:04:46 +0600] "CONNECT api.login.icq.net:443 HTTP/1.0" 407 3784 TCP_DENIED:NONE
192.168.4.60 - User@DOMAIN.LOC [07/Nov/2014:14:04:46 +0600] "GET http://api.icq.net/aim/startOSCARSession? HTTP/1.1" 200 977 TCP_MISS:DIRECT
192.168.4.60 - - [07/Nov/2014:14:04:46 +0600] "CONNECT 178.237.19.96:443 HTTP/1.0" 407 3701 TCP_DENIED:NONE
========================================================
Если в настройках подключения QIP`а включить галку Аутентификация прокси и прописать доменные логин и пароль, то соединяется успешно. Но это небезопасно, т.к. пароли оттуда легко выдергиваются.
Это сам QIP криво авторизуется или я что-то не так делаю?
Что значит криво авторизуется? Вы вводите логин/пароль и он работает. У вас задача какая стоит?
> Что значит криво авторизуется? Вы вводите логин/пароль и он работает. У вас
> задача какая стоит?Задача рулить (контент, скорость, порты, адреса и т.д) интернетом на основе доменных групп AD. И чтобы на рабочих станциях у доменных пользователей любая "разрешенная" софтина (Браузер, ICQ, Skype, TeamViewer, AmmyAdmin и др..) имела доступ в интернет без необходимости вводить (в том числе и сохранять в этих софтинах) логины и пароли.
В домене около 400 пользователей.Пока что нормально работают только браузеры.
TeamViewer, кстати, тоже очень странно себя ведет. При его запуске в лог падают строки:
192.168.4.60 - - [07/Nov/2014:23:41:11 +0600] "CONNECT ping3.teamviewer.com:443 HTTP/1.1" 407 3822 TCP_DENIED:NONE
И выскакивает окно с запросом логина и пароля. Если его просто закрыть, ничего не вводя, то он успешно соединяется со своим сервером, получает ID и одноразовый пароль.
> TeamViewer, кстати, тоже очень странно себя ведет. При его запуске в лог
> падают строки:
> 192.168.4.60 - - [07/Nov/2014:23:41:11 +0600] "CONNECT ping3.teamviewer.com:443 HTTP/1.1"
> 407 3822 TCP_DENIED:NONE
> И выскакивает окно с запросом логина и пароля. Если его просто закрыть,
> ничего не вводя, то он успешно соединяется со своим сервером, получает
> ID и одноразовый пароль.А вам не приходило в годову, что он рекламу запрашивает, которая подпадает под правила с аутенфикацией
> А вам не приходило в годову, что он рекламу запрашивает, которая
> подпадает под правила с аутенфикацией1) "CONNECT ping3.teamviewer.com:443 HTTP/1.1" - похоже на рекламу?
2) В любом случае, что ему мешает аутентифицироваться, зачем спрашивает логин-пароль? И почему он все-таки проходит аутентификацию, когда я нажимаю отмену?
===============================================================
192.168.4.60 - - [10/Nov/2014:10:28:29 +0600] "GET http://ping3.teamviewer.com/din.aspx? HTTP/1.1" 407 3975 TCP_DENIED:NONE
192.168.4.60 - User@DOMAIN.LOC [10/Nov/2014:10:28:29 +0600] "GET http://ping3.teamviewer.com/din.aspx? HTTP/1.1" 200 587 TCP_MISS:DIRECT
===============================================================
Логика где?
3) Под правила с аутентификацией, если посмотреть конфиг, подпадают абсолютно все запросы от доменных компов.
А могут запросы авторизации в вышеуказанных программах быть как-то связаны с перечисленными в krb5.conf типами шифрования (rc4-hmac des-cbc-crc des-cbc-md5)?
http://pastebin.com/7Uh05y6E - /etc/krb5.conf