Инструменты пользователя

Инструменты сайта


squid_ad

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

squid_ad [2015/05/25 18:51]
metallic [Настройка]
squid_ad [2022/03/25 17:00]
Строка 1: Строка 1:
-====== Интеграция Squid с Active Directory (NTLM) ====== 
- 
-====== Введение ====== 
- 
-Задача: аунтифицировать пользователей на проксе-сервере с помощью уже имеющихся учетных данных в каталоге AD, более того, клиентов с ОС Windows, которые уже авторизованы в домене избавить от необходимости вводить логин и пароль в браузере. 
- 
-Имеем: домен под управлением Windows Server 2012, прокси-сервер Debian 7, Squid 3.1 
- 
-Вообще для решения подобной задачи существует как минимум два метода: NTLM и kerberos. В первом случае понадобится дополнительная прослойка в виде winbind, во втором случае этого не потребуется. Также в инетернетах можно встретить негативные высказывания в отношении варианта с winbind, вроде бы не очень быстрый вариант при больших нагрузках. НО лично я использую winbind в связке с samba на высоконагруженных файловых серверах уже более пяти лет, например есть сервера с несколькими 10Гбит интерфейсами и сотнями одновременно подключенных клиентов, которые активно грузят сервер, никаких проблем со стороны winbind я никогда не имел. В варианте с winbind(NTLM) привлекает предельно простая настройка, когда как в варианте с kerberos с бубном предстоит поплясать не мало, поэтому я остановлюсь на NTLM. 
- 
-====== Настройка ====== 
- 
-1. Подключаем прокси-сервер к домену Active Directory, как это сделать [[samba_ad|описано тут]], после настройки и тестирования samba можно остановить, если не используется, понадобится только winbind. 
- 
-2. Ставим на прокси-сервере необходимое ПО: 
- 
-  # apt-get install squid3 
- 
-3. Тестируем различные варианты авторизации: 
- 
-  # wbinfo -a user%password 
-  plaintext password authentication succeeded 
-  challenge/response password authentication succeeded 
-   
-  # ntlm_auth --helper-protocol=squid-2.5-basic 
-  user password 
-  OK 
-   
-  # ntlm_auth --username=user --nt-response 
-  password: 
-  NT_STATUS_OK: Success (0x0) 
- 
-Если все ОК, значит система может авторизоваться в домене. 
- 
-4. Добавляем пользователя proxy в группу winbindd_priv для того чтобы у него был доступ в /run/samba/winbindd_privileged, иначе NTLM работать не будет, только basic: 
- 
-  # usermod -a -G winbindd_priv proxy 
- 
-5. Правим конфиг прокси /etc/squid3/squid.conf (минимальный набор): 
- 
-  http_port 192.168.0.1:3128 
-  cache_access_log /var/log/squid3/access.log 
-   
-  acl localhost src 127.0.0.1/32 
-   
-  acl god_mode src 10.0.0.0/16 
-   
-  acl SSL_ports port 443 
-  acl Safe_ports port 80          # http 
-  acl Safe_ports port 21          # ftp 
-  acl Safe_ports port 443         # https 
-  acl Safe_ports port 70          # gopher 
-  acl Safe_ports port 210         # wais 
-  acl Safe_ports port 1025-65535  # unregistered ports 
-  acl Safe_ports port 280         # http-mgmt 
-  acl Safe_ports port 488         # gss-http 
-  acl Safe_ports port 591         # filemaker 
-  acl Safe_ports port 777         # multiling http 
-   
-  # NTLM 
-  auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp 
-  auth_param ntlm children 5 
-   
-  acl AuthorizedUsers proxy_auth REQUIRED 
-   
-  http_access allow localhost 
-  http_access deny !Safe_ports 
-  http_access allow all AuthorizedUsers 
-  http_access deny all 
-   
-  icp_access deny all 
-  cache_mgr admin@domain.ru 
-  visible_hostname PROXY 
- 
-Перезапускаем прокси и пытаемся подключиться с клиента, если клиент в домене, то все должно работать без запроса пароля, если нет логин нужно вводить в таком формате: DOMAIN\user. Если нужно чтобы в интернет могли выходить пользователи только определенной группы, создаем такую группу на DC, выясняем ее GID(есть множество способов как это сделать, сам GID выглядит примерно так S-1-5-21-1421388833-3017584253-2885461630-8798) и немного редактируем конфиг прокси: 
- 
-  ... 
-  # NTLM 
-  auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=S-1-5-21-1421388833-3017584253-2885461630-8798 
-  ... 
-   
-Также, если есть клиенты, которые не поддерживают NTLM аунтификацию, можно добавить basic(прокси будет пытаться использовать методы аунтификации в порядке указанном в фонфиге): 
- 
-  auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic 
-  auth_param basic children 5 
-  auth_param basic realm Corp Web Proxy 
-  auth_param basic credentialsttl 2 hours 
- 
-Все. 
- 
-====== Ссылки ====== 
- 
-  * [[http://www.theadmin.ru/linux/squid/nastrojka-autentifikacii-squid-v-domene-windows-s-pomoshhyu-ntlm/|Настройка аутентификации Squid в домене Windows с помощью NTLM]] 
-  * [[http://www.theadmin.ru/linux/squid/proksi-server-squid-v-active-directory-s-kerberos-autentifikaciej/|Прокси сервер Squid в Active Directory с Kerberos аутентификацией]] 
-  * [[http://wiki.squid-cache.org/ConfigExamples/Authenticate/Ntlm|Configuring Squid for NTLM with Winbind authenticators]] 
-  * [[http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory|Configuring a Squid Server to authenticate off Active Directory]] 
-  * [[http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos|Configuring a Squid Server to authenticate from Kerberos]] 
-  * [[http://wiki.bitbinary.com/index.php/Active_Directory_Integrated_Squid_Proxy|Active Directory Integrated Squid Proxy]] 
-  * [[http://habrahabr.ru/post/197154/|CentOS 6.x 64 и Squid с авторизацией из Win2008AD]] 
-  * [[http://www.k-max.name/linux/squid-proxy-v-linux/|Прокси-сервер SQUID, вводный пост]] 
-  * [[http://www.k-max.name/linux/avtorizaciya-autentifikaciya-squid/|Аутентификация и авторизация squid (basic, Digest, NTLM, negotiate)]] 
-  *  
- 
-Также в случае использования Lightsquid. 
-[[http://habrahabr.ru/post/227289/|Автоматический импорт ФИО пользователей из Active Directory в Lightsquid]] 
  
squid_ad.txt · Последнее изменение: 2022/03/25 17:00 (внешнее изменение)