Заметка не претендует на оригинальность, является фактически калькой этой статьи, написана в качестве "записок на память". Так же обращаю внимание, что существует альтернативный способ без использования samba, но в моем случае она мне все равно нужна.
Продолжаю настройку терминального сервера Debian 9.3:
Выполняем в контейнере
Указанные данные будут использованы при генерации файлов
Приводим временную зону в соответствие настройкам домена:
вывод должен совпадать с системным временем в домене.
Добавляем в
Я считаю необходимым создать в DNS А записи с именем DC и указывающие на все ваши контороллеры, таким образом вы обезопасите себя от выхода одного из них их строя, кстати для kdc можно тоже указать одну строку "kdc = dc" пусть DNS server сам разруливает сбои.
Проверяем авторизацию:
Правим
Пробуем ввести в домен:
DOMAIN - наш домен
после запроса пароля должно появиться сообщение об успешном вводе в домен:
Проверяем доверительные отношения с AD
Приводим /etc/nsswitch.conf к виду:
Ну и напоследок добавим в
Продолжаю настройку терминального сервера Debian 9.3:
Выполняем в контейнере
poweroff
, после чего идем во вкладку DNS нашего LXC контейнера и в случае необходимости настраиваем имя, домен и DNS сервера через пробел.Указанные данные будут использованы при генерации файлов
/etc/resolv.conf
и /etc/hostname
, править файл напрямую нет смысла, так как он перегенерируется при следующем перезапуске контейнера.Приводим временную зону в соответствие настройкам домена:
dpkg-reconfigure tzdata
Настраиваем синхронизацию времени с контроллерами домена:
mcedit /etc/systemd/timesyncd.conf
Делаем рестарт службы:
systemctl restart systemd-timesyncd
Проверяем статус:
systemctl status systemd-timesyncd
Проверяем состояние синхронизации
timedatectl status
проверяем время:date
вывод должен совпадать с системным временем в домене.
Добавляем в
/etc/hosts
строку:
127.0.1.1 srvname.domain.com srvname
Ставим пакеты:
apt install -y krb5-user samba winbind libpam-krb5 libpam-winbind libnss-winbind
правим /etc/krb5.conf[libdefaults]
default_realm = DOMAIN.COM
# The following krb5.conf variables are only for MIT Kerberos.
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true
[realms]
DOMAIN.COM = {
kdc = dc
admin_server = dc
default_domain = DOMAIN.COM
}
[domain_realm]
.domain.com = DOMAIN.COM
domain.com = DOMAIN.COM
[login]
krb4_convert = false
krb4_get_tickets = false
Обращаю внимание на параметр "admin_server = dc"Я считаю необходимым создать в DNS А записи с именем DC и указывающие на все ваши контороллеры, таким образом вы обезопасите себя от выхода одного из них их строя, кстати для kdc можно тоже указать одну строку "kdc = dc" пусть DNS server сам разруливает сбои.
Проверяем авторизацию:
kinit domainuser@DOMAIN.COM
вводим запрашиваемый пароль, если нет ошибок проверяем тикет:
klist
должны быть выданы параметры тикета.Правим
/etc/samba/smb.conf
[global]
# Эти две опции нужно писать именно в заглавном регистре, причём workgroup без
# последней секции после точки, а realm - полное имя домена
workgroup = DOMAIN
realm = DOMAIN.COM
# Эти две опции отвечают как раз за авторизацию через AD
security = ADS
encrypt passwords = true
# Просто важные
dns proxy = no
socket options = TCP_NODELAY
# Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе,
# или даже стать домен контроллером, то всегда прописывайте эти пять опций именно в таком виде
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no
# Отключить поддержку принтеров
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
тестим конфиг самбы:
testparm
по нажатию ввода нам выведет секцию [global] конфига.Пробуем ввести в домен:
net ads join -U username -D DOMAIN
username - админ доменаDOMAIN - наш домен
после запроса пароля должно появиться сообщение об успешном вводе в домен:
Using short domain name -- DOMAIN
Joined 'servername' to dns domain 'DOMAIN.COM'
Проверяем:
net ads testjoin
Join is OK
добавляем в /etc/samba/smb.conf секцию для winbind(итоговый конфиг):
[global]
# Эти две опции нужно писать именно в заглавном регистре, причём workgroup без
# последней секции после точки, а realm - полное имя домена
workgroup = DOMAIN
realm = DOMAIN.COM
# Эти две опции отвечают как раз за авторизацию через AD
security = ADS
encrypt passwords = true
# Просто важные
dns proxy = no
socket options = TCP_NODELAY
# Возможность оффлайн-авторизации при недоступности доменконтроллера
winbind offline logon = yes
# Период кэширования учетных записей, по умолчанию равен 300 секунд
winbind cache time = 300
# Необязательная настройка, но избавляет от нудных пауз, указываем контроллер домена dc,
# можно указать и ip, но это является плохим тоном
# password server = dc
# Опции сопоставления доменных пользователей и виртуальных пользователей в системе через Winbind.
# Диапазоны идентификаторов для виртуальных пользователей и групп.
idmap config * : range = 10000-20000
idmap config * : backend = tdb
# Эти опции не стоит выключать.
winbind enum groups = yes
winbind enum users = yes
# Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп
# будут использоваться с доменом, т.е. вместо username - DOMAIN\username.
# Возможно именно это вам и нужно, однако обычно проще этот параметр включить.
winbind use default domain = yes
# Если вы хотите разрещить использовать командную строку для пользователей домена, то
# добавьте следующую строку, иначе в качестве shell'а будет вызываться /bin/false
template shell = /bin/bash
# Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку
winbind refresh tickets = yes
# Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе,
# или даже стать доменконтроллером, то всегда прописывайте эти пять опций именно в таком виде
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no
# Отключить поддержку принтеров
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
Останавливаем winbind, рестартим samba, запускаем winbind
/etc/init.d/winbind stop
smbd restart
/etc/init.d/winbind start
Напоминаю, что я работаю с правами root и не создаю в системе других пользователей.
Снова тестим конфиг самбы как и выше
testparm
результат должен быть аналогичный.Проверяем доверительные отношения с AD
wbinfo -t
checking the trust secret for domain DOMAIN via RPC calls succeeded
Комманды
wbinfo -u
wbinfo -g
должны соответственно вывести пользователей и группы домена.Приводим /etc/nsswitch.conf к виду:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
files: files dns
hosts: mdns4_minimal [NOTFOUND=return] dns files
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
после чего комманды
getent passwd
getent group
должны соответственно вывести локальные+доменные пользователи/группыНу и напоследок добавим в
/etc/pam.d/common-session
строку, которая обеспечит создание домашнего каталога при первом подключении пользователя:
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
На всякий случай перезагружаем сервер:
reboot
и выполняем на него вход по ssh доменным пользователем:
ssh "DOMAIN\user@server_ip
если все прошло хорошо, доменная авторизация настроена.
Комментариев нет:
Отправить комментарий