Squid + NTLM аутентификация в домене по группам

Сегодня мы потратим 5 минут на установку прокси сервера squid с прозрачной, доменной авторизацией в Active Directory и разделением прав доступа по группам из AD и именам пользователей.

Установка squid

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

yum install ntp
ntpdate dc.domain.local

Далее идем в /etc/ntp.conf  — комментируем там все сторонние сервера (строки начинающиеся с server) и вставляем свою строку, с DNS именем вашего AD сервера.

server dc.domain.local

Запускаем службу NTP и включаем автозапуск для нее.

/etc/init.d/ntpd start
chkconfig ntpd on

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

yum install authconfig krb5-workstation samba-common samba-winbind squid

Настройка

Теперь выполняем эту волшебную команду, которая введет данный сервер в домен и сконфигурирует samba и winbind для работы в домене (замените имена сервера и домена на свои).

authconfig --enableshadow --enablemd5 --passalgo=md5 --krb5kdc=dc.domain.local --krb5realm=DOMAIN.LOCAL --smbservers=dc.domain.local --smbworkgroup=DOMAIN --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=DOMAIN.LOCAL --smbidmapuid="16777216-33554431" --smbidmapgid="16777216-33554431" --winbindseparator="+"  --winbindtemplateshell="/bin/false" --enablewinbindusedefaultdomain --disablewinbindoffline --winbindjoin=Administrator --disablewins --disablecache --enablelocauthorize --updateall

Разрешаем доступ пользователю squid к скриптам аутенификации.

usermod -a -G wbpriv squid

На этом все, теперь конфигурация самого squid. Все что нужно сделать так это добавить следующие строки в конфиг /etc/squid/squid.conf сразу после перечисления acl localnet

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

auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Proxy Autentification Required
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
external_acl_type nt_group %LOGIN /usr/lib64/squid/wbinfo_group.pl
acl AUTH proxy_auth REQUIRED

Пример

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

################################# DOMAIN AUTH #######################################
acl MARKETING external nt_group PROXY_MarketingDept
acl PUPKIN proxy_auth v.pupkin

############################## INTERNET ACCESS ######################################
http_access allow MARKETING
http_access deny PUPKIN

Что то не так?

  • Проверьте, указал ли ваш локальный DNS сервер в /etc/resolv.conf
  • Не подключается к проксе? Отключите файрвол (service iptables stop) и проверьте еще раз.
  • Советую добавить squid в автозапуск (chkconfig squid on)

One comment on “Squid + NTLM аутентификация в домене по группам

  1. нужно добавить пользователя сначала
    useradd squid
    а потом разрешать доступ пользователю squid к скриптам аутенификации.

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

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