Это старая версия документа!
Содержание
Устанавливаем SAMBA в роли бэкенда для авторизации в Microsoft Active Directory (для SQUID)
Условия:
- ОС: FreeBSD 9
- Исправно работающие службы Active Directory (на базе Server 2003)
- Исправно работающая служба DNS
Задача
- Установить SAMBA только для целей аутентификации пользователей
В случае внедрения кеширующего прокси-сервера Squid с поддержкой авторизации пользователей Active Directory зачастую используется Samba как промежуточный механизм для выполнения функций авторизации. В сети море информации на эту тему, однако решил еще раз написать больше для себя, чтобы не забыть :).
Какую версию самбы ставить?
Перепробовал много разных версий Самбы, однако остановился на версии 3.6, как наиболее стабильно работающей. Каждый сам решает, исходя из функций, которые нужны от самбы и опыта, какую версию Samba ему использовать. Далее, описание приводится для Самбы версии 3.6.7.
Итак, ставим из портов:
# cd /usr/ports/net/samba36 # make config
Выбираю опции:
[*] ADS [*] CUPS [*] WINBIND [*] SYSLOG [*] POPT
Все остальное нам не нужно. Нам не нужна поддержка ACL, AIO или EXP_MODULES. Все, что нам нужно от Самбы - только демон WINBIND, который и будет выполнять аутентификацию пользователей в базе Active Directory.
Начальные настройки
Правим /etc/krb5.conf
Настраиваем конфиг. файл Керберос. Нам нужно очень внимательно отнестись к опциям в этом файле. Опции в этом файле:
- YOUR_DOMAIN - имя домена Active Directory. У меня домен состоит из одной метки (т.н. Single labelled domain), т.е. не имеет точек в имени. Соответственно, если у вас домен состоит из точки, к примеру, TEST.RU, то вы так и должны вписывать это имя. Также стоит обратить внимание, что имя домена во всех секциях написано в верхнем регистре.
- 192.168.111.111 и 192.168.111.114 - это IP адреса моих контроллеров домена. У меня их 2, поэтому в конфиге и две записи.
- 192.168.111.111 - имя основного контроллера домена
- Обращаем внимание, что в секции [domain_realms] имя домена начинается с точки и в нижнем регистре
/etc/krb5.conf
[libdefaults] default_realm = YOUR_DOMAIN forwardable = yes ticket_lifetime = 24h [realms] YOUR_DOMAIN = { kdc = 192.168.111.111 kdc = 192.168.111.114 admin_server = 192.168.111.111 default_domain = YOUR_DOMAIN } [domain_realms] .your_domain = YOUR_DOMAIN [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } [logging] default=SYSLOG:ERR:AUTH
Правим /etc/nsswitch.conf
/etc/nsswitch.conf
group: files winbind hosts: files dns networks: files passwd: files winbind shells: files protocols: files
Все остальные опции у меня закомментированы.
Правим самый главный конфиг. файл /usr/local/etc/smb.conf
/usr/local/etc/smb5.conf
# прописываем основной контроллер домена password server = 192.168.111.111 # следующие параметры должны согласовываться с настройками в вашем домене encrypt passwords = yes client NTLMv2 auth = Yes smb ports = 139 client use spnego = Yes preferred master = no local master = no domain master = no # Один из наиболее важных параметров - тип безопасности security = ADS workgroup = YOUR_DOMAIN realm = YOUR_DOMAIN server string = # Имя, под которым ваш Самба-сервер будет зарегистрирован в Active Directory netbios name = GW2 # У меня сеть 192.168.111.0/24 hosts allow = 192.168.111. 127. idmap backend = tdb idmap uid = 10000-99999 idmap gid = 10000-99999 idmap config YOUR_DOMAIN:backend = rid idmap config YOUR_DOMAIN:range = 10000-99999 winbind separator = + winbind use default domain = yes winbind enum users = yes winbind enum groups = yes winbind nested groups = Yes winbind refresh tickets = yes # запрещаем печать, она не нужна как класс на FreeBSD сервере printcap name = /dev/null load printers = no printing = bsd show add printer wizard = no disable spoolss = yes # включаем протоколирование log level = 0 log file = /var/log/samba/log.%m # max log size = 50 wins support = no # В сети у меня есть WINS сервер wins server = 192.168.111.110 dns proxy = no
Правим /etc/rc.conf
Собственно, нам нужно добавить только 1 опцию: <box 100% blue|/etc/rc.conf> winbindd_enable=«YES» </code>