Задача: хочу чтобы пользователь авторизовывался на squid через AD с целью удобного мониторинга и составления в последствии отчета.
Цель заметки: Удобнее всего управлять разграничение доступа в сеть интернет централизовано. А централизовано — это управление через группы Active Directory, плюс к этому посредством GPO будет происходит четкое нацеливание создаваемых политик, что избавит Вас как системного администратора от беготни по рабочим местам. Но все выше сказанное справедливо если у Вас в локальной сети используется Active Directory и рабочие станции на базе Windows.
План:
- На Ubuntu 14.04.5 Trusty Server amd64 Поставить SQUID (CPU = 2,HDD = 50, RAM = 2)
- Поднять домен (внутри создана учетная запись: squid@polygon.local, pass: Aa1234567)
- Настроить авторизацию Ubuntu Trusty системы через kerberos билет в домене.
- Поднять домен контроллер на базе Windows Server 2012 R2 Std
Схема:
Mikrotik (Роутер) 10.10.10.1 — DC (Active Directory, DNS, DHCP) 10.10.10.2 — srv-squid (Ubuntu Trusty) 10.10.10.11 – Workstations
Итак развернув Ubuntu Trusty с необходимыми характеристиками и установив squid по ранее опубликованной заметке я сразу же после успешного завершения сохранил к себе в облачное хранилище OwnCloud на HP MicroServer Gen 8 все Deb файлы дабы не зависеть от прихотей разработчиков и владельца репозитария.
Точнее это пошаговая заметка с разборов всех нюансов которые у меня возникли.
Шаг №1: подготавливаю систему
ekzorchik@srv-squid:~$ sudo rm -Rf /var/lib/apt/lists/
ekzorchik@srv-squid:~$ sudo apt-get update && sudo apt-get upgrade -y
ekzorchik@srv-squid:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y
ekzorchik@srv-squid:~$ sudo /etc/init.d/apparmor stop
ekzorchik@srv-squid:~$ sudo /etc/init.d/apparmor teardown
ekzorchik@srv-squid:~$ sudo update-rc.d -f apparmor remove
ekzorchik@srv-squid:~$ sudo apt-get remove apparmor -y
ekzorchik@srv-squid:~$ sudo rm -Rf /etc/apparmor /etc/apparmor.d/
ekzorchik@srv-squid:~$ sudo nano /etc/default/apport
enabled=0
ekzorchik@srv-squid:~$ sudo nano /etc/hosts
10.10.10.11 srv-squid.polygon.local srv-squid
10.10.10.2 srv-dc.polygon.local srv-dc
ekzorchik@srv-squid:~$ sudo nano /etc/hostname
srv-squid.polygon.local
Настраиваем локаль:
ekzorchik@srv-squid:~$ sudo locale-gen ru_RU
ekzorchik@srv-squid:~$ sudo locale-gen ru_RU.UTF8
ekzorchik@srv-squid:~$ sudo dpkg-reconfigure locales
ekzorchik@srv-squid:~$ sudo nano /etc/profile
export LC_ALL="en_US.UTF-8"
ekzorchik@srv-squid:~$ source /etc/profile
Теперь отредактирую файл /etc/locale.alias:
ekzorchik@srv-squid:~$ sudo nano +67 /etc/locale.alias
вместо: russian ru_RU.ISO-8859-5
изменяю на: russian ru_RU.UTF-8
По окончании изменений не забываем сохранить внесенные изменения в конфигурационный файл.
ekzorchik@srv-squid:~$ sudo rm /etc/localtime
ekzorchik@srv-squid:~$ sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
ekzorchik@srv-squid:~$ sudo apt-get install ntp ntpdate -y
ekzorchik@srv-squid:~$ sudo nano /etc/ntp.conf
server srv-dc.polygon.local
ekzorchik@srv-squid:~$ sudo service ntp restart
ekzorchik@srv-squid:~$ sudo ntpq -p
ekzorchik@srv-squid:~$ date
Mon Jul 10 07:28:07 MSK 2017
Затем перезагружаю систему:
ekzorchik@serv-squid:~$ sudo reboot
ekzorchik@srv-squid:~$ uname -a && lsb_release -a
Linux srv-squid 4.4.0-83-generic #106~14.04.1-Ubuntu SMP Mon Jun 26 18:10:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Шаг №2 → Устанавливаю SQUID из deb пакетов взятых из собственного хранилища OwnCloud. Автор своего сайта свернул проект где ранее они находились да и к тому же по заметке где я собирал их вышли новые версии пакетов, а старые были удалены. Так что она тоже не удел, ее нужно перерабатывать. Всегда нужно надеяться только на себя.
aollo@work:~$ scp -P 2222 Dropbox/tips_db_home/tips_nemdom/tips_squid_trusty/*.deb ekzorchik@100.70.90.82:/home/ekzorchik
aollo@work:~$ ssh -l ekzorchik 100.70.90.82 -p 2222
ekzorchik@srv-squid:~$ sudo apt-get -y install devscripts build-essential fakeroot debhelper dh-autoreconf cdbs
ekzorchik@srv-squid:~$ sudo apt-get -y build-dep libecap
ekzorchik@srv-squid:~$ sudo apt-get -y build-dep squid3
ekzorchik@srv-squid:~$ sudo apt-get -y --purge remove libecap2-dev libecap2
ekzorchik@srv-squid:~$ sudo apt-get -y install nettle-dev libgnutls28-dev libssl-dev libdbi-perl
ekzorchik@srv-squid:~$ sudo dpkg -i libecap3_1.0.1-3_amd64.deb libecap3-dev_1.0.1-3_amd64.deb
ekzorchik@srv-squid:~$ sudo dpkg -i squid-common_3.5.19-1_all.deb squid_3.5.19-1_amd64.deb squidclient_3.5.19-1_amd64.deb squid-dbg_3.5.19-1_amd64.deb squid-purge_3.5.19-1_amd64.deb squid-cgi_3.5.19-1_amd64.deb
ekzorchik@srv-squid:~$ sudo apt-get install -f -y
ekzorchik@srv-squid:~$ squid -v | head -n 2
Squid Cache: Version 3.5.19
Service Name: squid
ekzorchik@srv-squid:~$ sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup
Теперь создаю сертификат текущего сервера с которым будет работать SQUID:
ekzorchik@srv-squid:~$ sudo mkdir /etc/squid/ssl
ekzorchik@srv-squid:~$ cd /etc/squid/ssl/
ekzorchik@srv-squid:/etc/squid/ssl$ sudo openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -keyout squidca.pem -out squidca.pem
Common Name (e.g. server FQDN or YOUR name) []:srv-squid.polygon.local
ekzorchik@srv-squid:/etc/squid/ssl$ sudo chmod 400 squidca.pem
ekzorchik@srv-squid:/etc/squid/ssl$ cd ~/
Шаг №3 → Устанавливаю пакет Kerberos в систему Ubuntu (Trusty)
Далее нужно получить для данной системы kerberos билет, как же это сделать смотрите ниже или что мне пришлось сделать, чтобы удовлетворить свое желание выполнив поставленную данной заметкой задачу.
ekzorchik@serv-squid:~$ sudo apt-get install krb5-user -y
ekzorchik@serv-squid:~$ klist -V
Kerberos 5 version 1.12
Шаг №4 → Настраиваю Kerberos в Ubuntu системе, зная версию установленного Kerberos в систему можно правильно составить конфигурационный файл все лишь навсего сориентировавшись с официальным мануалом: http://web.mit.edu/kerberos/www/krb5-1.12/
ekzorchik@srv-squid:~$ sudo cp /etc/krb5.conf /etc/krb5.conf.backup
ekzorchik@srv-squid:~$ sudo bash -c "cat > /etc/krb5.conf"
ekzorchik@srv-squid:~$ sudo nano -Y sh /etc/krb5.conf
[libdefaults]
default_realm = POLYGON.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetieme = 24h
kdc_timesync = 1
ccache_type = 4
forwardable = yes
rdns = no
default_keytab_name = /etc/squid/srv-squid.keytab
default_tgs_enctypes = des-cbc-crc rc4-hmac des-cbc-md5
default_tkt_enctypes = des-cbc-crc rc4-hmac des-cbc-md5
permitted_enctypes = des-cbc-crc rc4-hmac des-cbc-md5
clock_skew = 300
[realms]
POLYGON.LOCAL = {
kdc = srv-dc.polygon.local
admin_server = srv-dc.polygon.local
default_domain = POLYGON.LOCAL
}
[domain_realm]
.polygon.local = POLYGON.LOCAL
polygon.local = POLYGON.LOCAL
Шаг №5 → Нужно в DNS на контроллере домена (srv-dc.polygon.local) в Forward Lookup Zones добавить A–запись и PTR Запись хоста с приложением squid.
Win + X → Control Panel — Administrative Tools — DNS, Forward Lookup Zones — polygon.local
Шаг №6: Создаю на домен контроллере keytab файл аутентификации
Cоздаю в домене AD (srv-dc.polygon.local) служебную учетную запись пользователя (squid@polygon.local) и пароль Aa1234567 и предопределяю для нее следующие настройки:
srv-dc.polygon.local — Start — Control Panel — Administrative Tools — Active Directory Users and Computers — нахожу созданную учетную запись squid и открыв ее Properties (Свойства) — вкладка Account:
- User cannot change password: отмечаю галочкой
- Password never expires: отмечаю галочкой
А после создаю группы посредством которых будет идти управлением доступ к сети интернет:
- SQUID_ADMINS_IP → доступ в интернет без ограничений доступа
- SQUID_BLOCK_INET_WHITE → блокировать интернет всем кто в указанной ниже группе Active Directory, кроме белого списка адресов
,затем генерирую на контроллере домена для этой учетной записи keytab-файл, который затем скопирую на разворачиваемый прокси сервер (через pscp,winscp и т.д, главное чтобы было безопасно) где буду использовать его для аутентификации Kerberos на постоянной основе.
Win + X → Command Prompt (Admin)
C:\Windows\system32>mkdir c:\keytab
(-princ
→ Для какого компьютера настроить аутентификацию)
C:\Windows\system32>ktpass -princ HTTP/srv-squid.polygon.local@POLYGON.LOCAL -mapuser squid -pass Aa1234567 -ptype KRB5_NT_PRINCIPAL -crypto ALL -out c:\keytab\srv-squid.keytab
Targeting domain controller: SRV-dc.polygon.local
Using legacy password setting method
Successfully mapped HTTP/srv-squid.polygon.local to squid-b.
Key created.
Key created.
Key created.
Key created.
Key created.
Output keytab to c:\keytab\srv-squid.keytab:
Keytab version: 0x502
keysize 68 HTTP/srv-squid.polygon.local@polygon.local ptype 1 (KRB5_NT_PRINCIPAL)
vno 8 etype 0x1 (DES-CBC-CRC) keylength 8 (0x61c8bcbf732f8920)
keysize 68 HTTP/srv-squid.polygon.local@polygon.local ptype 1 (KRB5_NT_PRINCIPAL)
vno 8 etype 0x3 (DES-CBC-MD5) keylength 8 (0x61c8bcbf732f8920)
keysize 76 HTTP/srv-squid.polygon.local@polygon.local ptype 1 (KRB5_NT_PRINCIPAL)
vno 8 etype 0x17 (RC4-HMAC) keylength 16 (0x58705ad7aee5c92df1aa249430acad10)
keysize 92 HTTP/srv-squid.polygon.local@polygon.local ptype 1 (KRB5_NT_PRINCIPAL)
vno 8 etype 0x12 (AES256-SHA1) keylength 32 (0xc70e504f9a07c932b311d28aff194326
193e1899a7a42188e931930e7cb20cf6)
keysize 76 HTTP/srv-squid.polygon.local@polygon.local ptype 1 (KRB5_NT_PRINCIPAL) vno 8 etype 0x11 (AES128-SHA1) keylength 16 (0x481a41cebfd412e47b45321b4629ab3d)
— где:
- -princ — имя сервиса и принципала;
- -mapuser — аккаунт принципала;
- -crypto — используемый алгоритм шифрования;
- -pass — пароль к аккаунту принципала;
- -ptype — тип запроса от принципала;
- -out — файл для вывода кейтаба.
затем нужно полученный файл squid.keytab передать на систему которая является шлюзом (на srv-squid.polygon.local) любым способом, к примеру через клиент putty, pscp, winscp
Шаг №7 → Копирую переданный keytab файл в дефолтную директорию и с правильным именем. (читайте документацию выше на этот счет)
ekzorchik@srv-squid:~$ sudo mv srv-squid.keytab /etc/squid/
ekzorchik@srv-squid:~$ sudo chown proxy:proxy /etc/squid/srv-squid.keytab
ekzorchik@srv-squid:~$ sudo chmod 640 /etc/squid/srv-squid.keytab
ekzorchik@srv-squid:~$ sudo klist -k /etc/squid/srv-squid.keytab
Keytab name: FILE:/etc/squid/srv-squid.keytab
KVNO Principal
---- --------------------------------------------------------------------------
3 HTTP/srv-squid.polygon.local@polygon.local
3 HTTP/srv-squid.polygon.local@polygon.local
3 HTTP/srv-squid.polygon.local@polygon.local
3 HTTP/srv-squid.polygon.local@polygon.local
3 HTTP/srv-squid.polygon.local@polygon.local
На заметку: советую сохранить где-нибудь в системе на всякий случай его копию
Шаг №8 → Проверяем возможность аутентификации в AD с помощью переданного с домен контроллера keytab файла. Сначала выполняем команду, которая должна отработать без ошибок:
ekzorchik@srv-squid:~$ sudo kinit -kV -p HTTP/srv-squid.polygon.local
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/srv-squid.polygon.local@POLYGON.LOCAL
Authenticated to Kerberos v5
ekzorchik@srv-squid:~$ sudo klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: HTTP/srv-squid.polygon.local@POLYGON.LOCAL
Valid starting Expires Service principal
07/10/2017 10:31:45 07/10/2017 20:31:45 krbtgt/POLYGON.LOCAL@POLYGON.LOCAL
renew until 07/11/2017 10:31:45
Шаг №9 → Устанавливаю необходимую зависимость для работы squid & Active Directory:
ekzorchik@srv-squid:~$ sudo apt-get install libsasl2-modules-gssapi-mit libsasl2-modules -y
Для того чтобы сквид знал, какой кейтаб использовать, ему нужно указать, где он лежит.
ekzorchik@srv-squid:~$ sudo nano /etc/init.d/squid
DESC="Squid HTTP Proxy"
KRB5_KTNAME=/etc/squid/srv-squid.keytab
export KRB5_KTNAME
Шаг №10 → Теперь нужно настроить конфигурационный файл squid на связь с доменом.
ekzorchik@srv-squid:~$ sudo apt-get install ldap-utils -y
ekzorchik@srv-squid:~$ sudo bash -c "cat > /etc/squid/squid.conf"
ekzorchik@srv-squid:~$ sudo nano /etc/squid/WhiteList.txt
.ekzorchik.ru
ekzorchik@srv-squid:~$ sudo nano /etc/squid/BlackList.txt
.yaplakal.com
.vk.com
.vkontakte.ru
.ok.ru
.games.mail.ru
.facebook.com
.pikabu.ru
.infiplay.ru
.my.mail.ru
.disk.yandex.ru
.onedrive.live.com
.dropbox.com
ekzorchik@srv-squid:~$ sudo nano /etc/squid/squid.conf
##################################
#
Настройка авторизации Kerberos #
##################################
auth_param
negotiate program /usr/lib/squid/negotiate_kerberos_auth -d -s
HTTP/srv-squid.polygon.local
auth_param
negotiate children 50
auth_param
negotiate keep_alive on
external_acl_type
B_SQUID_ADMINS_IP ttl=5 negative_ttl=5 %LOGIN
/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g SQUID_ADMINS_IP -D
polygon.local
external_acl_type
B_SQUID_BLOCK_INET_WHITE ttl=5 negative_ttl=5 %LOGIN
/usr/lib/squid3/ext_kerberos_ldap_group_acl -a -g
SQUID_BLOCK_INET_WHITE -D polygon.local
######################################
#
Обслуживаемые прокси-сервером сети #
######################################
#
Правило указывающее доступ в интернет
только через авторизацию Kerberos
#
Если вдруг что-то не так, не отрабатывает
Kerberos, то нужно в файле: /etc/squid/squid.conf
закомментировать строчку ниже, а вместо
нее поставить: acl localnet src 10.10.10.0/24
acl
auth proxy_auth REQUIRED
#################################################
#
Правила какие порты разрешены
прокси-сервером #
#################################################
#
Порт SSL для подключений по HTTPS-протоколу
acl
SSL_ports port 443
#
Список портов, к которым разрешен доступ
через прокси-сервер по протоколу HTTP
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
acl
CONNECT method CONNECT
################################################################
#
Пути к файлам запрещающих, разрешающих
определенные действия #
################################################################
#
Группа в AD на которую не распространяются
запреты
acl
SQUID_ADMINS_IP external SQUID_ADMINS_IP
#
Группа в AD в которой запрещен интернет
кроме Белого списка
acl
SQUID_BLOCK_INET_WHITE external SQUID_BLOCK_INET_WHITE
#
Путь к белому списку сайтов
acl
WhiteList dstdomain "/etc/squid/WhiteList.txt"
#
Путь к черному списку сайтов
acl
BlackList dstdomain "/etc/squid/BlackList.txt"
#########################
#
Параметры DNS записей #
#########################
#
Список DNS серверов(IP адреса), которые
будут использоватся вместо тех, что
определены в /etc/resolv.conf файле
dns_nameservers
10.10.10.2
#########################################
#
Правила ограниченией доступа клиентов
#
#########################################
#
Запретить доступ к портам, отсутствующим
в списке выше
http_access
deny !Safe_ports
#
Запретить метод CONNECT не на SSL-порт
http_access
deny CONNECT !SSL_ports
#
Разрешить только локальное управление
кэшем
http_access
allow localhost manager
http_access
deny manager
#
Не ограничивать локальный доступ с
сервера
http_access
allow localhost
#
Доступ в интернет без ограничения
доступа
http_access
allow SQUID_ADMINS_IP
#
Блокировать интернет всем кто в указанной
ниже группе AD, кроме белого списка
адресов
http_access
deny SQUID_BLOCK_INET_WHITE !WhiteList
#
Блокировать запрещенные сайты
http_access
deny BlackList
#
Правила разрешающего доступ в интернет
только авторизованным пользователям
AD
http_access
allow auth
#
Блокирует все, что не было разрешено
выше
http_access
deny all
################################################
#
Правила подключений клиентов к
прокси-серверу#
################################################
#
Подключения через прозрачный порт
http_port
10.10.10.11:3128 intercept options=NO_SSLv3:NO_SSLv2
#
Подключение через указания прокси-сервера
на строне клиента
http_port
10.10.10.11:3130 options=NO_SSLv3:NO_SSLv2
#
Подключение по HTTPS через прозрачный
порт с параметрами подставки сертификата
https_port
10.10.10.11:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2
connection-auth=off cert=/etc/squid/ssl/squidca.pem
#
Принимаем сертификаты, даже если они
не прошли проверку.
always_direct
allow all
sslproxy_cert_error
allow all
sslproxy_flags
DONT_VERIFY_PEER
#
Укажем список блокируемых ресурсов (в
файле домены вида .domain.com) и правила
блокировки их
acl
blocked ssl::server_name "/etc/squid/BlackList.txt"
#
Устанавливаем защищенное соединение
и считываем заголовок HTTP
acl
step1 at_step SslBump1
ssl_bump
peek step1
#
Закрываем соединение, если клиент
заходит на ресурс указанные в blocked
ssl_bump
terminate blocked
ssl_bump
splice all
sslcrtd_program
/usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
#########################################
#
Дополнительные параметры конфигурации
#
#########################################
#
Путь для дискового кеширования
cache_dir
aufs /var/spool/squid 20000 49 256
#
Путь сохранения дампов аварийного
завершения
coredump_dir
/var/spool/squid
#
Время жизни объектов для протоколов
FTP и GOPHER
refresh_pattern
^ftp: 1440 20% 10080
refresh_pattern
^gopher: 1440 0% 1440
#
Нулевое время жизни для динамического
контента
refresh_pattern
-i (/cgi-bin/|\?) 0 0% 0
#
Время жизни по умолчанию
refresh_pattern
. 0 20% 4320
maximum_object_size
61440 KB
minimum_object_size
3 KB
cache_swap_low
90
cache_swap_high
95
#
Максимальный размер объекта, сохраняемого
в оперативной памяти
maximum_object_size_in_memory
512 KB
memory_replacement_policy
lru
#
Количество ротаций лог-файлов (0 -
отключена ротация, 15 - максимальное
количество)
logfile_rotate
0
#
E-mail адрес Cache менеджера, для отправки
уведомлений и отображении в страницах
ошибок
cache_mgr
support@ekzorchik.ru
После не забываем сохранить внесенные изменения.
Далее обязательно нужно проверить созданный и наполненный конфигурационный файл squid.conf на ошибки:
ekzorchik@srv-squid:~$ sudo squid -k check
ekzorchik@srv-squid:~$ sudo squid -k parse
вывод говорит, что ошибок нет, но не лишним будет запустить squid в режиме отладки и убедиться уже точно.
ekzorchik@srv-squid:~$ sudo squid -d info
2016/10/30 10:00:56| Squid is already running! Process ID 19068
ekzorchik@srv-squid:~$ sudo service squid start
ekzorchik@srv-squid:~$ sudo /etc/init.d/squid status
* squid is running
ekzorchik@srv-squid:~$ sudo netstat -tulpn | grep squid
tcp 0 0 10.10.10.11:3128 0.0.0.0:* LISTEN 2449/(squid-1)
tcp 0 0 10.10.10.11:3129 0.0.0.0:* LISTEN 2449/(squid-1)
tcp 0 0 10.10.10.11:3130 0.0.0.0:* LISTEN 2449/(squid-1)
udp 0 0 0.0.0.0:36464 0.0.0.0:* 2449/(squid-1)
udp6 0 0 :::51705 :::* 2449/(squid-1)
Если запустилось то значит аутентификация Kerberos проходит успешно.
На заметку: Советую раздел /var/spool или указать отличный от системного раздела раздел для кеширования на другом диске и использовать LVM если вдруг чего понадобиться расширить.
На заметку: если меняется конфиг то service squid restart
, если добавляются сайты в список то service squid reload
На заметку: Если у пользователя прописан адрес прокси сервера srv-squid.polygon.local:3130 но он не состоит ни в каких группах то на него распространяется правило BlackList.txt которое блокирует доступ к тем сайтам которые там указаны.
Теперь протестирую работу данного прокси сервера, к примеру у меня есть рабочая станция под управлением Windows 7 SP1 Корпоративная, она в домене.
Тестовая учетная запись: alektest, добавлена в группу: SQUID_BLOCK_INET_WHITE
Либо через GPO либо локально прописываю настройки прокси сервера в свойства обозревателя:
Пуск — Панель управления — Просмотр: Категория (Мелкие значки) — Свойства обозревателя — вкладка Подключения — Настройка сети:
- Использовать прокси-сервер для локальных подключений: отмечаем галочкой
- Адрес: srv-squid.polygon.local
- Порт: 3130
- Не использовать прокси-сервер для локальных адресов: отмечаем галочкой
После чего на рабочей станции нужно сделать Logoff & Logon и пойдет интернет, как и было задумано в данной заметке, которая была расписана во всех шагах, но только интернет будет работать для списка WhiteList, либо же если в доменную группу не добавлять, а прописать настройки прокси, то интернет будет для всего за исключением списка BlackList
Чтобы проверить, а сам сервис SQUID видит доменную группу и пользователя в ней:
ekzorchik@srv-squid:~$ sudo /usr/lib/squid3/ext_kerberos_ldap_group_acl -a -d -i -g SQUID_BLOCK_INET_WHITE -D POLYGON.LOCAL
kerberos_ldap_group.cc(278): pid=3332 :2017/07/10 13:21:53| kerberos_ldap_group: INFO: Starting version 1.3.1sq
support_group.cc(382): pid=3332 :2017/07/10 13:21:53| kerberos_ldap_group: INFO: Group list SQUID_BLOCK_INET_WHITE
support_group.cc(447): pid=3332 :2017/07/10 13:21:53| kerberos_ldap_group: INFO: Group SQUID_BLOCK_INET_WHITE Domain NULL
support_netbios.cc(83): pid=3332 :2017/07/10 13:21:53| kerberos_ldap_group: DEBUG: Netbios list NULL
support_netbios.cc(87): pid=3332 :2017/07/10 13:21:53| kerberos_ldap_group: DEBUG: No netbios names defined.
support_lserver.cc(82): pid=3332 :2017/07/10 13:21:53| kerberos_ldap_group: DEBUG: ldap server list NULL
support_lserver.cc(86): pid=3332 :2017/07/10 13:21:53| kerberos_ldap_group: DEBUG: No ldap servers defined.
Alektest → вводим доменного пользователя
support_ldap.cc(1390): pid=3332 :2017/07/10 13:21:56| kerberos_ldap_group: DEBUG: Unbind ldap server
support_member.cc(125): pid=3332 :2017/07/10 13:21:56| kerberos_ldap_group: INFO: User alektest is member of group@domain SQUID_BLOCK_INET_WHITE@NULL
OK
kerberos_ldap_group.cc(408): pid=3332 :2017/07/10 13:21:56| kerberos_ldap_group: DEBUG: OK
Как видно из сокращенного вывода статус равен OK значит все так и есть как есть в группе на контроллере домена оснастки Active Directory Users and Computers.
Далее если пользователь ни куда не добавлен но у него в настройках свойства обозревателя прописана прокся с портом, к нему лишь будут применима политика BlackList.txt.
Проверяем работу. Если на ПК вы авторизованны под доменной учетной записью, то интернет будет работать нормально. А если же вы на ПК не под доменной учетной записью, то при открытии любых страниц вам будет предложено ввести данные для доступа к сети интернет. К сожалению если попытаться ввести учетные данные доменного пользователя, то все равно доступа не будет к интернету. А может так и должно быть, что только те кто в домене и при использовании строки: acl auth proxy_auth REQUIRED должны быть идентифицированы. Если для всех то acl localnet src 10.10.10.0/24
На заметку: в поле прокси на ПК пользователя обязательно нужно указывать FQDN имя, если указать IP адрес то появляется окно где нужно ввести логин и пароль и так до бесконечности.
Заметка работоспособна. На этом всё, с уважением автор блога Олло Александр aka ekzorchik.