Авторизация в Active Directory на Linux

Матеріал з Wiki.Zina
Перейти до навігації Перейти до пошуку

Подготовка

[ред. | ред. код]

Имя локального компьютера

[ред. | ред. код]

Проверьте имя компьютера: в файле /etc/hostname должна быть единственная строка с именем типа zd10 - как на наклейке на корпусе компьютера.

cat /etc/hostname

IP адрес локального компьютера

[ред. | ред. код]

Проверить локальный IP адрес можно или через настройки сети (Wired Settings), или командой:

hostname -I

IP адрес должен быть вида 192.168.1.110, где последние две цифры берутся из имени компьютера. Назначается статичный IP адрес на роутере: http://192.168.1.1/#home.hosts

В настройках сети нужно прописать в качестве основного DNS сервера наш контроллер домена 192.168.1.102:

  • IPv4 Method: Manual
  • Addresses:
    • Address: 192.168.1.110 (IP локального компьютера)
    • Netmask: 255.255.255.0
    • Gateway: 192.168.1.10 (роутер, основной DHCP сервер)
  • DNS:
    • Automatic: OFF
    • DNS: 192.168.1.102

В файл /etc/hosts добавить строку с IP и именем компьютера, в т.ч. с полным именем в домене Active Directory:

sudo vim /etc/hosts
192.168.1.110   zd10 zd10.zd.zina.com.ua

Протестировать:

ping zd10
ping zd10.zd.zina.com.ua
ping zd.zina.com.ua
ping nas.zd.zina.com.ua
ping tserver.zd.zina.com.ua
systemd-resolve --status
nslookup zd.zina.com.ua
dig -t SRV _ldap._tcp.zd.zina.com.ua | grep -A2 "ANSWER SECTION"

Синхронизация времени с доменом

[ред. | ред. код]
sudo apt install ntpdate
sudo ntpdate -q zd.zina.com.ua
sudo ntpdate zd.zina.com.ua

Настройка

[ред. | ред. код]
sudo apt install realmd krb5-user sssd sssd-tools adcli

Во время установки будет заданы вопросы:

Default Kerberos version 5 realm: ZD.ZINA.COM.UA
Kerberos servers for your realm: zd.zina.com.ua
Administrative server for your Kerberos realm: zd.zina.com.ua

krb5.conf

[ред. | ред. код]
sudo vim /etc/krb5.conf
[libdefaults]
        default_realm = ZD.ZINA.COM.UA
        ticket_lifetime = 24h 
        renew_lifetime = 7d
        dns_lookup_realm = false
        dns_lookup_kdc = false
        default_ccache_name = KEYRING:persistent:%{uid}
        rdns = false{code}

[realms]
        ZD.ZINA.COM.UA = {
          kdc = zd.zina.com.ua
          admin_server = zd.zina.com.ua
          default_domain = zd.zina.com.ua
        }

[domain_realm]
        .zd.zina.com.ua = ZD.ZINA.COM.UA
        zd.zina.com.ua = ZD.ZINA.COM.UA

Автосоздание домашней папки

[ред. | ред. код]
sudo pam-auth-update

Отметьте звездочкой пункт "Create home directory on login".

realmd.conf

[ред. | ред. код]

Создайте новый файл realmd.conf:

sudo vim /etc/realmd.conf
[users]
 default-home = /home/%U@%D
 default-shell = /bin/bash

[active-directory]
 default-client = sssd
 os-name = Ubuntu Workstation
 os-version = 18.04

[service]
 automatic-install = no

[zd.zina.com.ua]
 fully-qualified-names = no
 automatic-id-mapping = yes
 user-principal = yes
 manage-system = no

Присоединиться к домену

[ред. | ред. код]
sudo realm -v join zd.zina.com.ua

sssd.conf

[ред. | ред. код]

В файле /etc/sssd/sssd.conf поменять строку:

sudo vim /etc/sssd/sssd.conf
[sssd]
domains = zd.zina.com.ua
config_file_version = 2
services = nss, pam

[domain/zd.zina.com.ua]
ad_domain = zd.zina.com.ua
krb5_realm = ZD.ZINA.COM.UA
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
simple_allow_users = $, romych
simple_allow_groups = linux@zd.zina.com.ua

Проверить:

sudo sssd config-check
systemctl status sssd.service

Перезапустить sssd:

sudo systemctl restart sssd.service

Добавить пользователя

[ред. | ред. код]

Добавить пользователя через Enterprise Login с выводом служебных сообщений в терминале:

gnome-control-center -v user-accounts

Проверка

[ред. | ред. код]

Список доменов:

realm list

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

realm -v discover zd.zina.com.ua
KRB5_TRACE=/dev/stdout kinit Administrator
realm join zd.zina.com.ua
realm -v join zd.zina.com.ua --user-principal=ZD10/administrator@ZD.ZINA.COM.UA --unattended

Проверка авторизации (наличие билетов Kerberos для пользователя Administrator):

kinit Administrator@ZD.ZINA.COM.UA
kinit Administrator

Если вы не получили никаких ошибок - значит вы настроили всё верно и домен отдаёт вам билет Kerberos.

Убедиться в том, что билет получен, можно выполнив команду:

klist

Удалить все билеты можно командой:

kdestroy

Получить информацию по пользователю:

id romych@zd.zina.com.ua

Зайти под юзером:

su - romych@zd.zina.com.ua

Выйти из домена:

realm leave ZD.ZINA.COM.UA

Добавление пользователя в группу sudo

[ред. | ред. код]
sudo vim /etc/sudoers

Добавить группу Linux с сервера Active Directory:

%admin ALL=(ALL) ALL
%linux@zd.zina.com.ua ALL=(ALL:ALL) ALL

Также можно добавить отдельного пользователя:

root    ALL=(ALL:ALL) ALL
username@zd.zina.com.ua ALL=(ALL:ALL) ALL

Устарело

[ред. | ред. код]
sudo apt install ntp sssd sssd-tools adcli samba-common-bin resolvconf

Синхронизация времени с сервером

[ред. | ред. код]
sudo apt install ntp

Прописать сервер, с которым будет синхронизироваться время:

sudo vim /etc/systemd/timesyncd.conf
[Time]
NTP=pool.ntp.org

Активировать синхронизацию:

sudo timedatectl set-ntp true

Проверить синхронизацию времени:

timedatectl status

DNS и домен .local

[ред. | ред. код]

How To Make Changes In resolv.conf Permanent in Ubuntu [Quick Tip - It's FOSS]

sudo vim /etc/dhcp/dhclient.conf

Раскомментировать две строки и поменять значения:

supersede domain-name "zd.zina.com.ua";
prepend domain-name-servers 192.168.1.102;

DNS on Ubuntu 18.04 - datawookie

Добавить в файл строки:

sudo vim /etc/resolvconf/resolv.conf.d/head
domain zd.zina.com.ua
search zd.zina.com.ua
nameserver 192.168.1.102

Перезапустить сервис:

sudo service resolvconf restart
sudo service systemd-resolved restart

Протестировать:

systemd-resolve --status
nslookup zd.zina.com.ua

С доменами .local есть проблема:

Для решения этой проблемы:

sudo vim /etc/nsswitch.conf
#hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts:          files mdns4_minimal dns mdns4

Есть два варианта решения - с avahi и без. Подробнее здесь: networking - Ubuntu 18.04 .local domain dns lookup not working - Ask Ubuntu

Первый вариант:

sudo vim /etc/avahi/avahi-daemon.conf
[server]
domain-name=.alocal

Второй вариант:

Удалить avahi.

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo vim /etc/systemd/resolved.conf
[Resolve]
Domains=zd.local

Перезапустить сеть и сервисы:

sudo /etc/init.d/networking restart
sudo service systemd-resolved restart
sudo service avahi-daemon restart

Протестировать:

dig -t SRV _ldap._tcp.zd.zina.com.ua | grep -A2 "ANSWER SECTION"
nslookup zd.zina.com.ua
ping zd.zina.com.ua
ping nas.zd.zina.com.ua
ping tserver.zd.zina.com.ua
sudo apt install samba-common-bin libpam-winbind winbind
sudo vim /etc/samba/smb.conf
[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
        workgroup = ZD
        client signing = yes
        client use spnego = yes
        kerberos method = secrets and keytab
        realm = ZD.ZINA.COM.UA
        security = ads

Ссылки

[ред. | ред. код]

История настройки - по мотивам инструкций:

См. также

[ред. | ред. код]