Подключаем Ubuntu к домену Active Directory

Active Directory Linux Ubuntu

Привет, дорогой мой бложек. У меня для тебя новая заметка о том, как подключить Ubuntu (проверено на 18.04 и 20.04) к домену Active Directory.

Как всегда, ничего нового я не придумал. Всё и так есть в интернете, но теперь и здесь тоже будет. Зачем это надо я не буду рассказывать, т.к. если вы хотите это сделать, то скорее всего сами прекрастно знаете зачем вам это надо.

Подготовка

Для начала включаем universe пакеты. Если они еще не включены, то:

sudo tee -a /etc/apt/sources.list <<EOF
deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe
EOF

Теперь обновляем apt-индексы:

sudo apt -y update

Меняем имя хоста:

sudo hostnamectl set-hostname linux-utils.vitaliy.org

и проверяем - пишем hostnamectl и получаем результат:

    Static hostname: linux-utils.vitaliy.org
          Icon name: computer-vm
            Chassis: vm
         Machine ID: c6eccece18fa4459b843deae2cf5a2aa
            Boot ID: 545b62e60e0d4a72bfc86024bd2e2adc
     Virtualization: microsoft
   Operating System: Ubuntu 20.10
             Kernel: Linux 5.8.0-48-generic
       Architecture: x86-64

Проверяем что DNS у нас настроен корректно

Удаляем systemd-resolve и настраиваем /etc/resolv.conf сами.

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo unlink /etc/resolv.conf
sudo mcedit /etc/resolv.conf

Пишем туда примерно вот так:

search     vitaliy.org
nameserver 192.168.2.1
nameserver 192.168.2.2

Только укажите свои имя домена и DNS сервера.

Установка

Устанавливаем необъодимые пакеты:

sudo apt -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit

Подключение к домену

Проверяем что мы "видим" наш домен:

$ sudo realm discover vitaliy.org
vitaliy.org
  type: kerberos
  realm-name: VITALIY.ORG
  domain-name: vitaliy.org
  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
  login-policy: allow-permitted-logins
  permitted-logins:
  permitted-groups: Domain Admins

Подключаемся у домену:

sudo realm join -U Administrator vitaliy.org

И тут же проверяем что всё хорошо:

$ realm  list
vitaliy.org
  type: kerberos
  realm-name: VITALIY.ORG
  domain-name: vitaliy.org
  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
  login-policy: allow-permitted-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

и активируем mkhomedir.

Затем перезагружаем sssd и проверяем что оно работает:

sudo systemctl restart sssd
systemctl status sssd

Настройка прав доступа

Теперь разрешаем логиниться на компьютер отдельным пользователям или группам:

sudo realm permit user1@example.com
sudo realm permit -g 'Domain Users'

Можно разрешить всем:

sudo realm permit --all

или всем запретить:

sudo realm  deny --all

На этом всё.

Бесплатный бонус:

Пользователей группы Domain Admins можно добавить в sudoers. По умолчанию этого не произойдет.

Делается это так:

sudo mcedit /etc/sudoers.d/domain_admins

Пишем там следующее:

%domain\ admins        ALL=(ALL)     ALL

Вот теперь точно всё!