Файл сервер Samba в домене Win2k
Материал из Gentoo Linux Wiki
Специально для Вадима с Украины
Содержание |
[править] Задача
- Организация файлового сервера
- Авторизация пользователей через домен контроллер
[править] Дано
- Samba 3.0.28
- Контроллер домена на базе Windows 2000/2003 Server
[править] Вступление
Взяться за написание данной статьи меня побудило то, что когда возникла задача о которой написано выше , то статьи описывающей решение данной проблемы полностью я не нашел вот и решил написать такую статью в которой было бы готовое решение.
[править] Необходимые пакеты и флаги в Gentoo
| Code: Необходимые пакеты и флаги |
net-fs/samba ads winbind app-crypt/mit-krb5 |
[править] Основная часть
Первым делом устанавливаем samba. Ниже приведен пример smb.conf:
| Файл: Пример smb.conf |
[global] realm = some-domain.ru workgroup = SOME-DOMAIN # NetBIOS-имя, под которым будет виден сервер остальным машинам сети. netbios name = PLAYGROUND # Комментарий, появляющийся рядом с именем машины в "Сетевом окружении" Windows. server string = Samba Server # Каким машинам разрешено подключаться hosts allow = 192.168. 127. log file = /var/log/samba/log.%m # проверка пароля через AD security = ads # адрес контроллера домена password server = 192.168.0.2 # для репликации всех доменов входящих в траст с вашим доменом allow trusted domains = yes # включаем поддержку шифрованных паролей. encrypt passwords = yes passdb backend = tdbsam unix password sync = Yes # В документации говорится, что с помощью этого параметра # можно повысить производительность Samba-сервера. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # по дефолту слушаются все интерфейсы, здесь можно указать конкретно interfaces = 192.168.0.3 # репликация SID пользователей и групп в UID/GID winbind uid = 10000-20000 winbind gid = 10000-20000 winbind enum groups = yes winbind enum users = yes # Использовать в качестве разделителя + # теперь в Linux пользователи определены как ДОМЕН+имя_пользователя winbind separator = + # Не выступать в качестве WINS-сервера wins support = no # Использовать следующий WINS-сервер wins server = 192.168.0.2 wins proxy = no # Для правильной трансляции символов dos charset = CP866 unix charset = UTF-8 # описываем шары [FILES] comment = share path = /share/FILES public = no writable = yes valid users = DOMAIN\users create mask = 0744 |
Далее проверяем, что winbind будет запускаться вместе с samba:
| Файл: Запуск winbind в /etc/conf.d/samba |
daemon_list="smbd nmbd winbind" |
[править] Настройка Kerberos
Все с конфигом самбы закончили, далее привожу конфиг /etc/krb5.conf
| Файл: /etc/krb5.conf |
[libdefaults]
# Домен
default_realm = SOME-DOMAIN.RU
clockskew = 300
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
[realms]
SOME-DOMAIN.RU = {
# Адрес KDC
kdc = 192.168.0.2
admin_server = 192.168.0.2
kpasswd_server = 192.168.0.2
}
[domain_realm]
.some-domain.ru = SOME-DOMAIN.RU
|
Теперь необходимо получить тикет (ticket) от Kerberos DC:
| Code: Получение тикета |
# kinit <логин_администратора>@SOME-DOMAIN.RU |
В ответ Kerberos должен запросить пароль администратора контроллера домена, после ввода которого должна появиться строка kinit: NOTICE: ticket renewable lifetime is 1 week, что означает, что KDC распознал нас и выдал нам билет сроком на 1 неделю.
Если же попытка получить билет окончилась провалом, то самые основные причины ошибки кроются в том, что есть ошибка в krb5.conf, либо слишком большое расхождение по времени между клиентом и сервером, либо введен неверный логин/пароль. Соответственно, проверяем конфигурационный файл /etc/krb5.conf, синхронизируемся DC и наш сервер и пробуем снова.
[править] Включение в домен
Теперь нужно включить рабочую станцию в домен с помощью команды:
| Code: Включение машины в домен |
# net ads join -w SOME-DOMAIN.RU -U <логин_администратора> Password: <пароль_администратора> Using short domain name -- SOME-DOMAIN Joined 'PLAYGROUND' to realm 'SOME-DOMAIN.RU' |
Если все отработано верно, то компьютер должен появиться в сетевом окружении. Также можно проверить работу набрав команду wbinfo -u, которая выведет всех доступных пользователей домена.
- Вернуться в раздел руководства
