Сегодня мы потратим 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)
нужно добавить пользователя сначала
useradd squid
а потом разрешать доступ пользователю squid к скриптам аутенификации.