Проверка подлинности прокси с открытым исходным кодом с использованием нескольких LDAP

Я работаю над созданием новых веб-прокси на моей работе. Сначала мы планировали покупать прокси Blue Coat, но наступил экономический спад, и мы их больше не покупаем...

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

Возможно ли это с помощью программного обеспечения с открытым исходным кодом, такого как Squid? Мне очень нравится Pfsense, потому что интерфейс очень простой и красивый, возможно ли сделать такое с ним?

Заранее спасибо за вашу помощь,

Antoine

3 ответа

Решение

Вы холодным образом заставляете Squid проходить аутентификацию на одном сервере OpenLDAP, выступающем в качестве прокси для нескольких внутренних каталогов. Из slapd-meta (5):

NAME slapd-meta - бэкэнд метакаталога

ОПИСАНИЕ /etc/ldap/slapd.conf

ОПИСАНИЕ Мета-бэкэнд для slapd(8) выполняет базовое проксирование LDAP по отношению к набору удаленных серверов LDAP, называемых "целями". Информация, содержащаяся на этих серверах, может быть представлена ​​как принадлежащая одному информационному дереву каталога (DIT).

Это будет работать, даже если иерархии DN накладываются между обеими группами, написав несколько правил массирования - я полагаю, что это так, потому что вы бы вместо этого использовали псевдонимы и делегирование.

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

В моем ответе я предполагаю, что вы читали о протоколе аутентификации Squid, знакомы с тем, как настроить помощника аутентификации LDAP, и планируете запускать Squid в какой-либо операционной системе Unix. Кроме того, первые два ответа помогают вам выбрать разные серверы LDAP на основе имени пользователя, а не IP-подсети (вы упомянули "подсеть", но "подмножество" ITYM - верно?).

  1. Используйте простой скрипт (язык не имеет значения, используйте ваш любимый), чтобы переслать запрос на разные серверы LDAP в зависимости от имени пользователя. Опытный администратор Unix должен начать работу в течение 30 минут, это не имеет большого значения.
  2. Используйте один сервер LDAP, который возвращает ссылки LDAP на основе DN пользователя.

Если вы действительно хотите изменить серверы LDAP на основе IP-подсети, все станет немного уродливым, так как протокол аутентификации Squid передает пары имя пользователя / пароль только помощникам аутентификации:

  1. Настройте один сервер Squid и пусть он прослушивает только локальный хост. Этот экземпляр Squid будет выполнять всю работу по кешированию.
  2. Для каждой подсети настройте другой экземпляр Squid без локального кэша и настройте соответствующий сервер LDAP. Используйте разные порты для каждого экземпляра Squid. Эти экземпляры Squid направляют все запросы в кеширующий, определенный на шаге 1.
  3. В зависимости от того, как вы настраиваете параметры прокси в браузерах своих пользователей, вам придется использовать либо представления DNS, либо правила перенаправления в вашем веб-сервере.

Вы можете создать свой собственный помощник по аутентификации для squid - http://www.visolve.com/squid/squid30/externalsupport.php

http://www.cyberciti.biz/tips/howto-configure-squid-ldap-authentication.html

Другие вопросы по тегам