2.1.2 Ввод компьютера в домен Windows

Ввод в  домен с помощью скрипта
Ввод в домен с помощью графической программы
Ввод в домен консольными командами
Список команд для быстрого ввода в домен через консоль

Важно

Имя ПК должно содержать только буквы (a–z), цифры (0–9), знак »минус» (-) и точку (.).

Ввод в домен с помощью скрипта

Скрипт domain-join.sh доступен по ссылке
Для запуска скрипта необходимы права пользователя root.
Скрипт может выполнятся в трех режимах: без параметров, с входными параметрами, с графическим интерфейсом.
Для запуска скрипта без параметров, перейдите в каталог со скриптом domain-join.sh и выполните:

#./domain-join.sh

при этом скриптом будет запрошен ввод имени домена, компьютера, а также имя администратора домена и его пароль.


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

#./domain-join.sh -d example.com -n client1 -u admin -p password

Описание параметров запуска:

-d имя домена
-n имя компьютера
-u имя администратора домена
-p пароль администратора домена
-g запуск графического интерфейса

Пример запуска с графическим интерфейсом:

#./domain-join.sh -g

Лог выполнения скрипта находится здесь: /var/log/domain-join-cli.log


Ввод в домен с помощью графической программы

Ввести компьютер в домен можно с помощью графической программы domain-join-gui, установка данной программы:

sudo yum install domain-join-gui

После установки зайдите в меню, и в разделе «Параметры» появится новый пункт «Ввод в домен». Кроме того, запустить утилиту domain-join-gui можно из «Центра управления ОС» — «Параметры системы».

Ввод в домен консольными командами (для быстрого ввода можно использовать команды в подразделе «Список команд для ввода в домен через консоль»)

Подключаемся к домену Active Directory с помощью realmd.

Realmd (Realm Discovery) – это сервис, позволяющий производить настройку сетевой аутентификации и членства в домене MS AD без сложных настроек. Информация о домене обнаруживается автоматически. Для аутентификации и проверки учетных записей realmd использует SSSD (через Kerberos и LDAP) (также может использоваться и Winbind).

  1. Настройка NTP клиента

Время на контроллере домена и на клиенте должно быть одинаково. Для синхронизации времени клиентского ПК с контроллером домена используйте клиент chrony. Откройте файл конфигурации NTP клиента CHRONY с помощью команды:

sudo nano /etc/chrony.conf

Удалите или закомментируйте в нем строки с серверами по умолчанию, а в качестве сервера времени укажите сервер контроллера домена:

server <FQDN имя контроллера домена> iburst

После изменений конфигурационного файла вам надо перезапустить chronyd:

sudo systemctl restart chronyd

Проверьте работу chrony с помощью двух команд::

systemctl status chronyd
chronyc tracking

Пример вывода команды:

$ systemctl status chronyd
  chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Вт 2019-07-09 11:13:49 MSK; 5min ago
  Process: 683 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 639 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 650 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─650 /usr/sbin/chronyd

Пример вывода команды:

$ chronyc tracking
Reference ID    : 10.81.1.196 (dc.win.redos)
Stratum         : 4
Ref time (UTC)  : Wed Mar  4 09:44:17 2020
System time     : 0.000169261 seconds slow of NTP time
Last offset     : -0.000182217 seconds
RMS offset      : 0.000182217 seconds
Frequency       : 1.939 ppm slow
Residual freq   : -0.602 ppm
Skew            : 1.234 ppm
Root delay      : 0.047364 seconds
Root dispersion : 0.087531 seconds
Update interval : 64.7 seconds
Leap status     : Normal
  1. Установите необходимые пакеты, если они ещё не установлены
sudo yum install -y realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation
  1. Выполните команду поиска домена
realm discover < realm name >
Важно
!!! Не рекомендовано использовать домен .local !!! Он зарезервирован для автоматически конфигурируемых сетей.
При использовании домена local

Если нужно получить доступ к ресурсам в уже существующей среде (Windows AD). То необходимо внести изменения в процесс разрешения хостов на linux машине. Отредактируйте /etc/nsswitch.conf. Изначально интересующий нас раздел содержит следующие записи:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

Соответственно, в этом режиме сначала производится поиск в файле /etc/hosts, затем запрос идет к mdns, после чего возвращается ответ «не найдено». Mdns кэширует данные и  работает с демоном Avahi. Модифицируйте эту «схему» к классическому виду:

hosts:          files dns
  1. Введите компьютер в домен, указав логин и пароль администратора домена
sudo realm join -U -v <имя_администратора_домена> <realm_name>

Пример:

sudo realm join -U -v администратор win.redos
Важно
Для Windows Server 2003 имя пользователя, которому разрешено добавлять компьютеры в домен должно быть на английском языке. Для этого создайте на контроллере домена пользователя с английским именем и предоставьте ему необходимые права.

При успешном вводе ПК в домен, в конце вы увидите сообщение "* Successfully enrolled machine in realm"

  1. Теперь, если ввести команду realm list, то получим полную информацию о домене, а в консоли «Users and Computers» домена Active Directory появится новый компьютер.
$ realm list
win.redos
type: kerberos
realm-name: WIN.REDOS
domain-name: win.redos
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
login-formats: %U@win.redos
login-policy: allow-realm-logins
  1. Некоторые действия и информацию можно получить с помощью утилиты adcli.
$ adcli info win.redos
[domain]
domain-name = win.redos
domain-short = WIN
domain-forest = win.redos
domain-controller = dc.win.redos
domain-controller-site = Default-First-Site-Name
domain-controller-flags = pdc gc ldap ds kdc timeserv closest writable full-secret ads-web
domain-controller-usable = yes
domain-controllers = dc.win.redos
[computer]
computer-site = Default-First-Site-Name
  1. Откройте для редактирования файл /etc/sssd/sssd.conf
sudo nano /etc/sssd/sssd.conf

Приведите строки к указанному ниже виду:

use_fully_qualified_names = False
ad_gpo_access_control = permissive
  1. Разрешите доменным пользователям создавать домашние директории, для чего выполните команду:
sudo authconfig --enablemkhomedir --enablesssdauth --updateall
Для контроллера домена на базе Windows Server 2003 выполните дополнительные действия

В связи с тем, что клиент Kerberos в Linux использует самый безопасный алгоритм шифрования при подключении к серверу Kerberos на MS AD, а 2003 версия windows не поддерживает его, вам придется явно указать, какими алгоритмами пользоваться клиенту. Отредактируйте файл /etc/krb5.conf. В секцию [libdefaults] впишите

[libdefaults]
...
default_tkt_enctypes = RC4-HMAC, DES-CBC-CRC, DES3-CBC-SHA1,DES-CBC-MD5
default_tgs_enctypes = RC4-HMAC, DES-CBC-CRC, DES3-CBC-SHA1, DES-CBC-MD5

Перезагрузите компьютер и попробуйте зайти под учетной записью доменного пользователя.

  1. Далее нужно отредактировать конфигурационный файл /etc/krb5.conf

Для доступа к сетевым ресурсам без запроса пароля (с помощью Kerberos) в файле /etc/krb5.conf нужно закомментировать строку

default_ccache_name = KEYRING:persistent:%{uid}

После нее вставить строку:

default_ccache_name = FILE:/tmp/krb5cc_%{uid}

Изменить значение параметра можно следующей командой:

sudo sed -i 's;default_ccache_name = KEYRING:persistent:%{uid};default_ccache_name = FILE:/tmp/krb5cc_%{uid};g' /etc/krb5.conf

В секцию [libdefaults] нужно добавить параметр default_realm = REALM NAME

Пример записи для домена win.redos:

default_realm = WIN.REDOS

Добавить параметр можно следующей командой (вместо REALM NAME укажите название своего домена ПРОПИСНЫМИ буквами):

sudo sed -i '/krb5cc_%{uid}/a default_realm = REALM NAME' /etc/krb5.conf

Этот параметр позволит пользователям при выполнении команды kinit не указывать полное имя пользователя (то есть можно использовать короткое имя пользователя user вместо user@WIN.REDOS).

Пример:

$ kinit user
Password for user@WIN.REDOS:
  1. Проверьте состояние службы sssd, в выводе статуса должно быть написано active (running)
$ systemctl status sssd
  sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
   Active: active (running) since Вт 2019-08-27 11:26:16 MSK; 2h 5min ago
 Main PID: 31918 (sssd)
   CGroup: /system.slice/sssd.service
           ├─31918 /usr/sbin/sssd -i --logger=files
           ├─31919 /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files
           ├─31920 /usr/libexec/sssd/sssd_be --domain win.redos --uid 0 --gid 0 --logger=files
           ├─31921 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
           └─31922 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files
  1. Также можно добавить новое правило в /etc/sudoers, чтобы доменный пользователь из группы администраторов домена мог получать права администратора локального компьютера:Откройте файл /etc/sudoers для редактирования от пользователя root:
    $ sudo nano /etc/sudoers

    Добавьте в файл следующую строку, сохраните изменения и закройте редактор.

    %администраторы\ домена ALL=(ALL) ALL

    Данный параметр можно добавить командой:

    sudo sh -c "echo '%администраторы\ домена ALL=(ALL) ALL' >> /etc/sudoers"
  2. Перезагрузите компьютер и войдите в ОС под учетной записью доменного пользователя.
Важно

Имя доменного пользователя должно состоять из латинских символов (кириллицу в имени пользователя использовать не рекомендуется).

Список команд для быстрого ввода в домен через консоль

В данном разделе собраны команды из раздела Ввод в домен консольными командами. Описание всех команд можно посмотреть в вышеуказанном подразделе. Не забудьте выполнить предварительную настройку ПК (задать имя и настроить сетевое соединение).

1. Настройте NTP-клиент

Здесь введите своё FQDN имя контроллера домена.

sudo sed -i 's/server/#server/g' /etc/chrony.conf
sudo sh -c "echo 'server <FQDN_имя_контроллера_домена> iburst' >> /etc/chrony.conf"
sudo systemctl restart chronyd
chronyc tracking

2. Установите необходимые пакеты, выполните поиск и настройку домена и введите компьютер в домен.

sudo yum install -y realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation
realm discover <имя_домена>
sudo realm join -U -v <имя_администратора_домена> <имя_домена>

При успешном вводе машины в домен вы увидите сообщение «* Successfully enrolled machine in realm»

          3. Отредактируйте файл sssd.conf и разрешите доменным пользователям создавать домашние категории.

sudo sed -i 's/use_fully_qualified_names = True/use_fully_qualified_names = False/g' /etc/sssd/sssd.conf
sudo sh -c "echo 'ad_gpo_access_control = permissive' >> /etc/sssd/sssd.conf"
sudo authconfig --enablemkhomedir --enablesssdauth --updateall

          4. Чтобы убрать предупреждение "rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)" при выводе команды testparm -s:

sudo sh -c "echo '*               -       nofile          16384' >> /etc/security/limits.conf"
sudo sh -c "echo 'root            -       nofile          16384' >> /etc/security/limits.conf"
Если контроллер домена основан на базе Windows Server 2003, то выполните следующую команду:
sudo sed -i '/\[libdefaults\]/a \    default_tkt_enctypes = RC4-HMAC, DES-CBC-CRC, DES3-CBC-SHA1,DES-CBC-MD5\n    default_tgs_enctypes = RC4-HMAC, DES-CBC-CRC, DES3-CBC-SHA1, DES-CBC-MD5' /etc/krb5.conf
  1. Для доступа доменных пользователей к сетевым ресурсам без запроса пароля (с помощью Kerberos) в файле /etc/krb5.conf нужно изменить параметр default_ccache_name:
sudo sed -i 's;default_ccache_name = KEYRING:persistent:%{uid};default_ccache_name = FILE:/tmp/krb5cc_%{uid};g' /etc/krb5.conf

Добавление параметра default_realm = REALM NAME в секцию [libdefaults] позволит пользователям при выполнении команды kinit не указывать полное имя пользователя (то есть можно использовать короткое имя пользователя user вместо user@WIN.REDOS). Добавить параметр можно следующей командой (вместо REALM NAME укажите название своего домена ПРОПИСНЫМИ буквами):

sudo sed -i '/krb5cc_%{uid}/a default_realm = REALM NAME' /etc/krb5.conf
  1. Также можно добавить новое правило в /etc/sudoers, чтобы доменный пользователь из группы администраторов домена мог получать права администратора локального компьютера:Данный параметр можно добавить командой:
sudo sh -c "echo '%администраторы\ домена ALL=(ALL) ALL' >> /etc/sudoers"

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email