Задача состоит включить файлсервер на платформе 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 ;)
Всё!
При использовании материалов статьи ссылка на www.allware.info обязательна. |