Файл сервер 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, которая выведет всех доступных пользователей домена.

Вернуться в раздел руководства
Личные инструменты