Я работаю над прокси-сервером Squid, которому необходимо аутентифицировать пользователей в домене Active Directory; это работает отлично, Samba настроена правильно, и Squid аутентифицирует пользователей через ntlm_auth
. Соответствующие строки в squid.conf:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm keep_alive on
acl Authenticated proxy_auth REQUIRED
http_access allow Authenticated
http_access deny all
Теперь мне нужен способ разрешить доступ пользователям, у которых нет учетной записи домена. Я знаю, что могу создать учетную запись "пользователя Интернета" в домене, но это даст доступ, хотя и ограниченный, к ресурсам домена (файловым ресурсам и т. д.); мне нужно что-то, что разрешит только доступ в Интернет.
Идеальным решением было бы использование локальной учетной записи на прокси-сервере, либо учетной записи Linux, либо учетной записи Squid; я знаю, что Squid поддерживает это, но я не могу заставить его использоватьобаАутентификация домена и аутентификация Squid/локальная аутентификация в случае неудачной аутентификации домена.
Можно ли это сделать? Как?
решение1
Теперь мне нужен способ разрешить доступ пользователям, у которых нет учетной записи домена. Можно ли это сделать?
Да.
Как?
Вы можете использовать «внешний» помощник ACL, который позволяет вам реализовать свой собственный механизм. См.Запись в Squid wiki "Множественный источник"для более подробной информации. Этот фрагмент псевдокода взят прямо оттуда:
auth_param basic program /usr/local/bin/my-auth.pl
external_acl_type myAclType %SRC %LOGIN %{Proxy-Authorization} /usr/local/bin/my-acl.pl
acl MyAcl external myAclType
http_access allow MyAcl
... где my-auth.pl — это фрагмент скрипта Perl, который выполняет фактическую аутентификацию и возвращает OK
или ERR
в качестве результата.
решение2
создайте пользователя домена с ограниченными правами (изолированное подразделение). Из Squid создайте LDAP-аутентификацию Squid, которая позволит пользователю использовать Интернет.