3.9.19.1.3 Ввод РЕД ОС в домен MSAD с помощью консольных команд
Скачать документ Ввод в домен консольными командами
Список команд для быстрого ввода в домен через консоль
Ограничение доступа входа на ПК для доменных пользователей
Имя ПК должно содержать только буквы (a–z), цифры (0–9), знак ''минус'' (-) и точку (.).
Данная инструкция не подходит для ПК, на которых установлено ПО SecretNet версии 1.9.
Вы можете подробнее ознакомиться с информацией по вводу компьютера в домен, просмотрев наши обучающие видео:
на RuTube — Ввод ПК с РЕД ОС в домен Windows;
в Яндекс.Дзен — Ввод ПК с РЕД ОС в домен Windows;
в VK Видео — Ввод ПК с РЕД ОС в домен Windows.
На наших каналах вы также сможете найти много другой полезной информации.
Ввод в домен консольными командами
Подключаемся к домену Active Directory с помощью realmd
.
Realmd (Realm Discovery) – это сервис, позволяющий производить настройку сетевой аутентификации и членства в домене MS AD без сложных настроек. Информация о домене обнаруживается автоматически. Для аутентификации и проверки учетных записей realmd использует SSSD (через Kerberos и LDAP) (также может использоваться и Winbind).
- Настройка 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
- Установите необходимые пакеты, если они ещё не установлены
sudo dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation
- Выполните команду поиска домена
realm discover < realm name >
!!! Не рекомендовано использовать домен .local !!! Он зарезервирован для автоматически конфигурируемых сетей.
Если нужно получить доступ к ресурсам в уже существующей среде (Windows AD). То необходимо внести изменения в процесс разрешения хостов на linux машине. Отредактируйте /etc/nsswitch.conf. Изначально интересующий нас раздел содержит следующие записи:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Соответственно, в этом режиме сначала производится поиск в файле /etc/hosts, затем запрос идет к mdns, после чего возвращается ответ "не найдено". Mdns кэширует данные и работает с демоном Avahi. Модифицируйте эту "схему" к классическому виду:
hosts: files dns
В РЕД ОС 7.3 изменять конфигурацию /etc/nsswitch.conf следует через файл
nano /etc/authselect/user-nsswitch.conf
после чего выполнить применение настроек:
authselect apply-changes
- Введите компьютер в домен, указав логин и пароль администратора домена
sudo realm join -U -v <имя_администратора_домена> <realm_name>
Пример:
sudo realm join -U -v администратор win.redos
При успешном вводе ПК в домен, в конце вы увидите сообщение "* Successfully enrolled machine in realm"
- Теперь, если ввести команду
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
- Некоторые действия и информацию можно получить с помощью утилиты
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
- Откройте для редактирования файл
/etc/sssd/sssd.conf
sudo nano /etc/sssd/sssd.conf
Приведите строки к указанному ниже виду:
use_fully_qualified_names = False ad_gpo_access_control = permissive
- use_fully_qualified_names = False - отключение режима полных имён для пользователей;
- ad_gpo_access_control = permissive - режим политики GPO входа пользователя в систему. В данном примере GPO оценивается, но не применяется.
- Разрешите доменным пользователям создавать домашние директории, для чего выполните команду:
sudo authselect select sssd with-fingerprint with-gssapi with-mkhomedir with-smartcard --force
- Далее нужно отредактировать конфигурационный файл /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:
В связи с тем, что клиент Kerberos в Linux использует самый безопасный алгоритм шифрования при подключении к серверу Kerberos на MS AD, а 2008 версия windows не поддерживает его, вам придется явно указать, какими алгоритмами пользоваться клиенту. Отредактируйте файл /etc/krb5.conf. В секцию [libdefaults] впишите
[libdefaults] ... default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5 default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5 preferred_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5
Перезагрузите компьютер и попробуйте зайти под учетной записью доменного пользователя.
- Проверьте состояние службы 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
- Пример настройки файла конфигурации /etc/samba/smb.conf
Далее будут приведены примерные настройки конфигурационного файла smb.conf:
В блоке [global] указываются общие настройки.
Укажите свои данные домена для параметров workgroup и realm:
# Короткое имя домена в верхнем регистре
workgroup = WIN
# Домен в верхнем регистре
realm = WIN.REDOS
# тип аутентификации, используемый для подключения к домену.
security = ADS
# определяет базу данных, которая будет использоваться для хранения учетных записей.
passdb backend = tdbsam
# определяет, будет ли winbind перечислять группы из домена.
winbind enum groups = Yes
# определяет, будет ли winbind перечислять пользователей из домена.
winbind enum users = Yes
# определяет, будет ли winbind перечислять пользователей из домена.
winbind offline logon = Yes
# определяет, будет ли использоваться домен по умолчанию при входе в систему пользователей без указания имени домена.
winbind use default domain = No
# определяет, будет ли winbind обновлять билеты Kerberos.
winbind refresh tickets = Yes
# определяет время кэширования ID-отображений.
idmap cache time = 900
# настройки отображения ID между Windows и Unix.
idmap config * : backend = tdb
idmap config * : range = 10000-99999
idmap config SMBIND : backend = rid
idmap config SMBIND : range = 100000-999999
# минимальная версия SMB протокола клиента.
client min protocol = NT1
# максимально возможная версия SMB протокола клиента.
client max protocol = SMB3
# путь к файлу ключей Kerberos.
dedicated keytab file = /etc/krb5.keytab
# метод аутентификации Kerberos.
kerberos method = secrets and keytab
# время обновления пароля машины.
machine password timeout = 60
# определяет объекты VFS, используемые при монтировании файловой системы.
vfs objects = acl_xattr
# определяет, будет ли ACL-наследование применяться при создании файлов и каталогов.
map acl inherit = yes
# определяет, будут ли атрибуты DOS храниться в расширенных атрибутах файла.
store dos attributes = yes
printing = cups
printcap name = cups
load printers = yes
cups options = raw
Настройки блока [global] завершены.
Далее следует изменить блок [homes], в котором необходимо указать настройки для доступа к папкам пользователей:
[homes]
comment = Home Directories
# "valid users" определеяет список пользователей или групп пользователей, которые имеют доступ к ресурсу.
# %S - подстановочный символ, который заменяется на имя текущей службы,
# %D - подстановочный символ, который заменяется на имя домена,
# %w - подстановочный символ, который заменяется на имя текущей машины.
valid users = %S, %D%w%S
# отключает/включает отображение данного ресурса в списке доступных ресурсов в проводнике или браузере файлов.
browseable = No
# разрешает запись на ресурс
read only = No
# позволяет унаследовать доступы на файлы и папки, если они не были явно настроены для данного ресурса.
inherit acls = Yes
В блоке [printers] укажите настройки для доступа к принтерам:
[printers]
comment = All Printers
path = /var/tmp
# устанавливает, что данная секция является принтером
printable = Yes
# права доступа для создания файлов
create mask = 0600
browseable = No
В блоке [print$] укажите параметры печати:
[print$]
comment = Printer Drivers
# путь к директории, которая будет использоваться для хранения драйверов принтеров
path = /var/lib/samba/drivers
# список пользователей/групп, имеющих права на запись
write list = @printadmin root
# устанавливает группу, которая будет установлена при создании файла/директории
force group = @printadmin
# устанавливает права доступа для создания файлов
create mask = 0664
# устанавливает права доступа для создания директорий
directory mask = 0775
Настройка файла smb.conf завершена. Обратите внимание, что приведены примерные настройки, которые могут быть изменены при необходимости.
- Также можно добавить новое правило в /etc/sudoers, чтобы доменный пользователь из группы администраторов домена мог получать права администратора локального компьютера:Откройте файл
/etc/sudoers
для редактирования от пользователя root:
$ sudo nano /etc/sudoers
Добавьте в файл следующую строку, сохраните изменения и закройте редактор.
%администраторы\ домена ALL=(ALL) ALL
Данный параметр можно добавить командой:
sudo sh -c "echo '%администраторы\ домена ALL=(ALL) ALL' >> /etc/sudoers"
- Перезагрузите компьютер и войдите в ОС под учетной записью доменного пользователя.
Имя доменного пользователя должно состоять из латинских символов (кириллицу в имени пользователя использовать не рекомендуется).
Список команд для быстрого ввода в домен через консоль
В данном разделе собраны команды из раздела Ввод в домен консольными командами. Описание всех команд можно посмотреть в вышеуказанном подразделе. Не забудьте выполнить предварительную настройку ПК (задать имя и настроить сетевое соединение).
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 dnf install 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 authselect select sssd with-fingerprint with-gssapi with-mkhomedir with-smartcard --force
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"
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
- Для доступа доменных пользователей к сетевым ресурсам без запроса пароля (с помощью 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
- Также можно добавить новое правило в /etc/sudoers, чтобы доменный пользователь из группы администраторов домена мог получать права администратора локального компьютера:Данный параметр можно добавить командой:
sudo sh -c "echo '%администраторы\ домена ALL=(ALL) ALL' >> /etc/sudoers"
Ограничение доступа входа на ПК для доменных пользователей
access_provider = simple simple_allow_users = user1@example.com, user2@example.com simple_allow_groups = group@example.com
Дата последнего изменения: 19.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.