Назад | Перейти на главную страницу

Аутентификация прокси-сервера Squid - самый безболезненный способ

Хорошо, название говорит само за себя.

Конечная цель - реализовать прокси-аутентификацию для конечных пользователей. Системы пользователей в основном (95%) основаны на окнах, прокси - это Debian Lenny с запущенным squid 2.7.

Я исследовал возможные способы его реализации, сначала используя помощник ntlm_auth, который поставляется с squid2.7 в Lenny, и он терпит неудачу - некоторые пользователи проходят аутентификацию нормально, некоторые нет по какой-то причине. Я не смог найти корелляцию, я даже проверил фактический поток пакетов smb с помощью wirehark безрезультатно - это кажется совершенно случайным. Я пробовал его на разных физических машинах / учетных записях, так что это исключено.

Тогда, кажется, доступны два возможных маршрута. Используя winbind (с samba) и используя ldap + kerberos.

Я лично против использования самбы, потому что, во-первых, это требует, чтобы вы перепрыгнули через определенные препятствия, такие как присоединение к домену и так далее, а во-вторых (и это кранчер) - я не необходимость Вся функциональность, предлагаемая samba, просто нежелательна, чтобы иметь все эти функции, такие как общие ресурсы, подобные Windows, и так далее, на этой машине. Если мне придется прибегнуть к использованию samba, я бы действительно хотел использовать только минимально возможное подмножество функций - ровно столько, чтобы заставить samba ntlm_auth (с winbind) для аутентификации пользователей. Есть ли у кого-нибудь опыт работы с подобными установками?

я прочел этот вопрос (не совсем вопрос: P), и мне очень понравилось то, что я видел, - kerberos кажется возможным решением, а занимаемая площадь не такая уж большая. Вопрос в том, можно ли запустить это в домене версии Windows 2000? А как поддержка браузера?

Я предполагаю, что вы используете сервер Active Directory. Мы сделали нечто подобное, и самый простой способ - использовать помощник ntlm_auth, подобный этому (часть моего squid.conf):

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive on

Вам нужно будет установить Samba и присоединиться к вашему домену Windows. Ваш smb.conf должен будет использовать следующие настройки:

security = ADS
realm = your-dns-domain
password server = your-active-directory-server
winbind enum groups = yes
winbind enum users = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = yes

Я считаю, что также необходимо было изменить /etc/krb5.conf:

[libdefaults]
default_realm = your-dns-domain

[realms]
your-dns-domain = {
kdc = your-ad-server
}

После этого вы сможете присоединиться к своему домену Windows:

net rpc join -S PDC -U Администратор

В конце концов, у вас должна быть установка, использующая единый вход в систему из Windows. И Internet Explorer (на случай, если вы серьезно его используете), а также Firefox знают, как отправлять учетные данные для аутентификации.

Для приложений, которые не знают NTLM, вам также может потребоваться добавить откат к базовой аутентификации. Я этого еще не проверял.

Ссылки: