Авторизация дистрибутивов LINUXBUH в домене Microsoft Active Directory

 


Данная инструкция применима для всех дистрибутивов LINUXBUH.RU основанных на Calculate Linux


Устанавливаем пакет sys-apps/ms-ad-linuxbuh

emerge ms-ad-linuxbuh

Применяем изменения в конфигурационных файлах коммандой

dispatch-conf

На вопрос

 #------------------------------------------------------------------------------
-# Modified Calculate Utilities 3.6.4.5
+# Modified Calculate Utilities 3.6.4.2
 # Processed template files:
 # /var/lib/layman/calculate/profiles/templates/3.6/2_ac_install_merge/sys-libs/glibc/nsswitch.conf
-# For modify this file, create /run/calculate/mount/install/etc/nsswitch.conf.clt template.
+# For modify this file, create /etc/nsswitch.conf.clt template.
 #------------------------------------------------------------------------------
 
-passwd:      files ldap
-shadow:      files ldap
-group:       files ldap
+passwd:      files ldap winbind
+shadow:      files ldap winbind
+group:       files ldap winbind
 hosts:       files dns
 networks:    files dns
 services:    files ldap

>> (1 of 6) -- /etc/nsswitch.conf
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge: 

отвечаем нажатием кнопки u (use-new) (в английской раскладке)

На вопрос

--- /etc/conf.d/samba   2019-05-08 14:44:59.000000000 +0300
+++ /etc/conf.d/._cfg0000_samba 2019-05-29 11:21:46.604961593 +0300
@@ -4,7 +4,8 @@
 # Note that samba4 controls 'smbd' by itself, thus it can't be started manually. You can, however,
 # tweak the behaviour of a samba4-controlled smbd by modifying your '/etc/samba/smb.conf' file
 # accordingly.
-daemon_list="smbd nmbd"
+#daemon_list="smbd nmbd"
+daemon_list="smbd nmbd winbind"
 
 piddir="/run/samba"
 

>> (2 of 6) -- /etc/conf.d/samba
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge: 

отвечаем нажатием кнопки u (use-new) (в английской раскладке)

На вопрос

-- /etc/pam.d/system-auth      2019-05-27 16:42:06.545000000 +0300
+++ /etc/pam.d/._cfg0000_system-auth    2019-05-29 11:21:46.605961593 +0300
@@ -1,18 +1,17 @@
 #------------------------------------------------------------------------------
-# Modified Calculate Utilities 3.6.4.5
+# Modified Calculate Utilities 3.6.4.2
 # Processed template files:
+# /var/lib/layman/calculate/profiles/templates/3.6/2_ac_install_merge/sys-auth/pambase/system-auth
 # /var/lib/layman/calculate/profiles/templates/3.6/3_ac_install_live/1-merge/sys-auth/pambase/system-auth
 # For modify this file, create /etc/pam.d/system-auth.clt template.
 #------------------------------------------------------------------------------
-auth       required     pam_env.so
-auth       [success=3 new_authtok_reqd=done default=ignore]   pam_unix.so try_first_pass
-auth       requisite    pam_client.so
-auth       [success=1 new_authtok_reqd=done default=ignore]   pam_ldap.so use_first_pass
-auth       requisite     pam_deny.so
-auth       required     pam_permit.so
-auth       optional     pam_keystore.so use_first_pass
-auth       optional     pam_ecryptfs.so unwrap
+auth        optional      pam_group.so
+auth        required      pam_env.so
+auth        sufficient    pam_unix.so likeauth nullok try_first_pass
+auth        sufficient    pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE
+auth        required      pam_deny.so
 
+account     sufficient    pam_winbind.so
 account    required     pam_unix.so
 account    sufficient   pam_ldap.so
 
@@ -22,8 +21,12 @@
 password   sufficient   pam_ldap.so
 password   required     pam_deny.so
 
+session     required      pam_mkhomedir.so skel=/etc/skel/ umask=0022
 session    required     pam_env.so
 session    required     pam_limits.so
+-session   optional     pam_loginuid.so
+-session   optional     pam_elogind.so
 session    required     pam_unix.so
 session    optional     pam_ecryptfs.so unwrap
 session    optional     pam_ldap.so
+auth        required      pam_env.so
+auth        sufficient    pam_unix.so likeauth nullok try_first_pass
+auth        sufficient    pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE
+auth        required      pam_deny.so
 
+account     sufficient    pam_winbind.so
 account    required     pam_unix.so
 account    sufficient   pam_ldap.so
 

отвечаем нажатием кнопки Shift+Q

На вопрос

>> (3 of 6) -- /etc/pam.d/system-auth
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge: 

отвечаем нажатием кнопки u (use-new) (в английской раскладке)

На вопрос

--- /etc/samba/smb.conf 2019-05-09 13:40:24.000000000 +0300
+++ /etc/samba/._cfg0000_smb.conf       2019-05-29 11:21:46.605961593 +0300
@@ -7,4 +7,26 @@
 #------------------------------------------------------------------------------
 
 [global]
-client max protocol = NT1
-client max protocol = NT1
--- /etc/samba/smb.conf 2019-05-09 13:40:24.000000000 +0300
+++ /etc/samba/._cfg0000_smb.conf       2019-05-29 11:21:46.605961593 +0300
@@ -7,4 +7,26 @@
 #------------------------------------------------------------------------------
 
 [global]
-client max protocol = NT1
+   netbios name = test1
+   workgroup = LINUXBUH
+   security = ADS
+   realm = LINUXBUH.RU
+   encrypt passwords = yes
+
+   idmap config *:backend = tdb
+   idmap config *:range = 70001-80000
+   idmap config SAMDOM:backend = ad
+   idmap config SAMDOM:schema_mode = rfc2307
+   idmap config SAMDOM:range = 500-40000
+
+   winbind use default domain = Yes
+   winbind nss info = rfc2307
+   winbind use default domain = yes
+   winbind enum users  = yes
+   winbind enum groups = yes
+   winbind nested groups = Yes
+   winbind refresh tickets = yes
+
+  template shell = /bin/bash
+  template homedir = /home/%U
+

отвечаем нажатием кнопки Shift+Q

На вопрос

>> (3 of 6) -- /etc/pam.d/system-auth
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge: 

отвечаем нажатием кнопки u (use-new) (в английской раскладке)

На вопрос

--- /etc/security/group.conf    2019-05-08 12:43:35.000000000 +0300
+++ /etc/security/._cfg0000_group.conf  2019-05-29 11:21:46.605961593 +0300
@@ -100,7 +100,8 @@
 #
 
 #xsh; tty* ;%admin;Al0000-2400;plugdev
-
+*; *; *; Al0000-2400; audio, cdrom, users, uucp, cdrw, usb, games, plugdev, scanner, wheel, lp, lpadmin
 #
 # End of group.conf file
 #
+

>> (5 of 6) -- /etc/security/group.conf
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge:

отвечаем нажатием кнопки u (use-new) (в английской раскладке)

На вопрос

--- /etc/security/limits.conf   2019-05-08 12:43:35.000000000 +0300
+++ /etc/security/._cfg0000_limits.conf 2019-05-29 11:21:46.605961593 +0300
@@ -46,5 +46,6 @@
 #@faculty        hard    nproc           50
 #ftp             hard    nproc           0
 #@student        -       maxlogins       4
-
+*               -    nofile            16384
+root            -    nofile            16384
 # End of file

>> (6 of 6) -- /etc/security/limits.conf
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge: 

отвечаем нажатием кнопки u (use-new) (в английской раскладке)

Переустнавливаем пакет net-fs/samba с новыми флагами acl client cups ldap pam winbind ads gnutls и пакет virtual/krb5 коммандой

emerge samba krb5

 Пересоберётся пакет SAMBA

[binary   R    ] virtual/krb5-0-r1::gentoo  ABI_X86="(64) -32 (-x32)" 24 KiB
[ebuild   R    ] net-fs/samba-4.8.6-r2::gentoo  USE="acl ads client cups gnutls ldap pam system-mitkrb5 winbind -addc -addns -ceph -cluster -debug (-dmapi) -fam -gpg -iprint -python -quota (-selinux) -syslog (-system-heimdal) (-systemd) -test -zeroconf" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7" 0 KiB

Применяем изменения в конфигурационных файлах коммандой

dispatch-conf

 На вопрос

 

 

 

--- /etc/conf.d/samba   2019-05-29 11:21:46.604961593 +0300
+++ /etc/conf.d/._cfg0000_samba 2019-05-29 11:53:24.787961593 +0300
@@ -4,8 +4,7 @@
 # Note that samba4 controls 'smbd' by itself, thus it can't be started manually. You can, however,
 # tweak the behaviour of a samba4-controlled smbd by modifying your '/etc/samba/smb.conf' file
 # accordingly.
-#daemon_list="smbd nmbd"
-daemon_list="smbd nmbd winbind"
+daemon_list="smbd nmbd"
 
 piddir="/run/samba"
 

>> (1 of 2) -- /etc/conf.d/samba
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge: 

отвечаем нажатием кнопки z (zap-new) (в английской раскладке). Отказываем в изменении конфигурационного файла /etc/conf.d/samba.

На вопрос

 

 

 

--- /etc/samba/smb.conf 2019-05-29 11:21:46.605961593 +0300
+++ /etc/samba/._cfg0000_smb.conf       2019-05-29 11:53:46.580961593 +0300
@@ -1,7 +1,6 @@
 #------------------------------------------------------------------------------
-# Modified Calculate Utilities 3.6.4.5
+# Modified Calculate Utilities 3.6.4.6
 # Processed template files:
-# /var/lib/layman/calculate/profiles/templates/3.6/2_ac_install_merge/net-fs/samba/smb.conf
 # /var/lib/layman/calculate/profiles/templates/3.6/2_ac_install_merge/net-fs/samba/smb.conf.client
 # For modify this file, create /etc/samba/smb.conf.clt template.
 #------------------------------------------------------------------------------
@@ -29,4 +28,4 @@
 
   template shell = /bin/bash
   template homedir = /home/%U
-
+client max protocol = NT1

>> (2 of 2) -- /etc/samba/smb.conf
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge:

отвечаем нажатием кнопки z (zap-new) (в английской раскладке). Отказываем в изменении конфигурационного файла smb.conf.

Настраиваем Kerberos.

Изменяем в файле /etc/krb5.conf строки

[libdefaults]
    default_realm = LINUXBUH.RU #Реальное имя домена - замените LINUHBUH.RU на имя своего домена Windows
[realms]
    LINUXBUH.RU = {                  #Замените LINUXBUH.RU на имя своего домена Windows
    kdc = 192.168.1.2                #Замените 192.168.1.2 на IP адрес или DNS имя своего контроллера домена Windows
     admin_server = pdc.linxbuh.ru   #Замените dc.linuxbuh.ru на IP адрес или DNS имя своего контроллера домена Windows
    default_domain = LINUXBUH     #Замените LINUXBUH на имя своего домена Windows
[domain_realm]
    .linuxbuh.ru = LINUXBUH.RU  #Замените linuxbuh.ru и LINUXBUH.RU на имя своего домена Windows
    linuxbuh.ru = LINUXBUH.RU   #Замените linuxbuh.ru и LINUXBUH.RU на имя своего домена Windows

Проверяем настройки получением билета:

 

 

 

 

 

 

kinit Администратор #Вместо Администратор введите имя пользователя-администратора вашего домена Windows

Если не было сообщений об ошибках, то проверяем полученный билет коммандой:

klist

Нормальный вывод комманды klist:

 # klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Администратор@LINUXBUH

Valid starting       Expires              Service principal
12.07.2018 08:57:06  12.07.2018 18:57:06  krbtgt/LINUXBUH@LINUXBUH
    renew until 13.07.2018 08:57:04

Настраиваем SAMBA

Правим под свои нужды конфигурационный файл /etc/samba/smb.conf

 [global]

netbios name = test1                      #test1 - имя компьютера в сети Windows, измените на своё
workgroup = LINUXBUH                      #LINUXBUH - имя рабочей группы или домена в сети Windows, измените на своё
realm = LINUXBUH.RU                       #LINUXBUH.RU - полное имя домена в сети Windows, измените на своё
idmap config SAMDOM:backend = ad          #Вместо SAMDOM впишите своё имя домена в сети Windows
idmap config SAMDOM:schema_mode = rfc2307 #Вместо SAMDOM впишите своё имя домена в сети Windows
idmap config SAMDOM:range = 500-40000     #Вместо SAMDOM впишите своё имя домена в сети Windows

Вводим компьютер в домен Windows

net ads join -U Администратор #Вместо Администратор введите имя пользователя-администратора вашего домена Windows

В ответ в случае успеха получим вывод

Using short domain name -- LINUXBUH
Joined 'TEST1' to dns domain 'linuxbuh.ru'

Перезапустим сервис SAMBA

/etc/init.d/samba restart
 

 

 

Проверим работает или нет сервис SAMBA коммандой

/etc/init.d/samba status

Проверяем что вошли в домен

net ads testjoin

В ответ в случае успеха получим вывод

Join is OK

Проверим работу в домене

wbinfo -t
 

 

 

Ответ

checking the trust secret for domain SINIKON via RPC calls succeeded

Проверяем, что WINBIND увидел пользователей и группы из MS AD командами

 

 

 

wbinfo -u
wbinfo -g

Нормальный вывод комманды wbinfo -g

компьютеры домена
издатели сертификатов
гости домена
серверы ras и ias
администраторы домена
администраторы схемы
администраторы предприятия
владельцы-создатели групповой политики
группа с разрешением репликации паролей rodc
группа с запрещением репликации паролей rodc
контроллеры домена предприятия - только чтение
контроллеры домена
контроллеры домена - только чтение
пользователи домена
dnsadmins
dnsupdateproxy
пользователи dhcp
администраторы dhcp
share
kavwsee administrators
wins users

проверяем, что дистрибутив запрашивает у WINBIND информацию о пользователях и группах, выполнив:

getent passwd
getent group

Нормальный вывод уомманды getent group

компьютеры домена:x:70005:
издатели сертификатов:x:70006:
гости домена:x:70007:
серверы ras и ias:x:70008:
администраторы домена:x:70009:
администраторы схемы:x:70010:
администраторы предприятия:x:70011:
владельцы-создатели групповой политики:x:70012:
группа с разрешением репликации паролей rodc:x:70013:
группа с запрещением репликации паролей rodc:x:70014:
контроллеры домена предприятия - только чтение:x:70015:
контроллеры домена:x:70016:
контроллеры домена - только чтение:x:70017:
пользователи домена:x:70004:
dnsadmins:x:70018:
dnsupdateproxy:x:70019:
пользователи dhcp:x:70020:
администраторы dhcp:x:70021:
share:x:70022:
kavwsee administrators:x:70023:
wins users:x:70024:

Перезагрузите компьютер.

Теперь можно авторизоваться  используя учетку MS AD.