зачем_вводить_системы_linux_в_домен_microsoft

Table of Contents

Зачем вводить системы Linux в домен Microsoft

Анонс вебинара

Запись вебинара

Реклама вебинара

  • В интернете множество статей, описывающих добавление в домен Microsoft систем Linux. Очень часто там отсутствует ответ на главный вопрос - зачем это делать? Давайте разберемся и всегда ли это необходимо, и как вообще решать задачи Single Sign-On (SSO) и workplace innovation (WPI) при использовании домена Microsoft и рабочих станций и сервисов Linux

Техническое задание

  • На предприятии используется Microsoft Active Directory. Сотрудники должны иметь возможность с любой рабочей станции linux работать в личном окружении (рабочий стол, документы, настройки) а так же, с общими с корпоративными файлами совместно с пользователями систем Windows.

Шаг 1. Исходное состояние стенда

Система windows server

Система linux gate

  • Шлюз в Интернет
  • DHCP

Рабочие станции

windows

  • client2 введена в домен Active Directory

linux

Шаг 2. Файловый сервис на linux

Шаг 3. Рабочие станции на linux

3.1 Использование kerberos для работы с Microsoft AD

3.2 Работа с файловыми ресурсами Microsoft из linux

3.3 Аутентификация пользователей в linux через Microsoft Active Directory

3.4 Автоматическое создание учетных записей после аутентификации через Microsoft Active Directory

3.5 Монтирование домашнего каталога ручном режиме

user1$ cd /

# klist

# cp -v /tmp/krb5cc_`id -u user1`_* /tmp/krb5cc_0

# klist

# mount.cifs //gate.corp13.un/user1 -o rw,user,sec=krb5,vers=3.1.1,uid=`id -u user1`,gid=`id -g user1` /home/user1/

# ls -l /home/user1
  • Отключаемся в консоли vbox
# rm /tmp/krb5cc_0

# umount /home/user1/

3.6 Автоматическое монтирование домашнего каталога

  • Использование pam_script для автоматического монтирования домашнего каталога по протоколу CIFS с GSSAPI/Kerberos аутентификацией
  • Подключаемся как user1 в консоли vbox, проверяем наличие файлов, созданных из windows в домашнем каталоге и отлогиниваемся
# umount /home/user1/

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

# cat /usr/share/libpam-script/pam_script_auth
#!/bin/bash

if ! id $PAM_USER &>/dev/null; then
        useradd -m -s /bin/bash $PAM_USER
        echo //gate.corp13.un/corp_share /home/$PAM_USER/Public cifs rw,user,sec=krb5,noauto,vers=3.1.1 0 0 >> /etc/fstab
fi
  • Создаем в Active Directory учетную запись user2, включаем в group1 и подключаемся ей через linux GUI

Шаг 4. Клонируем конфигурацию рабочей станции

gate# dhcp-lease-list

gate# client1=192.168.13.101

gate# clientN=192.168.13.102

gate# ssh $clientN

clientN# DEBIAN_FRONTEND=noninteractive apt -y install krb5-user cifs-utils nfs-common libpam-krb5 libpam-script

gate# scp -3 $client1:/etc/krb5.conf $clientN:/etc/

gate# scp -3 $client1:/etc/pam.d/common-auth $clientN:/etc/pam.d/

gate# scp -3 $client1:/usr/share/libpam-script/pam_script_auth $clientN:/usr/share/libpam-script/

gate# scp -3 $client1:/usr/share/libpam-script/pam_script_ses_open $clientN:/usr/share/libpam-script/

Исправления и альтернативные варианты

0. Wrong path for pam_script.so

1. Создание несуществующих в AD учетных записей

В вебинаре создание учетной записи происходит до проверки ее подлинности, поэтому лучше расположить модули так:

# cat /etc/pam.d/common-auth
...
auth    [success=2 default=ignore]      pam_krb5.so minimum_uid=1000
auth    [success=1 default=ignore]      pam_unix.so nullok_secure try_first_pass
auth    requisite                       pam_deny.so
auth    sufficient                      pam_script.so
auth    required                        pam_permit.so
...

2. Через 10 часов сессия монтирования домашнего каталога устаревает

Вариант решения - не удалять в скрипте /tmp/krb5cc_0 и обновлять TGT через cron

client1:~# crontab -l
0 */8 * * * kinit -R >/dev/null 2>&1

Усиливается проблема (уже была) параллельного подключения нескольких пользователей к рабочей станции

3. Желательно удалять возможные записи для пользователя в /etc/fstab перед его созданием в скрипте

Особенно, если для отладки пользователи постоянно создаются/удаляются

...
  sed -i.bak -e "/\/home\/$PAM_USER/d" /etc/fstab
...

4. Можно поручить монтирование домашних каталогов systemd

# cat /usr/share/libpam-script/pam_script_auth
#!/bin/bash

if ! id $PAM_USER &>/dev/null; then
        useradd -m -s /bin/bash $PAM_USER

        sed -i.bak -e "/\/home\/$PAM_USER/d" /etc/fstab
        echo //gate.corp13.un/$PAM_USER /home/$PAM_USER cifs rw,user,sec=krb5,noauto,vers=3.1.1,uid=`id -u $PAM_USER`,gid=`id -g $PAM_USER` 0 0 >> /etc/fstab
        echo //gate.corp13.un/corp_share /home/$PAM_USER/Public cifs rw,user,sec=krb5,noauto,vers=3.1.1 0 0 >> /etc/fstab

        systemctl daemon-reload
fi
# cat /usr/share/libpam-script/pam_script_ses_open
#!/bin/sh

cp /tmp/krb5cc_`id -u $PAM_USER`* /tmp/krb5cc_0
зачем_вводить_системы_linux_в_домен_microsoft.txt · Last modified: 2021/10/26 09:57 by val