Explicit Proxy c авторизацией по AD Group Interception Proxy с авторизацией по MAC / Хабр

Настроить squid и проверить работоспособность без Kerberos с доступом по IP, либо basic-аутентификация.

Данный пункт был реализован согласно приведенных в заголовке ссылок – ранее. Но есть некоторые нюансы конфигурирования сетевой подсистемы для корректной работы с Kerberos. Необходимо обязательно правильно настроить файлы /etc/hosts, /etc/hostname, /etc/resolv.conf, ну и конечно /etc/network/interfaces. (приведенные настройки рассмотрены для Debian/Ubuntu, но если учесть особенности другого дистрибутива, то общая схема настройки будет вполне пригодна)

squid ~ # cat /etc/hosts
10.0.0.10       squid.DOMAIN.local    squid
127.0.0.1       localhost
# для Kerberos советуют указывать именно такой порядок
# то есть первой строкой именно 10.0.0.10 (внешний IP, не loopback)
squid ~ # cat /etc/hostname
squid
squid ~ # cat /etc/resolv.conf
domain DOMAIN.local
search DOMAIN.local
nameserver 10.0.0.4
squid ~ # cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 10.0.0.10
        netmask 255.255.0.0

1. Предварительная настройка DNS и контроллера домена.

Для корректной работы Kerberos необходимо иметь корректные прямые (A) записи и соответствующие обратные (PTR) записи для сервера squid.

2. Настройка синхронизации времени

Настройку синхронизации времени я описывал в статье о NFS в Windows AD. Здесь лишь кратко скажу, что я использую для этих целей NTP-сервер (пакет ntp) и следующий конфиг:

root@nfsd:~# cat /etc/ntp.conf
server dc.domain.local
restrict default ignore
restrict dc.domain.local
restrict 127.0.0.1 nomodify notrap

3. Настроить и проверить Kerberos на идентификацию пользователя без ключевого файла krb5.keytab.

Данный шаг так же описан в статье о NFS в Windows AD, здесь он абсолютно идентичен.

4. Создать ключевой файл krb5.keytab на KDC (контроллер домена Windows 2008 R2)

Далее, необходимо создать кейтаб-файл  на контроллере домена (файл ключей, который будет использоваться для взаимодействия с Active Directory). Вся необходимая теория опять же есть в статье о NFS – создание keytab. Для squid команда создания keytab файла будет выглядеть так:

Похожее:  Yellow Leaf - Статьи - SOCKS-прокси с авторизацией по логину и паролю

5.  Настроить и проверить работу Kerberos для авторизации через krb5.keytab и корректность созданного keytab-файла.

Допустим, лежит наш keytab в /etc/squid3/squid.keytab, давайте проверим корректность работы данного кейтаба с текущей ОС:

Настройка squid на проверку подлинности через Kerberos в домене Windows 2008 R2.

Для того чтобы сквид знал, какой кейтаб использовать, ему нужно указать, где он лежит. Для этого нужно создать и заполнить файл /etc/default/squid3 следующим содержимым (задать переменную, хранящую путь к кейтаб файлу, которую читает сквид):

squid ~ # cat /etc/default/squid3
KRB5_KTNAME=/etc/squid3/squid.keytab
export KRB5_KTNAME

Так же, необходимо вsquid.conf настроить схему аутентификации, для этого нужно добавить следующие строки:

Настроить веб-браузеры на Kerberos аутентификацию в squid.

Собственно, настройка браузеров для SQUID заключается в использовании FQDN-имени в адресе прокси-сервера вместо IP-адреса. То есть делаем все по инструкции Настройка адреса прокси через GPO в Windows Server 2008 R2, но адрес прокси указываем не 10.0.0.10, а squid.domain.local.

После попытки доступа мы видим в логе access.log заветные строки:

Digest – метод аутентификации в squid

Этот метод более защищен, нежели basic-аутентификация, т.к. использует MD5-шифрование для отправки пароля через сеть. Схема

работы

взаимодействия аналогична basic, за тем лишь исключением, что на 2-ом и последующих шагах в ответ сервера и ответы клиента в поля аутентификации добавляются некоторые дополнительные параметры и случайные значения, которые используются для шифрования пароля.

утилита htdigest

, которая находится в

пакете  apache2-utils

. Используется хелпер

/usr/lib/squid3/digest_pw_auth

Ntlm – метод аутентификации в squid

Про протокол NTLM и его особенности и недостатки я рассказывал в первой статье о samba. В данной теме особенно делать упор на этот протокол не буду, ибо – небезопасен. Для проверки подлинности используется хелпер /usr/lib/squid3/ntlm_auth. Данный вид аутентификации работает в браузерах IE, Mozilla, Opera, Crome.

Выпуск организацией собственной программы с проксированием ресурсов[править]

Использование EZproxy (и аналогов) – хотя и возможный вариант, но не перспективный из-за проблем с совместимостью со сторонними сайтами. Поэтому лучше использовать второй подход, предварительно устранив оба недостатка.

Решение здесь достаточно очевидное: надо взять один из браузеров с открытым исходным кодом и чуть-чуть переписать его, зашив в его настройки прокси-сервер организации.

Дополнительно

Для просмотра статистики написано большое количество различного софта log-analysis.

Наиболее известные SARG, ScreenSquid, lightsquid, SquidAnalyzer.

Механизмы реализации проксирования[править]

Получили распространения два механизма проскирования.

Настройка explicit proxy

Дефолтная конфигурация предусматривает работу «непрозрачного» прокси с авторизацией на основе ip адресов – разрешен выход в Интернет всем компьютерам локальной сети.Нас же интересует аутентификация в домене Active Directory с авторизацией на основе доменных групп.

Для аутентификации в AD будем использовать протокол Kerberos. В этом нам поможет хелпер negotiate_kerberos_auth. Для авторизации по группам будем использовать хелпер ext_kerberos_ldap_group_acl.Для начала устанавливаем Kerberos клиент:

# yum install krb5-workstation

Настройка interception proxy

С настройкой прокси сервера для доменных пользователей разобрались, с помощью групповых политик теперь задаем на терминальных серверах адрес прокси сервера и пользуемся. Но для компьютеров, не входящих в домен, и для разных мобильных устройств групповые политики не работают, а прописывать каждый раз вручную настройки прокси не удобно.

И даже если прописать, то, например, придя домой с устройством, выхода в Интернет с него не будет. Поэтому нужно дополнительно настроить «прозрачный» прокси сервер. Можно выделить диапазон ip адресов, и для него создавать правила в Squid’е, но удобнее (для меня) использовать MAC адреса устройств.

Для этого создаем списки mac адресов (это будет аналог доменных групп, которые мы создавали ранее для Explicit Proxy):

/etc/squid/ allowed-mac.txt – сюда входят устройства со стандартным доступом/etc/squid/allowed-mac-extended.txt – сюда входят устройства с расширенным доступом/etc/squid/allowed-mac-full-access.txt – сюда входят устройства с полным доступом

Настройка internet explorer через gpo

Желательно на всех машинах локальной сети обновить Internet Explorer до 7 версии, ибо с IE 6 доменная проверка подлинности не будет работать. Об этом Mictosoft официально . Настройка параметров прокси сервера задается в объекте групповой политики в разделе Конфигурация пользователя – Политики – Конфигурация Windows – Настройка Internet Explorer – Подключение – Параметры прокси-сервера:Параметры прокси-сервера IE в объекте GPO Т.к. данная настройка расположена в конфигурации пользователя, то и применяться будет к пользователям, расположенным в текущем подразделении OU, к которому будет применен Объект групповой политики.

Недостатки web-прокси[править]

Основные проблемы связаны с тем, что ни удаленный ресурс ни браузер не подозревают о проксировании, а сам прокси-сервер фактически использует хакерский метод. В начале 2000-ых годов, когда JavaScript активно не применялся в целях навигации и управления интерфейсом, этот метод не доставлял существенных проблем.

Были проверены несколько электронных библиотек, из которых КиберЛенинка, IPRBooks, Национальная электронная библиотека, ELiS WebApps, SCOPUS и даже Google оказались несовместимы с Cisco WebVPN. В Лань, Книгафонд, Университетская библиотека онлайн книги напротив, открыть удалось.

Недостатки собственного браузера[править]

  1. Необходимо поддерживать одну или несколько (если браузер выпускается не только под Windows) программ.
  2. Если используется не системный браузер, его следует обновлять для устранения проблем безопасности.

Плюсы web-прокси[править]

Работает прямо в браузере, пользователю на своей стороне не требуется ничего устанавливать или настраивать.

Предварительная настройка

У нас есть два Ethernet интерфейса: eth0 – смотрит в локальную сеть, eth1 – смотрит в глобальную сеть. В случае, который будет описан ниже терминальные сервера и устройства расположены в сети 192.168.0.0/24. Прокси сервер имеет адрес 192.168.0.133.

Приводим файл настроек /etc/sysconfig/network-scripts/ifcfg-eth0 к такому виду (значения подставляем свои):

В директивах DOMAIN и SEARCH нужно указать свое имя домена.Приводим файл настроек /etc/sysconfig/network-scripts/eth1 к такому виду (значения подставляем свои):

Задаем имя хоста:

# hostnamectl set-hostname SRV-M29-PRX-03

Прописываем на DNS сервере A запись для прокси сервера, чтобы он резолвился из локальной сети.

Если локальная сеть состоит из подсетей, то чтобы они могли взаимодействовать между собой на устройствах с прокси сервером в качестве шлюза, нужно настроить маршруты и включить форвардинг.

Создаем файл /etc/sysconfig/network-scripts/route-eth0 и добавляем в него требуемые маршруты, например:

192.168.0.0/24 via 192.168.0.78 dev eth0192.168.2.0/24 via 192.168.0.78 dev eth0192.168.3.0/24 via 192.168.0.78 dev eth010.254.253.0/24 via 192.168.0.78 dev eth0

Добавляем в /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Перезагружаемся.Настраиваем фаервол. Squid 4.X.XX работает и с firewalld и с iptables. Кому как удобнее. В этой статье используем iptables.Останавливаем и удаляем firewalld:

# systemctl stop firewalld
# yum remove firewalld.noarch

Устанавливаем и запускаем iptables:

# yum install iptables-services
# systemctl enable iptables
# systemctl enable ip6tables
# systemctl start iptables
# systemctl start ip6tables

Разрешаем SSH и ICMP только с локальной сети:

# iptables -R INPUT 4 -i eth0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# iptables -R INPUT 2 -i eth0 -p icmp -j ACCEPT

Пример браузера организации[править]

Чтобы на практике продемонстрировать возможность создания браузера организации, реализован браузер для Пермского государственного национального исследовательского университета. Браузер отображает сайты и реализацию встраивания электронной библиотеки ELiS с помощью технологии ELiS WebApps.

С точки зрения преподавателей и деканатов браузер решает важную задачу: проксирует запросы из интернета в систему управления вузом (ЭИОС). В этой системе размещаются УМК, ведется успеваемость по больно-рейтинговой системе и решаются другие задачи преподавателей и административных работников, поэтому возможность подключения к ней из интернета является актуальной задачей для многих.

Домашней страницей браузера является список электронных библиотек:

Для поиска применяется Google Custom Search Engine, который выступает бесплатной и доступной заменой федеративного поиска. Этот поисковый движок настроен на поиск: в электронной библиотеке университета, PDF-файлов на сайтах вуза и в некоторых легальных библиотеках с доступным контентом.

Конечно, такой поисковый механизм не участвует в поиске по внешним ЭБС, но, зато, способен находить статьи, размещенные на многочисленных сайтах вуза.

Разработка собственного браузера позволяет перехватывать события скачивания файлов и учитывать скачивания в своей статистике.

Если же собственную систему учета статистики разрабатывать не хочется, можно на домашней странице установить любой из онлайн-счетчиков посетителей и, по крайней мере, фиксировать число запусков браузера.

Принцип работы прокси-сервера[править]

Идея очень простая: пользователь получит доступ к сайтам если они будут исходить с IP-адресов организации. Значит надо все запросы от пользователя, находящегося у себя дома, отправлять не напрямую на сайт ресурса, а через организацию.

ПО, которое на стороне организации обеспечивает передачу запросов на внешние сайты, называется прокси-сервером.

Установка squid

Подготовительная часть закончилась. Теперь приступаем к установке Squid.В официальных репозиториях CentOS есть только Squid 3.5. Мы же будем ставить Squid 4.0.23.Поэтому качаем сам Squid:

Функционал браузера организации[править]

Если прокси-сервер авторизует пользователя из централизованной (для организации) системы авторизации, то эти учетные данные могут подходить и к другим сайтам организации, таким как электронная информационная образовательная среда (ЭИОС), сайт расписания занятий и т.д. и в браузер можно добавить эти сайты и автоматически авторизовать пользователя при первом обращении из программы.

Тогда продвигать браузер можно не просто как систему доступа к удаленным библиотекам, но делать упор на других функциональных возможностях.

В конечном счете, проект браузера может перерасти в сложную программу, решающую большое количество задач вуза.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *