Авторизация в Active Directory на Linux
Проверьте имя компьютера: в файле /etc/hostname должна быть единственная строка с именем типа zd10 - как на наклейке на корпусе компьютера.
cat /etc/hostname
Проверить локальный 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 сервер)
- Address:
- 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
|
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:
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
В файле /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 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
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 есть проблема:
- https://andrewgdotcom.wordpress.com/2007/09/28/avahi-and-dot-local-addresses-on-ubuntu-gutsy/
- https://askubuntu.com/questions/1068131/ubuntu-18-04-local-domain-dns-lookup-not-working
Для решения этой проблемы:
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
- Linux в домене Active Directory / Хабр
- PowerBroker Identity Services Open Edition – решение для интеграции Linux в Active Directory | Linuxoid
- ITband.ru » Взаимодействие Active Directory и DNS
- Как правильно настроить dns-клиент в сети с active directory? — Toster.ru
- Manage your Active Directory from Linux with adtool - gHacks Tech News
История настройки - по мотивам инструкций:
- SSSD and Active Directory - официальная документация Ubuntu
- Join Ubuntu 18.04 to Active Directory | Bits Of Water – IT Technology
- Ubuntu 18.04 LTS : Join in Active Directory Domain : Server World
- How to Join An Ubuntu Desktop Into An Active Directory Domain | Unixmen - также видео: https://www.youtube.com/watch?v=TkUUZSB5Y74
- Ввод компьютера в домен Windows | Русскоязычная документация по Ubuntu
- Chapter 2. Using Active Directory as an Identity Provider for SSSD - Red Hat Customer Portal
- Joining Ubuntu to Active Directory Part 2 - YouTube