Сетевые технологии · 7 min read · Nov 06, 2025
Debian Squeeze, Squid, Kerberos/LDAP Аутентификация, Интеграция Active Directory и Cyfin Reporter - Страница 2
Настройка Squid
Для использования нашего резервного доступа к LDAP и авторизаций через группы безопасности в Active Directory нам необходимо создать учетную запись с разрешением на поиск атрибутов Active Directory. Squid будет использовать эту учетную запись для предоставления пользователям доступа.
В Active Directory создайте пользователя с именем “Squid Proxy” с именем для входа [email protected] и запишите пароль, заменив слово “squidpass” ниже на ваш пароль.
Убедитесь, что следующее верно при создании учетной записи.
- Пользователь должен изменить пароль при следующем входе Не отмечено
- Пользователь не может изменить пароль Отмечено
- Пароль никогда не истекает Отмечено
- Учетная запись отключена Не отмечено
По умолчанию учетная запись squid не сможет запрашивать атрибут “memberOf” в AD. Выберите верхний уровень вашего домена Active Directory в Active Directory Users and Computers, щелкните правой кнопкой мыши и выберите свойства, вкладка Безопасность, добавьте пользователя squid и дайте ему права на чтение (это должно произойти по умолчанию) и разрешите ему читать “Этот объект и все дочерние объекты”, перейдя в Расширенные параметры.
Создайте следующие группы безопасности с описаниями в Active Directory и добавьте пользователей в соответствующие группы - если пользователь не является частью группы, он сможет получить доступ только к сайтам в ACL whitelistsites.
Члены группы Internet Users не смогут получить доступ к веб-сайтам в ACL blocksites.
- Internet Users | Описание: Члены этой группы могут получить доступ к Интернету. Доступ регистрируется с ограничениями по веб-сайтам
- Internet Users Full Log | Описание: Члены этой группы могут получить доступ к Интернету. Доступ регистрируется с полным доступом к веб-сайтам
- Internet Users Full NoLog | Описание: Члены этой группы могут получить доступ к Интернету. Доступ не регистрируется с полным доступом к веб-сайтам
Затем мы настраиваем squid и его связанные конфигурационные файлы.
Запуск squid
Добавьте следующую конфигурацию в /etc/default/squid3 (этот файл по умолчанию не существует).
vi /etc/default/squid3KRB5_KTNAME=/etc/squid3/PROXY.keytab
export KRB5_KTNAMEsquid.conf
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.default
cat /dev/null > /etc/squid3/squid.conf
vi /etc/squid3/squid.conf
Обновите переменную менеджера кеша с адресом электронной почты человека, ответственного за прокси.
Изучите и обновите следующий текст внимательно, заменив примерное содержимое (выделенное) на конфигурацию вашей сети - если вы что-то сделаете неправильно, ваш прокси не будет работать.
####### /etc/squid3/squid.conf Файл конфигурации #######
####### менеджер кеша
cache_mgr [email protected]
####### kerberos аутентификация
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/squidproxy.example.local
auth_param negotiate children 10
auth_param negotiate keep_alive on
####### предоставление доступа через ldap для клиентов, не аутентифицированных через kerberos
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f sAMAccountName=%s \
-h domaincontroller1.example.local
auth_param basic children 10
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 1 minute
####### ldap авторизации
# ограниченный доступ к прокси регистрируется
external_acl_type internet_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# полный доступ к прокси без регистрации
external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full NoLog,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# полный доступ к прокси с регистрацией
external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full Log,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
####### acl для аутентификации прокси и ldap авторизаций
acl auth proxy_auth REQUIRED
# формат "acl, aclname, acltype, acltypename, activedirectorygroup"
acl RestrictedAccessLog external internet_users Internet\ Users
acl FullAccessNoLog external internet_users_full_nolog Internet\ Users\ Full\ NoLog
acl FullAccessLog external internet_users_full_log Internet\ Users\ Full\ Log
acl whitelistsites url_regex -i "/etc/squid3/whitelistsites.txt"
acl blockedsites url_regex -i "/etc/squid3/blockedsites.txt"
####### squid по умолчанию
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
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 # не зарегистрированные порты
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 # многоязычный http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
####### принудительная аутентификация: порядок правил важен для уровней авторизации
no_cache deny whitelistsites
http_access allow whitelistsites
http_access allow FullAccessNoLog auth
http_access allow FullAccessLog auth
http_access deny blockedsites
http_access allow RestrictedAccessLog auth
####### регистрация
# не регистрировать whitelistsites, FullAccessNoLog
access_log /var/log/squid3/access.log squid !whitelistsites !FullAccessNoLog
####### squid по умолчанию
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
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
touch /etc/squid3/whitelistsites.txt
touch /etc/squid3/blockedsites.txt
invoke-rc.d squid3 restart
Автоматическая конфигурация прокси
Установите Apache2:
apt-get install apache2Добавьте конфигурацию в Apache2, чтобы определить формат файла скрипта конфигурации прокси.
vi /etc/apache2/conf.d/wpad.datAddType application/x-ns-proxy-autoconfig .datСоздайте наш файл wpad.dat, используемый веб-браузерами для конфигурации:
vi /var/www/wpad.datИзмените строку, начинающуюся с $proxy, на FQDN вашего прокси (выделенный текст).
function FindProxyForURL(url, host)
{
$proxy = "PROXY squidproxy.example.local:3128";
// URL-адреса в этой сети доступны напрямую
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {return "DIRECT";}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {return "DIRECT";}
if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
if (isInNet(host, "127.0.0.0", "255.0.0.0")) {return "DIRECT";}
//Возврат прокси для ВСЕГО остального
else return $proxy;
}
Перезапустите Apache2:
invoke-rc.d apache2 restartDNS записи WPAD
Предупреждение: Как только вы добавите следующую DNS запись, прокси станет активным. Остановитесь на этом этапе и проверьте.
- Что клиентские браузеры используют интегрированную аутентификацию Windows
- Что вы добавили всех пользователей в соответствующие группы безопасности Internet Users в AD
- Что все клиентские браузеры настроены на автоматическое определение настроек прокси для доступа в Интернет. Использование групповой политики здесь является разумным вариантом или, возможно, ограничение исходящего HTTP-доступа на вашем брандмауэре, чтобы отсеять пользователей без настроек автоопределения.
Проверьте доступ с помощью Internet Explorer, отметив “Использовать скрипт автоматической конфигурации” и вставив http://squidproxy.example.local/wpad.dat (конечно, измените FQDN прокси на ваш) в адресное поле, а затем получите доступ к любым веб-сайтам. Удачи, надеюсь, это сработает! Остановитесь здесь и устраняйте неполадки, если это не работает, иначе вы столкнетесь с множеством недовольных пользователей!
Добавьте запись CNAME в DNS, чтобы указать wpad.example.local на squidproxy.example.local
Примечание: Сервер 2008 имеет меру безопасности, которая блокирует wpad, я также видел это на сервере 2003
Чтобы удалить ограничение DNS wpad, но оставить включенный черный список, запустите Regedit и откройте следующее местоположение.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList
Сервер 2008, вероятно, будет иметь записи WPAD и ISATAP. Удалите запись WPAD и перезапустите службу DNS, чтобы она перезагрузила черный список. Затем вы сможете разрешить wpad.example.local
Затем настройте ваш браузер на использование автоматической конфигурации прокси. Все современные веб-браузеры следуют стандарту wpad и будут пытаться найти http://wpad.example.local/wpad.dat для получения информации о конфигурации.
Дополнительную информацию о WPAD можно найти здесь: http://wiki.squid-cache.org/Technology/WPAD/DNS
Проверьте свои журналы squid, чтобы увидеть, что браузеры используют прокси.
Дополнительно: Установка Cyphin Reporter
С прокси, которые мы используем, нам нужна хорошая отчетность. Программы, такие как sarg, mysar и т. д., не подходили в качестве достойных вариантов отчетности для мониторинга интернет-использования пользователей. Cyfin Reporter от Wavecrest зарекомендовал себя как очень способная и интуитивно понятная система отчетности с множеством функций.
Вот как настроить и установить Cyfin Reporter с squid на Debian Squeeze.
Последняя версия Cyfin Reporter на момент написания - версия 8.5. Проверьте следующие места в зависимости от вашей архитектуры, прежде чем загружать и обновлять следующие команды, где это необходимо.
http://downloads.wavecrest.net/release/cyfin/linux32/
http://downloads.wavecrest.net/release/cyfin/linux64/
Таким образом, ваша установка может выглядеть примерно так…
cd /usr/local/src/
wget “http://downloads.wavecrest.net/release/cyfin/linux32/v850/c850linux32.bin.gz”
gunzip c850linux32.bin.gz
chmod +x c850linux32.bin
Примечание: Программа Install Anywhere вмешивается в PS1, поэтому изменение этого для текущей оболочки решает проблему.
export PS1=”>”
./c850linux32.bin
Когда вас спросят о пути установки, введите его как
* ВВЕДИТЕ АБСОЛЮТНЫЙ ПУТЬ ИЛИ НАЖМИТЕ , ЧТОБЫ ПРИНЯТЬ ПО УМОЛЧАНИЮ
: /opt/wavecrest/cyfin*Примите все остальное по умолчанию.
Нам нужно создать initscript для запуска и остановки cyfin по-дебиански.
vi /etc/init.d/cyfin#! /bin/sh
### BEGIN INIT INFO
# Provides: cyfin
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: initscript cyfin reporter
### END INIT INFO
NAME=cyfin
SCRIPTNAME=/etc/init.d/$NAME
# Загрузите настройку VERBOSE и другие переменные rcS
. /lib/init/vars.sh
# Определите функции логирования LSB.
# Зависит от lsb-base (>= 3.2-14), чтобы гарантировать, что этот файл присутствует
# и status_of_proc работает.
. /lib/lsb/init-functions
case "$1" in
start) sh /opt/wavecrest/cyfin/cyfin start
;;
stop) sh /opt/wavecrest/cyfin/cyfin stop
;;
status) sh /opt/wavecrest/cyfin/cyfin start
;;
restart) sh /opt/wavecrest/cyfin/cyfin restart
;;
*) echo "Использование: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 3
;;
esac
:
chmod +x /etc/init.d/cyfin
update-rc.d cyfin defaults
Настройка Cyfin Reporter потребует совершенно нового руководства, поэтому вот основы.
Получите доступ к графическому интерфейсу конфигурации по адресу http://squidproxy.example.local:7999. Логин по умолчанию - “admin” для имени пользователя и пароля.
- Используйте справку в графическом интерфейсе, так как документация очень хороша.
- Проверьте часто задаваемые вопросы на http://www.wavecrest.net/support/cyfin/reporter/faqs.html
- Используйте меню Быстрого старта для настройки основ, которые довольно просты.
- Включите Менеджер данных для импорта файлов журналов и настройте расписание импорта файлов журналов.
- используйте интеграцию с Active Directory, вы можете использовать учетную запись squid, созданную для аутентификации LDAP, чтобы также извлекать информацию из Active Directory.
- Настройте расписание для импорта списков пользователей из Active Directory.
- Вы должны убедиться, что ваши пользователи являются частью группы безопасности или группы рассылки в Active Directory и добавить эти группы в Cyfin Reporter.
- Назначьте менеджера отделов получателем отчетов по электронной почте.
- Настройте учетные записи доступа для сотрудников с разрешением на просмотр журналов.
Если вы используете Cyfin Reporter, вам нужно учитывать дополнительное использование памяти, поэтому убедитесь, что выделили достаточно ресурсов для его работы.
На этом руководство заканчивается. Надеюсь, это поможет.
Get new posts in your inbox
No spam. Unsubscribe anytime.