Подключаем сервер с Samba к домену Windows (1 часть).

В сегодняшней статье я опишу и продемонстрирую процесс подключения Samba к доменной сети Windows в качестве рядового участника.

Поскольку этот сайт посвящен Ubuntu, я пропущу все, что касается настройки контроллера домена и подключения прочих компьютеров. Скажу лишь, что доменная сеть подразумевает использование машин с Windows, одна или несколько из которых будут считаться контроллерами. Контроллер служит центром авторизации, хранит учетные записи пользователей других компьютеров и позволяет ими управлять. Локальные учетные записи при этом хотя и не исключаются как таковые, но становятся необязательными. Кроме того, контроллер предоставляет ряд других возможностей по управлению прочими компьютерами.

Цикл статей о Samba.

  1. Установка и простая настройка.
  2. Управление доступом.
  3. Графические и Web-интерфейсы.
  4. Подключаем сервер с Samba к домену Windows (1 часть).
  5. Подключаем сервер с Samba к домену Windows (2 часть).
  6. Подключаем сервер с Samba к домену Windows (3 часть): управление пользователями.
  7. Samba в роли контроллера домена Active Directory.

Для демонстрации я буду использовать виртуальные машины, подключенные к единой внутренней сети, тоже виртуальной.

Устанавливаем пакеты.

Так как Linux и Windows хранят данные об учетных записях и группах по-разному, нам понадобится Winbind, чтобы пользователи разных ОС могли благополучно пройти аутентификацию. Нам также понадобится Kerberos (клиентская часть). Kerberos представляет собой сетевой протокол, необходимый для авторизации клиента и сервера и использующийся в самых разных ОС.

Установим несколько пакетов:

sudo apt install krb5-user winbind samba libnss-winbind libpam-winbind

В процессе установки Kerberos задаст несколько вопросов. Для начала он попросит указать область. Впишите сюда имя домена вместе с доменной зоной (те, которые вы указывали при настройке контроллера), обязательно в верхнем регистре.

Далее нужно указать сервер Kerberos. Смело вписывайте сюда полное имя контроллера домена, поскольку он по совместительству является и указанным сервером.

Затем нужно ввести имя управляющего хоста области. Если контроллер домена у вас один, просто впишите его имя еще раз. После этого установка необходимых пакетов будет завершена.

Обязательным условием успешной настройки является одинаковое время на контроллере и подключаемом компьютере. Можно проверить и настроить время вручную, но гораздо лучше позаботиться о том, чтобы наш компьютер синхронизировал время с контроллером автоматически. Для этого установим еще один пакет:

sudo apt install ntp

Теперь откройте /etc/ntp.conf с правами суперпользователя и после строки #Specify one or more ntp servers закомментируйте имеющиеся серверы и впишите имя контроллера вместе с доменной зоной.

Связываемся с контроллером.

Если вы правильно настроили DHCP на контроллере домена, Ubuntu будет автоматически получать IP и подключаться к сети. Загляните в /etc/resolv.conf и убедитесь, что напротив параметра nameserver стоит IP нашего контроллера, а напротив параметра search — имя домена.

Если у вас, как и у меня, напротив nameserver указан адрес 127.0.1.1, не пытайтесь изменить его напрямую, все ваши правки исчезнут после первой же перезагрузки.

Рекомендованный для подобных исправлений /etc/resolvconf/resolv.conf.d/… править тоже не нужно, поскольку проблема в другом. Вместо этого откройте файл /etc/NetworkManager/NetworkManager.conf и закомментируйте строку dns=dnsmasq. Перезапустите Network Manager:

sudo systemctl restart network-manager

Содержимое /etc/resolv.conf должно измениться на правильное. Чтобы убедиться, что связь налажена, можно попробовать пропинговать контроллер:

ping -c 5 имя_контроллера.имя_домена

Если на каждый отправленный запрос был получен ответ, значит, все в порядке.

Теперь, когда мы убедились, что связь установлена, перезапустим ntp, чтобы одновременно применить внесенные ранее изменения и синхронизировать время с контроллером:

sudo systemctl restart ntp

В старых руководствах говорится о необходимости отредактировать конфигурационный файл Kerberos /etc/krb5.conf. Сейчас этот шаг в большинстве случаев не нужен, поскольку необходимые параметры мы уже ввели на этапе установки.

Пробуем запросить тикет у Kerberos на контроллере:

kinit имя_администратора_контроллера@ИМЯ_ДОМЕНА (в верхнем регистре)

Если вы не получили ошибку — скорее всего, аутентификация прошла успешно. Проверить можно так:

klist

Если все получилось, вы увидите нечто подобное:

То, что вы видите на скриншоте, означает, что Kerberos на контроллере домена аутентифицировал пользователя и выдал разрешение на подключение. Осталось внести корректировки в настройки Samba и позаботиться о соответствии пользователей Windows и Linux с помощью Winbind.