Для упрощения добавления Ubuntu или Debian в домен Active Directory вместо связки samba+winbind можно использовать пакет realmd (Realm Discovery), который позволяет автоматически настроить службу SSSD (System Security Services Daemon) в Linux. Эта статья применима для Ubuntu 20.04/22.04 и Debian 10/11.
Прежде всего обновите пакеты на вашем хосте Linux:
$ sudo apt -y update
Выведите текущее имя хоста:
$ hostnamectl
Если нужно, измените имя хоста:
$ sudo hostnamectl set-hostname ubnt22.vmblog.ru
Проверьте, что в Linux корректно настроен клиент DNS и он указывает на ваши контроллеры домена AD:
# cat /etc/resolv.conf
nameserver 192.168.42.10 nameserver 192.168.142.10 search vmblog.ru
Т.к. пакет SSSD используется Kerberos для аутентификации, убедиться, что у вас корректно настроен NTP клиент и настроена синхронизация времени с контроллерами домена AD. Можно настроить так:
$ sudo systemctl status systemd-timesyncd
$ sudo nano /etc/systemd/timesyncd.conf
NTP=192.168.42.10
$ sudo systemctl restart systemd-timesyncd
Установите необходимые пакеты:
$ apt -y install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit
Проверьте, что ваш хост может обнаружить домен AD:
$ realm discover vmblog.ru --verbose
vmblog.ru type: kerberos realm-name: VMBLOG.RU domain-name: vmblog.ru configured: no server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin
Вы можете задать атрибуты вашего хоста Linux, которые нужно сохранить в учетной записи компьютера в Active Directory (атрибуты operatingSystem и operatingSystemVersion):
$ nano /etc/realmd.conf
[active-directory] os-name = Ubuntu GNU/Linux os-version = 22.04 (Jammy Jellyfish)
Для добавления Linux хоста в домен Active Directory вам понадобится учетная запись AD с правами администратора домена (или пользователь, которому делегированы права на добавление компьютеров в домен).
В самом простом случае для добавления хоста Ubuntu/Debian в домен достаточно выполнить команду:
$ sudo realm join -U apetrov vmblog.ru
Введите пароль доменного пользователя.
По умолчанию для вашего хоста Linux будет создана учетная запись компьютера AD в корневом OU (Organizational Unit) с именем Computers. Вы можете сразу поместить вам хост в нужную OU. Для этого используйте другую команду добавления в домен:
$ sudo realm join --verbose --user=apetrov --computer-ou="OU=Linux Servers,OU=HQ,DC=vmblog,DC=ru" vmblog.ru
Проверьте, что ваш хост теперь находится в домене AD:
$ sudo realm list
type: kerberos realm-name: VMBLOG.RU domain-name: vmblog.ru configured: kerberos-member server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin login-formats: %U@vmblog.ru login-policy: allow-realm-logins
Чтобы автоматически создавать домашний каталог пользователям, выполните:
sudo bash -c "cat > /usr/share/pam-configs/mkhomedir" <<EOF
Name: activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
required pam_mkhomedir.so umask=0022 skel=/etc/skel
EOF
$ sudo pam-auth-update
Выберите пункт activate mkhomedir.
Проверьте конфигурацию sssd в файле:
$ cat /etc/sssd/sssd.conf
Чтобы применить изменения из файла sssd.conf, нужно перезапустить службу:
$ systemctl status sssd
Теперь вы может выполнить аутентификацию в Linux с помощью учетной записи Active Directory (указывается в формате UPN: user@vmblog.ru).
Проверьте, что вы можете получить информацию о пользователе AD:
$ id apetrov@vmblog.ru
Можно переключиться на пользователя:
su - apetrov@vmblog.ru
Creating directory '/home/apetrov@vmblog.ru'. apetrov@vmblog.ru@ubnt22:~$
Чтобы разрешить доменным пользователям вход на хост Linux (консоль+SSH), выполните:
$ realm permit apetrov1@vmblog.ru ivanov2@vmblog.ru
Или разрешить доступ для пользователей доменных групп безопасности:
$ ream permit -g LinuxAdmins@vmblog.ru
Чтобы разрешить, запретить доступ всем пользователям домена:
$ sudo realm permit --all
$ sudo realm deny --all
Вы можете разрешить определенным пользователям и группам повышать привилегии с помощью sudo. Создайте файл:
$ sudo nano /etc/sudoers.d/linux-admins
Добавьте в него пользователей и/или группы, которым разрешено sudo:
%LinuxAdminx@vmblog.ru ALL=(ALL) ALL aivanov@vmblog.ru ALL=(ALL) ALL
Измените права на файл:
$ chmod 0440 /etc/sudoers.d/linux-admins
Теперь попробуйте аутентифицироваться на вашем Linux хосте с доменной учетной записью.
Процесс добавления rpm-based дистрибутивов (CentOS/Rocky Linux/RHEL/Fedora) в домен Active Directory немного отличается и описан в отдельной статье.
Joining a Debian Client to Active Directory
Note: This walkthrough was taken almost entirely from https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto. A few configuration changes in the PAM section and verbiage used are the only differences. More work is required to make this Debian-specific.
Required Software/Packages
Name |
Version |
MS Server 2003 w/AD and DNS |
2003 Standard |
GNU/Linux |
(Debian 6.0 or later) |
Winbind |
2:3.6.6-3 |
Samba |
2:3.6.6-3 |
Krb5-user |
1.10.1+dfsg-2 |
Libpam-krb5 |
4.6-1 |
libpam-winbind |
|
libnss-winbind |
Time settings
Kerberos requires that the device time be within a few minutes of the server time. See NTP to find out how to keep clocks up-to-date.
FQDN
A valid FQDN is necessary for Kerberos and AD. Edit the local host file so that it is resolvable.
Location: /etc/hosts
127.0.0.1 linux.test.server.com localhost linux
Configure Kerberos
Use apt-get install to install the following packages:
krb5-user libpam-krb5
krb5 template Location: /etc/krb5.conf
[logging] Default = FILE:/var/log/krb5.log [libdefaults] ticket_lifetime = 24000 clock-skew = 300 default_realm = test.server.com # dns_lookup_realm = false # dns_lookup_kdc = true [realms] test.example.com = { kdc = example.test.server.com:88 admin_server = example.test.server.com:464 default_domain = test.server.com } [domain_realm] .server.com = test.server.com server.com = test.server.com
Test your configuration by requesting a ticket
root@linux:~# kinit Administrator@test.server.com Password for Administrator@test.server.com : ****
Use klist to verify request worked
root@linux:~# klist Ticket cache: File: /tmp/krb5cc_0 Default principal: Administrator@test.server.com Valid starting Expires Service principal 05/16/07 10:30:42 05/16/07 20:30:01 Krbtgt/test.server.com@test.server.com renew until 05/16/07 10:30:42
Join the Domain
Use apt-get install to install the following packages:
winbind samba
Join Location: /etc/samba/smb.conf
[global] security = ads realm = test.server.com password server = 10.0.0.1 workgroup = test # winbind separator = + idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum users = yes winbind enum groups = yes template homedir = /home/%D/%U template shell = /bin/bash client use spnego = yes client ntlmv2 auth = yes encrypt passwords = yes winbind use default domain = yes restrict anonymous = 2 domain master = no local master = no preferred master = no os level = 0
Restart services
root@linux:~# /etc/init.d/winbind stop root@linux:~# /etc/init.d/samba restart root@linux:~# /etc/init.d/winbind start
Request Kerberos TGT for an account
root@linux:~# net ads join Using short domain name – test Joined ‘Linux’ to realm ‘test.server.com’
Test
# wbinfo -u
Setup Authentication
nsswitch Location: /etc/nsswitch.conf
passwd: compat winbind group: compat winbind shadow: compat
Test
root@linux:~# getent passwd root:x:0:0:root:/root:/bin/bash . . . test+administrator:x:10000:10000:Administrator:/home/test/administrator:/bin/b… test+gast:x:10001:10001:Gast:/home/LAB/gast:/bin/bash . . .
root@linux:~#: getent group root:x:0: daemon:x:1: bin:x:2: . . . test+organizations-admins:x:10005:administrator test+domain-admins:x:10006: user, administrator . . .
PAM
Location: /etc/pam.d/common-account
account sufficient pam_winbind.so account required pam_unix.so
Location: /etc/pam.d/common-auth
auth sufficient pam_winbind.so auth sufficient pam_unix.so nullok_secure use_first_pass auth required pam_deny.so
Location: /etc/pam.d/common-session
session required pam_unix.so session required pam_mkhomedir.so umask=0022 skel=/etc/skel
Location: /etc/pam.d/sudo
Auth sufficient pam_winbind.so Auth sufficient pam_unix.so use_first_pass Auth required pam_deny.so @include common-account
Final Config
Each domain needs a directory in home
root@linux:~# mkdir /home/test Login login: test+user password: **** . . . test+user@linux:~$
Debian 11 – известный дистрибутив операционной системы Linux, широко используемый среди разработчиков и системных администраторов. В операционной системе Debian 11 настраивается установка протокола Samba, который позволяет легко интегрировать компьютеры с операционной системой Windows в доменную сеть. Если вы хотите подключить Debian 11 к домену Windows, мы подготовили для вас пошаговую инструкцию, которая поможет вам успешно осуществить эту процедуру.
Прежде чем приступить к подключению Debian 11 к домену Windows, убедитесь, что у вас есть доступ к активной доменной сети Windows. Вам понадобятся учетные данные администратора домена для успешного завершения настройки
Шаг 1. Установка пакетов Samba
Перед подключением Debian 11 к домену Windows, необходимо установить пакеты Samba. Для этого откройте терминал и выполните следующую команду:
sudo apt update
sudo apt install samba smbclient
После успешной установки пакетов Samba приступайте к настройке подключения Debian 11 к домену Windows.
Содержание
- Подключение Debian 11 к домену Windows: пошаговая инструкция
- Установка необходимого программного обеспечения
- Настройка сетевых параметров в Debian 11
В этой инструкции будет описано, как подключить операционную систему Debian 11 к домену Windows. Следуйте этим шагам:
Шаг 1: Установите необходимые пакеты
Откройте терминал и выполните следующую команду:
sudo apt-get install samba smbclient krb5-user winbind libpam-winbind libnss-winbind
Шаг 2: Настройте Kerberos
Отредактируйте файл /etc/krb5.conf, добавив в него следующие строки:
[libdefaults]
default_realm = ВАШ_ДОМЕН
[realms]
ВАШ_ДОМЕН = {
kdc = ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА
admin_server = ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА
}
Замените ВАШ_ДОМЕН на имя вашего домена и ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА на имя вашего контроллера домена.
Шаг 3: Настройте файл hosts
Откройте файл /etc/hosts и добавьте строку:
IP_КОНТРОЛЛЕРА_ДОМЕНА ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА
Замените IP_КОНТРОЛЛЕРА_ДОМЕНА на IP-адрес вашего контроллера домена, а ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА на его имя.
Шаг 4: Настройте файл smb.conf
Отредактируйте файл /etc/samba/smb.conf, добавив следующие строки в секцию [global]:
workgroup = ВАШ_ДОМЕН
security = ads
realm = ВАШ_ДОМЕН
password server = ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА
idmap config * : range = 1000-9999
winbind use default domain = yes
Замените ВАШ_ДОМЕН на имя вашего домена, а ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА на имя вашего контроллера домена.
Шаг 5: Перезапустите службы
Перезапустите службы Samba и Winbind, выполните следующие команды:
sudo systemctl restart smbd
sudo systemctl restart nmbd
sudo systemctl restart winbind
Шаг 6: Присоединитесь к домену Windows
Выполните следующую команду:
sudo net ads join -U ИМЯ_ПОЛЬЗОВАТЕЛЯ
Замените ИМЯ_ПОЛЬЗОВАТЕЛЯ на имя пользователя с правами администратора домена.
Шаг 7: Проверьте подключение
Выполните следующую команду для проверки подключения:
wbinfo -p
Если вывод будет содержать строку «Ping to winbindd succeeded», значит, подключение к домену прошло успешно.
Теперь ваш Debian 11 подключен к домену Windows. Вы можете использовать учетные записи домена для аутентификации на вашей системе.
Установка необходимого программного обеспечения
Перед тем как подключать Debian 11 к домену Windows, вам потребуется установить несколько программ и пакетов. Вот список программного обеспечения, которое вам понадобится:
Samba: Samba — это пакет программного обеспечения, который позволяет Linux-системам взаимодействовать с сетевыми протоколами Windows. Установите Samba следующей командой:
sudo apt install samba
Winbind: Winbind — это компонент Samba, который позволяет Linux-системе работать в домене Windows. Установите Winbind следующей командой:
sudo apt install winbind
Kerberos: Kerberos — это протокол аутентификации, который используется для обеспечения безопасности при работе с сетевыми службами Windows. Установите Kerberos командой:
sudo apt install krb5-user
После установки всех необходимых программ и пакетов, вы будете готовы подключить Debian 11 к домену Windows.
Настройка сетевых параметров в Debian 11
Для успешного подключения Debian 11 к домену Windows необходимо корректно настроить сетевые параметры на операционной системе. В данном разделе представлены шаги, необходимые для этой настройки.
- Откройте файл настроек интерфейса сети
/etc/network/interfaces
с помощью текстового редактора. Например, можно выполнить командуsudo nano /etc/network/interfaces
в терминале. - В файле настройки найдите соответствующий раздел для вашего сетевого интерфейса. Обычно это раздел с именем
eth0
илиenp2s0
. - Настройте параметры IP-адреса, маски подсети, шлюза и DNS-сервера для вашей сети. Например:
- iface eth0 inet static — установите тип соединения в статический IP-адрес;
- address 192.168.0.10 — задайте IP-адрес вашего компьютера;
- netmask 255.255.255.0 — установите подходящую маску подсети;
- gateway 192.168.0.1 — укажите IP-адрес шлюза;
- dns-nameservers 8.8.8.8 8.8.4.4 — задайте IP-адреса DNS-серверов.
- Сохраните изменения в файле настроек и закройте его.
- Перезапустите сетевые службы, чтобы применить новые настройки. Выполните команду
sudo systemctl restart networking
. - Убедитесь, что сетевые параметры настроены корректно, выполнив команду
ip addr
. Вывод команды должен показать ваши настройки IP-адреса, маски подсети и шлюза.
После настройки сетевых параметров в Debian 11 вы можете продолжать процедуру подключения к домену Windows.
!!!
Есть утилита для ввода в домен likewise можно ввести в домен с помощью ее и дальше не читать. |
ссылки
http://insidedeb.blogspot.ru/2011/10/debian-squeeze-active-directory.html вот тут решение |
0. Редактируем файл /etc/resolv.conf
Вписываем наш контроллер домена в /etc/resolv.conf nano /etc/resolv.conf Должно получиться примерно следующее: search domain.local nameserver 192.168.0.100 Проверим резолвится ли КД по FQDN имени: ping server.domain.local Если всё нормально,переходим к следующему шагу |
1. Установим пакет NTP
apt—get update apt—get install ntp Для синхронизации времени с контроллером домена внесём изменения в файл /etc/ntp.conf nano /etc/ntp.conf Нужно найти строку в конфигурации: # You do need to talk to an NTP server or two (or three). и добавть туда ваши контроллеры домена: # You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example server server server.domain.local Пере запускаем и тестируем: invoke—rc.d ntp restart ntpq —p |
2. Установим Kerberos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
apt—get install krb5—user libkrb53 При установке ничего не меняем, оставляем всё по умолчанию. Настроим kerberos: cp /etc/krb5.conf /etc/krb5.conf.default cat /dev/null > /etc/krb5.conf nano /etc/krb5.conf Минимальная конфигурация: [libdefaults] default_realm = DOMAIN.LOCAL dns_lookup_kdc = no dns_lookup_realm = no ticket_lifetime = 24h default_keytab_name = FILE:/etc/krb5.keytab ; for Windows 2003 default_tgs_enctypes = rc4—hmac des—cbc—crc des—cbc—md5 default_tkt_enctypes = rc4—hmac des—cbc—crc des—cbc—md5 permitted_enctypes = rc4—hmac des—cbc—crc des—cbc—md5 ; for Windows 2008 with AES ; default_tgs_enctypes = aes256—cts—hmac—sha1—96 rc4—hmac des—cbc—crc des—cbc—md5 ; default_tkt_enctypes = aes256—cts—hmac—sha1—96 rc4—hmac des—cbc—crc des—cbc—md5 ; permitted_enctypes = aes256—cts—hmac—sha1—96 rc4—hmac des—cbc—crc des—cbc—md5 [realms] EXAMPLE.LOCAL = { kdc = server.domain.local kdc = server2.example.local admin_server = server.domain.local default_domain = domain.local } [domain_realm] .domain.local = DOMAIN.LOCAL domain.local = DOMAIN.LOCAL Соответственно раскомментируйте строки если у вас 2008 КД. И не забудьте поменять названия доена на актуальное. |
3. Теперь попробуем подключиться к домену:
kinit Administrator Проверим как прошло подключение и получили ли мы билет: klist Если всё прошло удачно, то переходим к следующему пункту. |
4. Установим samba:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
apt—get install winbind samba Далее приведу минимально необходимый конфиг самбы: nano /etc/samba/smb.conf ———————— [global] realm = DOMAIN.LOCAL workgroup = DOMAIN netbios name = server disable spoolss = Yes show add printer wizard = No security = ads idmap uid = 10000—20000 idmap gid = 10000—20000 template shell = /bin/bash template homedir = /home/%D/%U winbind use default domain = yes [share] comment = Write for Domain Users path = /media/samba/share browseable = yes writable = yes create mask = 0664 directory mask = 0777 valid users = @«DOMAIN\domain admins», @«DOMAIN\domain users» write list = @«DOMAIN\domain admins», @«DOMAIN\domain users» ———————— Перезапустим самбу и winbind /etc/init.d/samba restart /etc/init.d/winbind restart |
5. Изменим настройки в конфге /etc/nsswitch.conf
nano /etc/nsswitch.conf Приводим к следующему виду: passwd: files winbind group: files winbind shadow: files winbind hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 winbind networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis Применяем изменения: ldconfig |
6. Ввод в домен
Теперь для ввода в домен выполняем следующую команду net ads join —U Administrator Вводим пароль администратора. На этом настройка завершена. Пере запускаем самбу и винбинд, и убеждаемся в том что Debian видит доменные учётки: wbinfo —u Если есть необходимость логиниться в Debian с учетными данными из АД, то необходимо так же поправить конфигурацию PAM. |
В данной статье разберемся как ввести в домен Active Directory рабочие станции и сервера на операционной системе Debian или Ubuntu.
В первую очередь определитесь с именем вашего хоста и в случае необходимости поменяйте его перед вводом в домен.
Посмотреть имя можно командой:
uname -n
Чтобы изменить имя, нужно выполнить:
hostname NEW-NAME
Далее необходимо отредактировать файл hosts, указав там новое имя:
sudo nano /etc/hosts
Следующим этапом проверьте конфигурацию DNS в Debian:
sudo nano /etc/resolv.conf
Файл должен иметь следующий вид, там должны присутствовать сервера имен ваших КД, а так же имя вашего домена:
domain YOUR_DOMAIN.local
search YOUR_DOMAIN.local
nameserver 192.168.0.2
nameserver 192.168.0.3
Так же убедитесь, что ваш сервер имеет правильные настройки времени и даты и в случае отклонения скорректируйте их.
Для ввода Debian в домен мы будем использовать пакет Realm Discovery. Выполняем команду для установки необходимых пакетов:
sudo apt-get install realmd sssd-tools sssd libnss-sss libpam-sss adcli packagekit samba-common-bin oddjob oddjob-mkhomedir -y
После установки выполните команду, чтобы убедиться, что ваш Debian видит домен:
sudo realm discover YOUR_DOMAIN.local --verbose
Теперь вводим Debian в домен, выполняем команду:
sudo realm join -U user YOUR_DOMAIN.local
Вместо user необходимо указать учетную запись администратора домена, далее указать имя вашего домена. После выполнения команды вас попросят ввести пароль указанной учетной записи и система будет заведена в домен.
Чтобы проверить успешность всех действий, выполняем команду:
sudo realm list
Теперь настроим PAM (Pluggable Authentication Modules) для автоматического создания пользовательских директорий при авторизации:
sudo pam-auth-update
Отмечаем чекбоксом параметр Create home directory on login:
Теперь разрешим пользователям домена авторизовываться в Debian через консоль и SSH:
realm permit user1@yourdomain.local user2@yourdomain.local user3@yourdomain.local
Далее пробуем авторизоваться под доменным пользователем.
Для предоставления пользователю права использовать sudo, из под root открываем для редактирования следующий файл:
nano /etc/sudoers
И после root прописываем нужных пользователей:
user1@yourdomain.local ALL=(ALL) ALL
user2@yourdomain.local ALL=(ALL) ALL
user3@yourdomain.local ALL=(ALL) ALL