Включаем Linux Slackware 10.2 в домен Windows 2003
Задача состоит включить файлсервер на платформе Linux Slackware 10.2 в домен windows 2003 и настроить авторизацию на сетевых ресурсах с использованимем учётных записей Windows Domain.
Что мы имеем:
- Slackware 10.2 без X сервера.
- Windows 2003 AD.
Что нам потребуется:
- hemidal-0.7 (Kerberos)
- OpenLDAP-2.3.20
- Linux-PAM-0.99.3.0
- Samba-3.0.21c
Как известно, Slackware упорно в стандартной сборке не имеет поддержку PAM. Давайте добавим. Если Slackware установлено без X сервера, то нам понадобится ряд библиотек для сборки pam:
- libICE.so.6
- libSM.so.6
- libX11.so.6>
- libXext.so.6
- libXt.so.6
Найдём их где-нибудь ;) и скопируем их в /lib и сделаем "ldconfig".
Далее можно собирать pam:
/usr/local/src/Linux-PAM-0.99.3.0# ./configure --prefix=/usr /usr/local/src/Linux-PAM-0.99.3.0# make /usr/local/src/Linux-PAM-0.99.3.0# make install
Далее соберём "hemidal":
/usr/local/src/hemidal-0.7# ./configure --prefix=/usr /usr/local/src/hemidal-0.7# make /usr/local/src/hemidal-0.7# make install
Итак поддержка Kerberos есть, далее можно собирать OpenLDAP:
/usr/local/src/OpenLDAP-2.3.20# ./configure --prefix=/usr --disable-slapd --disable-slurpd /usr/local/src/OpenLDAP-2.3.20# make depend /usr/local/src/OpenLDAP-2.3.20# make /usr/local/src/OpenLDAP-2.3.20# make install
Всё что нужно для включения самбы в домен собрано, можно собирать samba:
/usr/local/src/Samba-3.0.21c/source/# ./configure --prefix=/usr/local/samba --with-ldap --with-ads --with-krb5 --with-pam --with-winbind /usr/local/src/Samba-3.0.21c/source/# make && make install
Всё! Всё что нужно собрано, можно переходить к конфигам:
Убедимся что в "/etc/resolve.conf" имеется строчка:
nameserver 192.168.1.1 #(адрес dns)
Далее создаём "/etc/krb5.conf" следующего содержания:
[libdefaults]
default_realm = DOMAIN.RU
[realms]
DOMAIN.RU = {
kdc = controller.domain.ru
}
[domain_realms]
.controller.domain.ru = DOMAIN.RU
"/usr/local/samba/lib/smb.conf" (создаём, если нету).
[global] realm = DOMAIN.RU workgroup=DOMAIN password server = controller.domain.ru security = ADS encrypt passwords = yes winbind separator = + idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum users=yes winbind enum groups=yes [public] comment = Public read only = no path = /public #публичная для домена папка
Далее, по какой то причине самба при установке не скидывает библиотеки "libnss_winbind.so" и "pam_winbind.so" в папки с расшареными либами. Находим их в откомпилированом дистрибе samba ("./source/nsswitch") и копируем "pam_winbind.so" в "/lib/security/", "libnss_winbind.so" в "/lib/". Далее делаем "ldconfig".
Создаём каталог "/etc/pam.d" куда помещаем файл "samba" следующего содержания:
auth required /lib/security/pam_winbind.so account required /lib/security/pam_winbind.so
Находим файл "/etc/nsswitch.conf" и добавляем туда следующие строчки:
passwd: compat winbind shadow: compat group: compat winbind
Далее включаем машину в домен:
/usr/local/samba/bin/net join -U Administrator (указываем имя пользователя домена который имеет право на подключения новых членов).
Проверим:
#kinit Administrator@DOMAIN.RU
Если не выдаст ошибку, то всё прошло успешно. note: если выдаст ошибку time, то необходимо синхронизировать время с контроллером домена:
#ntpdate controller.domain.ru
Далее можно запускать самбу:
./usr/local/samba/sbin/smbd -D ./usr/local/samba/sbin/nmbd -D ./usr/local/samba/sbin/winbindd
Проверяем:
#getent group - должен вывестись список групп и включённых в них пользователей (в том числе и домена)
Далее раздаём права на шару:
chown -R DOMAIN+user.DOMAIN+group /public chmod -R 770 /public
Полные права на доступ к шаре будут иметь все члены группы DOMAIN+group и владелец DOMAIN+user учётная запись которого принадлежит домену. Остальные получат access denided. Если в домене есть группы/пользователи с пробелами, то права задаём через uid/gid или через mc ;)
Всё!