Этот документ описывает интеграцию файл-сервера Samba в Windows 2003 Active Directory. К сожалению, Samba не может функционировать как контроллер домена Windows 2003. Однако на Samba можно поднять хороший файл- или принт-сервер.
Этот документ, основан на моем собственном опыте и советах других людей. В случае, если Вы обнаружите в нем ошибку, пожалуйста свяжитесь со мной.
Требования:
Samba версии 3.х.х собранная с опциями:
--with-ldap
--with-ads
--with-krb5
--with-pam
--with-winbind
heimdal >0.6.3(утилиты\библиотеки kerberos)
OpenLDAP >2.2.23
Сервер Windows 2003 sp1 с Active Directory :)
Все испытывалось на Suse Linux 9.1 и Windows 2003 Standart Server SP1
Условимся что:
192.168.0.1 – server.domain.com – это сервер Windows 2003
192.168.0.10 – client.domain.com – клиентская машина Linux с Samba
Настройка разрешения имен
Надеюсь что на вашем контроллере домена поднят DNS с зонами прямого и обратного просмотра.
Если поднят, то в файле /etc/resolv.conf прописываем следующее:
search domain.com
domain domain.com
nameserver 192.168.0.1
Если же в сети нет DNS(что вряд ли) сервера - можно воспользоваться файлами hosts на обеих машинах.
На машине с Samba в файл /etc/hosts добавляем:
192.168.0.1 server.domain.com server
192.168.0.10 client.domain.com client
На контроллере домена в файле %Systemroot%\System32\drivers\etc\hosts пишем следующее:
192.168.0.1 server server.domain.com
192.168.0.10 client client.domain.com
%Systemroot% - папка WINNT или WINDOWS(на системном диске)
Настройка Kerberos.
Часть этого документа использует DOMAIN.COM прописными буквами. Удостоверьтесь, что в вашем конфиге krb5.conf правильный регистр!
Приводим файл krb5.conf в соответствие с настройками вашей сети(не забывайте про регистр!).
[libdefaults]
default_realm = DOMAIN.COM
[realms]
SERVER.DOMAIN.COM = {
kdc = server.domain.com
}
[domain_realms]
.domain.com = DOMAIN.COM
После этого выполняем команду(необходимо знать пароль администратора КД):
pfil:/etc/samba # kinit Admin@DOMAIN.COM
Admin@DOMAIN.COM 's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
pfil:/etc/samba #
Возможные проблемы на этом этапе:
pfil:/etc/samba # kinit Admin@DOMAIN.COM
Admin@DOMAIN.COM 's Password:
kinit: krb5_get_init_creds: Client (Admin@DOMAIN.COM) unknown
pfil:/etc/samba #
Надо проверить правильность ввода логина\пароль админа.
pfil:/etc/samba # kinit Admin@DOMAIN.COM
Admin@DOMAIN.COM 's Password:
kinit: krb5_get_init_creds: unable to reach any KDC in realm (DOMAIN.COM)
pfil:/etc/samba #
Проверьте правильность настроек DNS и конфига krb5.conf
pfil:/etc/samba # kinit Admin@DOMAIN.COM
Admin@DOMAIN.COM 's Password:
kinit: krb5_get_init_creds: Clock skew too great
pfil:/etc/samba #
Рассинхронизация времени на КД и клиенте – выполните команду net time set(в linux) Желательно выполнять данную команду раз в неделю(можно через cron).
Настройка Samba и Winbind:
Пожалуй, самая легкая часть настройки.
Выкладываю уже готовый к эксплуатации конфиг (с комментариями к тому, на что надо обратить внимание):
[global]
log file = /var/log/samba/log.%m
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
null passwords = yes #Разрешить пустые пароли
interfaces = 192.168.0.10/255.255.255.0 #На каком интерфейсе работать
hosts allow = 192.168.0. 127.0.0.1 #Хостам из каких сетей разрешено
encrypt passwords = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
auth methods = winbind
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
name resolve order = hosts wins bcast lmhosts
case sensitive = no
dns proxy = no
netbios name = client #NetBIOS имя машины
server string = My Linux
password server = server.domain.com #dns имя сервера win 2003
realm = DOMAIN.COM #Имя рилма
client use spnego = yes
client signing = yes
local master = no
domain master = no
preferred master = no
workgroup = DOMAIN #Укороченное имя домена
debug level = 2
security = ads
dos charset = 866
unix charset = UTF-8 #Кодировка ФС –UTF-8 или KOI8-R
max log size = 50
os level = 0
wins server = 192.168.0.1 #Укажите здесь WINS сервер, если он есть
[upload]
comment = Upload
path = /srv/smb/upload
browseable = yes
writeable = yes
directory mask = 0777
create mask = 0666
valid users = @”Администраторы домена”, DOMAIN\Пользователь
Входим в Active Directory
Убедившись, что на контроллере домена нет машин с именем, которое мы использовали в конфиге Samba. Выполняем команду:
net ads join -U Admin
Настройка PAM и Winbind
Перед выполнением нижеперечисленных действий рекомендуется сделать бэкап всех редактируемых файлов.
Файл /etc/pam.d/samba не требует редактирования, т.к. он уже содержит необходимое.
Редактируем /etc/pam.d/login
#%PAM-1.0
auth required pam_securetty.so
auth sufficient pam_winbind.so
auth sufficient pam_unix.so use_first_pass
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account sufficient pam_winbind.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session optional pam_console.so
Теперь на машину с linux можно заходить используя доменные аккаунты(DOMAIN\User).
Поддержка SSH
Для того, чтобы можно было использовать доменные аккаунты для входа через ssh в файле /etc/pam.d/sshd делаем изменения аналогично /etc/pam.d/login.
Заключение
Ну вот и все. Теперь можно запустить Samba:
/etc/init.d/smb start
/etc/init.d/nmb start
/etc/init.d/winbind start
В случае неполадок смотрим: /var/log/samba
Последние комментарии
10 лет 22 недели назад
10 лет 41 неделя назад
10 лет 51 неделя назад
10 лет 51 неделя назад
11 лет 40 недель назад
11 лет 40 недель назад
11 лет 41 неделя назад
11 лет 41 неделя назад
11 лет 42 недели назад
11 лет 43 недели назад