Этот документ содержит описание настройки прокси Squid который легко интегрируются с Active Directory для проверки подлинности с использованием Kerberos с LDAP для пользователей, не идентифицирован через Kerberos. Решение находится в добавлнии группы в Active Directory. Это особенно полезно для Windows 7 клиентов, которые уже не поддерживают NTLMv2 без изменения политики локального компьютера. Он может использовать белые и черные для доступа к сайту.
В этом руководстве используются следующие параметры. Вы должны изменить их, если их значения отличаются от ваших:
Предполагается наличие установленной Debian Squeeze, а также базовых навыков администрирования Debian.
Клиентский Internet Explorer должен иметь включенными галочки "Включить интегрированную проверку подлинности Windows" в Internet Options: Дополнительные параметры, а также обнаружение прокси: Auto - Google. Все современные браузеры будут поддерживать автоматическое обнаружение прокси. Firefox и Chrome также поддерживают проверку подлинности Windows.
Установить dnsutils:
apt-get install dnsutils
В Windows DNS сервер добавить новые записи запись для хоста прокси-сервера и обеспечить соответствующие PTR (обратная DNS) запись также создается и работает. Убедитесь, что прокси-сервер с помощью сервера Windows DNS для разрешения имен и обновление /etc/resolv.conf соответственно.
vi /etc/resolv.conf
search example.local nameserver 192.168.0.1 nameserver 192.168.0.10
Ping внутренних и внешних хоста для обеспечения DNS работает.
ping domaincontroller1.example.local -c 4 && ping google.com -c 4
Проверить можно отменить поиск для Windows Server и локальный IP прокси из Windows DNS.
dig -x 192.168.0.1
dig -x 192.168.0.26
Внимание: Если один DNS-поиска не удается не действовать, пока не фиксированный или прокси-аутентификация не удастся.
Установка пакета NTP:
apt-get install ntp
Поскольку Kerberos должен иметь время синхронизируется с контроллерами домена Windows для аутентификации мы настроить прокси для получения времени от них.
vi /etc/ntp.conf
Найдите следующий раздел и обновления NTP-серверы по мере необходимости. Если у вас есть более одного контроллера домена или NTP-сервера, вы можете добавить несколько строк.
# You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example server domaincontroller1.example.local server server2.example.local
Затем перезагрузите и тестирования NTP.
invoke-rc.d ntp restart
ntpq -p
Вы должны увидеть результат, который ссылается на контроллеры домена и других серверов NTP, которые обрабатываются в том порядке, в котором они появляются в конфигурационном файле.
Установить Kerberos:
apt-get install krb5-user libkrb53
Просто примите значения по умолчанию.
Настройка Kerberos.
cp /etc/krb5.conf /etc/krb5.conf.default
cat /dev/null > /etc/krb5.conf
vi /etc/krb5.conf
Отредактируйте файл заменяя переменные (выделено) с областью клиента и сервера.
Внимание: В зависимости от ваших контроллеров домена Windows Версия ОС раскомментируйте соответствующие Windows 200x разделы и закомментируйте другие.
Если у вас есть только один контроллер домена удалить дополнительные "KDC" запись "[сфер]" раздела.
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = no
dns_lookup_realm = no
ticket_lifetime = 24h
default_keytab_name = /etc/squid3/PROXY.keytab
; for Windows 2003
default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; for Windows 2008 with AES
; default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
; default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
; permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
[realms]
EXAMPLE.LOCAL = {
kdc = domaincontroller1.example.local
kdc = server2.example.local
admin_server = domaincontroller1.example.local
default_domain = example.local
}
[domain_realm]
.example.local = EXAMPLE.LOCAL
example.local = EXAMPLE.LOCAL
apt-get install squid3 ldap-utils
Замечание: Squid в конфигурации занимает место после msktutil.
Получить msktutil пакет и установить его.
cd /var/cache/apt/archives/
wget http://fuhm.net/software/msktutil/releases/msktutil_0.4-2_i386.deb
apt-get install libsasl2-modules-gssapi-mit libsasl2-modules
dpkg -i msktutil_0.4-2_i386.deb
cd
Начало сессии Kerberos на сервере, так msktutil можете использовать для создания нашего прокси объекта в Active Directory, который будет использоваться для доступа.
kinit administrator
Введите пароль администратора домена.
Следует затем вернуться без ошибок. Вы можете увидеть, если успешно вошли:
klist
Теперь настроить прокси в AD, запустив msktutil
Внимание: Вы не должны переносить объект OU
msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verbose
Если вы используете Server 2008 нужно добавить "--enctypes 28" в конце команды.
msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verbose --enctypes 28
Установите разрешения на keytab так squid может прочитать его.
chgrp proxy /etc/squid3/PROXY.keytab
chmod g+r /etc/squid3/PROXY.keytab
С управлением Windows Server сброса учетной записи компьютера в AD щелкнув правой кнопкой на SQUIDPROXY компьютер и выберите "Переустановить учетную запись", а затем запустить msktutil следующим образом, чтобы обеспечить keytab обновляется, как ожидалось, и что keytab в настоящее время источников по msktutil от /etc/krb5.conf правильно.
Перезагрузка прокси-первых, чтобы очистить Kerberos билеты порожденных Kinit команду запустить следующее:
msktutil --auto-update --verbose
Если keytab не найден попробуйте добавить "-к / etc/squid3/PROXY.keytab" в команду, чтобы увидеть, работает ли он, а затем до устранения неполадок устранена, или пользователи не смогут аутентифицироваться Squid.
Добавьте следующее в хрон, чтобы он мог автоматически обновляет учетную запись компьютера в Active Directory, когда время истекает (обычно около 30 дней). Я трубу через регистратора, таким образом я вижу какой-либо ошибки в системный журнал, если необходимо. Как заявил msktutil использует по умолчанию файл /etc/krb5.conf для его paramaters так что надо знать о том, что если вы решите делать какие-либо изменения в нем.
SHELL и PATH переменных существуют, чтобы обеспечить хрон работает правильно изменить это, если вы знаете, что делаете.
crontab -e
SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # m h dom mon dow command 00 4 * * * msktutil --auto-update --verbose | logger -t msktutil
Для того, чтобы использовать наши избыточные LDAP доступа и разрешений с помощью групп безопасности в Active Directory, нам необходимо создать и запись с соответствующими разрешениями для поиска активных атрибутов Directory. Squid будет использовать эту учетную запись, чтобы предоставить пользователям доступ.
В Active Directory создать пользователя с именем "Squid Proxy" с [email protected] имя пользователя и пароль отметить вниз и заменить слово "squidpass" ниже с вашим паролем.
Обеспечить следующих условий при создании учетной записи.
По умолчанию счет кальмар не сможет запросить "memberOf" атрибут в AD. Выберите верхний уровень вашего домена Active Directory в активной директории пользователей и компьютеры, щелкните правой кнопкой мыши на нем и выберите Свойства, вкладка Безопасность, добавить кальмары пользователя и дать ему разрешение на чтение (должно происходить по умолчанию) и дать ему следующим образом: "Этот объект и всех дочерних объектов ", перейдя в дополнительные параметры.
Создайте следующие группы безопасности с описанием в Active Directory и добавлять пользователей в соответствующие группы - если пользователь не является частью группы, которую они смогут только для доступа к сайтам в whitelistsites ACL.
Члены Интернет-пользователи не смогут получить доступ к сайтам в blocksites ACL.
Затем мы создали кальмаров и это связано конфигурационных файлов.
Добавить следующую конфигурацию /etc/default/squid3 (этот файл не существует по умолчанию).
vi /etc/default/squid3
KRB5_KTNAME=/etc/squid3/PROXY.keytab export KRB5_KTNAME
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 Configuration File ####### ####### cache manager cache_mgr [email protected] ####### kerberos authentication 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 ####### provide access via ldap for clients not authenticated via kerberos auth_param basic program /usr/lib/squid3/squid_ldap_auth -R \ -b "dc=example,dc=local" \ -D squid@example.local \ -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 authorizations # restricted proxy access logged external_acl_type internet_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \ -b "dc=example,dc=local" \ -D squid@example.local \ -w "squidpass" \ -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \ -h domaincontroller1.example.local # full proxy access no logging external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \ -b "dc=example,dc=local" \ -D squid@example.local \ -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 # full proxy access logged external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \ -b "dc=example,dc=local" \ -D squid@example.local \ -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 for proxy auth and ldap authorizations acl auth proxy_auth REQUIRED # format "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 defaults 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 # 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 http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost ####### enforce auth: order of rules is important for authorization levels 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 ####### logging # don't log whitelistsites, FullAccessNoLog access_log /var/log/squid3/access.log squid !whitelistsites !FullAccessNoLog ####### squid defaults 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.dat
AddType application/x-ns-proxy-autoconfig .dat
Создание wpad.dat, используемый веб-браузеров для конфигурации:
vi /var/www/wpad.dat
Изменение строку, начинающуюся с $ прокси FQDN прокси-сервера (выделенный текст).
function FindProxyForURL(url, host)
{
$proxy = "PROXY squidproxy.example.local:3128";
// URLs within this network are accessed direct
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";}
//Return proxy for EVERYTHING else
else return $proxy;
}
Перезагрузите Apache2:
invoke-rc.d apache2 restart
Внимание: Как только вы добавите следующую запись DNS прокси стартует.
Тестовый доступ с Internet Explorer, поставив "Использовать сценарий автоматической настройки" и вставьте http://squidproxy.example.local/wpad.dat (изменение прокси FQDN вашему, конечно) в поле адреса, а затем получить доступ к любым веб-сайтов. Удачи вам, я надеюсь, что это работает! Остановитесь здесь и устранения неполадок, если она не работает, или же вы в конечном итоге с большим количеством сердится пользователей!
Добавить CNAME запись в DNS, чтобы указать на wpad.example.local squidproxy.example.local
Примечание: Server 2008 поставляется с мерой безопасности, которая блокирует WPAD, я также видел его на сервер 2003
Чтобы снять ограничение WPAD DNS, но оставить черный список включена, запустите редактор реестра и откройте следующую локацию.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList
Server 2008, вероятно, будет иметь элементы WPAD и ISATAP. Удалите запись WPAD и перезапустить службу DNS для того, чтобы перезагрузить черный список. Затем вы должны быть в состоянии решить wpad.example.local
Затем установите браузер на использование прокси конфигурации авто. Все современные браузеры следуют WPAD стандарт и будет предпринята попытка поиска http://wpad.example.local/wpad.dat для их конфигурации.
Более подробную информацию о WPAD можно найти здесь: http://wiki.squid-cache.org/Technology/WPAD/DNS
Проверьте журналы кальмара видеть, что браузеры используют прокси-сервера.
С прокси мы работаем нам нужны достойные отчетности. Такие программы, как SARG, mysar т.д. не разрезая его, как достойного варианта отчетности для мониторинга использования интернет-пользователь. Cyfin Reporter по Wavecrest оказался очень способным и интуитивно понятный системы отчетности с большим количеством функций.
Это, как настроить и установить Cyfin Репортер с кальмарами на Squeeze Debian.
Последние Cyfin Reporter версия на момент написания это версия 8.5. Проверьте следующие места в зависимости от вашей архитектуры, прежде чем загружать и обновлять следующие команды в случае необходимости.
http://downloads.wavecrest.net/release/cyfin/linux32/Так что ваша установка может выглядеть примерно так ...
cd /usr/local/src/
wget "http://downloads.wavecrest.net/release/cyfin/linux32/v850/c850linux32.bin.gz"
gunzip c850linux32.bin.gz
chmod +x c850linux32.bin
Установите программу с PS1, поэтому изменение этого для текущей оболочки решает эту проблему.
export PS1=">"
./c850linux32.bin
В ответ на запрос об установке пути зарегистрировать его в качестве
ENTER AN ABSOLUTE PATH, OR PRESSTO ACCEPT THE DEFAULT : /opt/wavecrest/cyfin
Примите все остальное по умолчанию.
Нам нужно создать Сценарий для запуска и остановки cyfin Debian.
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: cyfin reporter initscript
### END INIT INFO
NAME=cyfin
SCRIPTNAME=/etc/init.d/$NAME
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /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 "Usage: $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. Вход в систему по умолчанию является "администратор" в качестве имени пользователя и пароля.
Если вы используете Cyfin Reporter вам необходимо учитывать для дополнительного использования памяти, так что не забудьте выделить достаточно ресурсов для его запуска.
отделка дачного дома своими руками