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

В четвертой версии Samba появилась возможность использовать сервер с Linux в качестве контроллера домена. И, хотя это давно перестало быть новостью, я надеюсь, что многим пригодится информация из этой и следующих статей. Итак, сегодня я настрою контроллер домена на Ubuntu Server 16.04 в стандартной конфигурации, а заодно расскажу и покажу, как это сделать.

Установка пакетов.

Одной только Samba нам будет недостаточно. Для аутентификации пользователей понадобится Kerberos, о котором уже говорилось ранее, для синхронизации времени — NTP, для управления правами доступа — ACL (система, многим известная как «виндовые галочки»). Если в сети присутствуют принтеры, которыми нужно управлять удаленно, придется установить и настроить СUPS. Samba 4 содержит встроенный DNS с ограниченной функциональностью, поэтому я буду использовать именно его. Если требуется полноценный DNS-сервер, добавьте в список BIND.

Устанавливаем минимальный набор, необходимый для нашей задачи:

sudo apt install samba samba-tool krb5-user ntp acl

Пакет acl, вероятно, уже установлен у вас в системе, поскольку он входит в стандартный набор Ubuntu 16.04, 16.10 и 17.04. Весьма вероятно, что он никуда не денется и в следующих версиях.

Kerberos попросит указать область по умолчанию. Можно оставить поля пустыми, позже мы все равно получим сгенерированный автоматически конфиг Kerberos.

Установка пакетов

Настройка Samba и Kerberos.

Для формирования файла /etc/samba/smb.conf воспользуемся утилитой samba-tool. То же самое в случае необходимости можно сделать и вручную, просто вписав соответствующие строки.

Для начала переименуем стандартный smb.conf, чтобы позволить samba-tool создать для нас новый.

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old

Базовый вариант команды для формирования конфига Samba в роли контроллера домена выглядит так:

sudo samba-tool domain provision --use-rfc2307 --interactive

Сюда могут быть добавлены дополнительные параметры, но о самом необходимом нас и без того спросят. Кроме того, в случае проблем вы можете сделать логи более подробными, добавив ключ -d и число от 0 до 10. Значение по умолчанию — 1.

Теперь вам нужно лишь вводить данные в ответ на соответствующие запросы. В квадратных скобках указывается значение по умолчанию, если оно подходит, достаточно просто нажать Enter.

Realmполное_имя_домена
Domainкороткое_имя_домена
Server Roleоставляем по умолчанию (dc)
DNS Backendесли не планируется отдельный DNS-сервер, оставьте SAMBA_INTERNAL
DNS Forwarder IP Adress8.8.8.8 ( это DNS от Google), если только в вашей сети не настроен собственный сервер доменных имен.

После этого нужно будет придумать и дважды ввести пароль администратора домена.

Обратите внимание! Минимальная длина пароля — 7 символов. Если это условие не будет соблюдено или найдутся другие ошибки, придется вводить последнюю команду и все параметры заново.

Настройка Samba и Kerberos

Настройка Samba и Kerberos

На скриншоте видно, что подходящий конфигурационный файл Kerberos сгенерировался автоматически.

Вот его содержимое:

Настройка Samba и Kerberos

Однако этот файл нужен нам в другом месте. Вместо того, чтобы перемещать его, создадим ссылку там, где необходимо. Перед этим переименуем старый файл, чтобы избежать конфликта и не потерять исходный вариант.

sudo mv /etc/krb5.conf /etc/krb5.conf.old  
sudo ln -s /var/lib/samba/private/krb5.conf /etc/krb5.conf

Параметр DNS Forwarder IP Adress — это адрес DNS-сервера, к которому будет выполнен запрос в том случае, если локальный, то есть, встроенный в Samba, сервер имен не найдет соответствия. Вы можете вписать сюда none, чтобы предотвратить разрешение доменных имен где-либо еще. При этом доступ к внешним сайтам по имени станет невозможным.

Настройка статического IP.

Динамически назначаемый IP-адрес — не лучшее решение для контроллера домена, он должен иметь статический IP. Для этого нужно знать имя сетевого интерфейса, а выяснить его можно так:

netstat -i

Настройка статического IP

Затем открываем /etc/network/interfaces и приводим его примерно к следующему содержанию:

auto имя_интерфейса
iface имя_интерфейса inet static
address 192.168.0.100 (или другой ip, который будет иметь сервер)
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.100
dns-search имя_домена (sambadomain.test в моем случае)

Перезагружаемся и смотрим, все ли у нас получилось:

ip addr

Отлично, IP соответствует только что указанному в конфиге:

Настройка статического IP

В качестве DNS я указал статический адрес, который был прописан для этого сервера. При разрешении имен запрос будет направлен к внутреннему DNS Samba, который мы уже настроили. И, если подходящий результат не будет найден, запрос перенаправится на 8.8.8.8, который мы указали в качестве дополнительного DNS.

Давайте проверим, все ли работает как надо:

ping google.com

Если google.com или любой другой сайт успешно пингуется, значит, доступ к сети вы не сломали и внешние имена благополучно разрешаются через удаленный DNS-сервер.

Настройка статического IP

На этом пока все. Мы сделали немало, но впереди еще много интересного.


Комментарии отключены