Linux в домен windows server 2003

Содержание

Содержание

  • 1 Общая информация
  • 2 Проверка требований
  • 3 Установка Samba
  • 4 Настройка Samba
  • 5 Проверка работы и отладка
  • 6 Дополнительная настройка
  • 7 Доступ к Samba из Windows 7 и 2008 r2
  • 8 Работа над ошибками
    • 8.1 Winbind не запускается
    • 8.2 Ошибка получения билета Kerberos
  • 9 Полезные комманды
  • 10 См. также
  • 11 Cсылки

Общая информация

Если вам нужно просто предоставить сетевой доступ к ресурсам Linux компьютера, то смотрите статью Samba.

В этой статье мы опишем как подключить Linux компьютер к домену под управлением Microsoft Active Directory и сделать из него файловый сервер.

После выполнения этой инструкции мы будем иметь в сети файловый сервер под управлением ОС Линукс, входящий в домен Windows 2003 и ничем не отличающийся от файлового сервера под Windows. Пользователи домена смогут обращаться к его ресурсам под своими учётными записями. Доступ регулируется группами домена AD.

По этой инструкции настраивались Debian (4, 5), Ubuntu 9.10, создавалась она на основе официальной документации и многих рекомендаций и инструкций из Интернета. Остальные Linux’ы настраиваются сходным образом.

Для Alt Linux написана хорошая инструкция http://freesource.info/wiki/AltLinux/Dokumentacija/SambaInWin2kDomain?v=omo&

Проверка требований

  • Проверяем что Samba собрана с поддержкой Kerberos:
# smbd -b | grep KRB

   HAVE_KRB5_H
   HAVE_ADDRTYPE_IN_KRB5_ADDRESS
   HAVE_DECODE_KRB5_AP_REQ
   HAVE_KRB5
   HAVE_KRB5_AUTH_CON_SETUSERUSERKEY
   HAVE_KRB5_C_ENCTYPE_COMPARE
   HAVE_KRB5_C_VERIFY_CHECKSUM
   HAVE_KRB5_ENCRYPT_BLOCK
   HAVE_KRB5_ENCRYPT_DATA
   HAVE_KRB5_FREE_AP_REQ
   HAVE_KRB5_FREE_DATA_CONTENTS
   HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS
   HAVE_KRB5_FREE_KTYPES
   HAVE_KRB5_FREE_UNPARSED_NAME
   HAVE_KRB5_GET_PERMITTED_ENCTYPES
   HAVE_KRB5_GET_RENEWED_CREDS
   HAVE_KRB5_KEYBLOCK_IN_CREDS
   HAVE_KRB5_KEYTAB_ENTRY_KEY
   HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM
   HAVE_KRB5_KT_FREE_ENTRY
   HAVE_KRB5_LOCATE_KDC
   HAVE_KRB5_MK_REQ_EXTENDED
   HAVE_KRB5_PRINCIPAL2SALT
   HAVE_KRB5_PRINC_COMPONENT
   HAVE_KRB5_SET_DEFAULT_TGS_KTYPES
   HAVE_KRB5_SET_REAL_TIME
   HAVE_KRB5_STRING_TO_KEY
   HAVE_KRB5_TKT_ENC_PART2
   HAVE_KRB5_USE_ENCTYPE
   HAVE_LIBGSSAPI_KRB5
   HAVE_LIBKRB5
   HAVE_MAGIC_IN_KRB5_ADDRESS
   HAVE_TICKET_POINTER_IN_KRB5_AP_REQ
   KRB5_VERIFY_CHECKSUM_ARGS
  • Также проверим что поддерживается LDAP
# smbd -b | grep LDAP

   HAVE_LDAP_H
   HAVE_LDAP
   HAVE_LDAP_ADD_RESULT_ENTRY
   HAVE_LDAP_DN2AD_CANONICAL
   HAVE_LDAP_INIT
   HAVE_LDAP_INITIALIZE
   HAVE_LDAP_SET_REBIND_PROC
   HAVE_LIBLDAP
   LDAP_SET_REBIND_PROC_ARGS
  • Для корректной работы Samba в домене Windows 2003 нужны версии MIT Kerberos version >=1.3.1. Проверим:
# dpkg -l | grep krb

ii  krb5-config    1.22                       Configuration files for Kerberos Version 5
ii  libkrb53       1.6.dfsg.4~beta1-5lenny1   MIT Kerberos runtime libraries
  • Для корректной работы с Windows 2008 серверами сама Samba должна быть достаточно свежая:
# smbd -V

Version 3.2.5

Установка Samba

  • Устанавливаем сервер и клиент samba.
# apt-get install samba samba-client krb5-config

При настройке krb5-config лучше указывать IP адреса контроллеров домена, а не их DNS имена.

Настройка Samba

  • Для подключения к домену Active Directory удобно использовать утилиту Likewise-Open.
  • Для администрирования Samba удобно использовать SWAT или webmin, которые предоставляют веб интерфейс. Попасть на него можно по адресу http://server_address:901 и https://server_address:10000 соответственно, указав для соединения пользователя root. Но будьте осторожны — он полностью переписывает smb.conf и некоторые параметры может просто игнорировать. Лучше предварительно сделать резервную копию файла. Я сначала использовал SWAT, а затем дорабатывал конфигурационный файл /etc/samba/smb.conf руками. Вот, что осталось у меня не закоментированным (принтеры к этому серверу не подключены):
[global]
        unix charset = LOCALE
        realm = WORKGROUP.DOMAIN.LOCAL
        server string = Storage samba server
        interfaces = eth0
        bind interfaces only = Yes
        security = ADS
        obey pam restrictions = Yes
        passdb backend = tdbsam
        passwd program = /usr/bin/passwd %u
        passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* .
        log level = 3
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 100
        name resolve order = lmhosts host wins bcast
        printcap name = CUPS
        local master = No
        domain master = No
        dns proxy = No        
        ldap ssl = no
        panic action = /usr/share/samba/panic-action %d
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        template shell = /bin/bash
        invalid users = root

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers

[distrib]
        path = /data/distrib
        valid users = @WORKGROUPDistribGroup
        write list = @WORKGROUPDistribGroup
        read only = No
        create mask = 0777
        directory mask = 0777

[backup]
        path = /data/backup
        valid users = @WORKGROUPBackupGroup
        write list = @WORKGROUPBackupGroup
        read only = No
        create mask = 0777
        directory mask = 0777

Мы описали два общих каталога:

  • backup — доступ имеют только пользователи входящие в группу BackupGroup в Active Directory. Они могут создавать и удалять файлы/каталоги
  • distrib — доступ имеют все пользователи входящие в группу DistribGroup в Active Directory

В приведённой конфигурации подразумевается, что eth0 — это сетевой интерфейс в локальную сеть, где домен имеет полное имя WORKGROUP.DOMAIN.LOCAL

  • редактируем /etc/nsswitch:
passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

hosts:          files dns wins
networks:       files dns

protocols:      files
services:       files
ethers:         files
rpc:            files

netgroup:       files
  • Проверим, что в /etc/hosts есть корректная запись для нашего сервера, также можно добавить записи для контроллеров доменов:
10.0.0.15      storage.domain.local storage
10.0.0.85      dcwg1.domain.local dcwg1
10.0.0.245     dcwg2.domain.local dcwg2
  • Удаляем если есть (или переносим в резервные копии) файл /etc/samba/secrets.tdb и все файлы из /var/lib/samba/*.tdb
  • Проверяем конфигурацию (не обязательно):
  1. testparm -s

В Ubunto testparm находится в пакете samba-common-bin

  • Проверим как Samba-3 winbind общается с контроллером домена Active Directory посредством протокола Kerberos:
# net ads info

LDAP server: 10.0.0.85
LDAP server name: dcwg1.workgroup.domain.local
Realm: WORKGROUP.DOMAIN.LOCAL
Bind Path: dc=WORKGROUP,dc=DOMAIN,dc=LOCAL
LDAP port: 389
Server time: Срд, 03 Мар 2010 13:12:14 NOVT
KDC server: 10.0.0.85
Server time offset: -5

На рассхождение времени в секундах указывает строка «Server time offset: -5». Обратите внимание, что протокол Kerberos зависим от времени, и расхождение с часами контроллера домена допускается лишь незначительное, поэтому желательно настроить NTP клиент (см. статьи по настройке NTP). В Ubuntu это указывается в файле /etc/default/ntpdate:

NTPSERVERS="10.0.0.85 10.0.0.245"
  • В Debian (и его сыновьях, таких как Ubuntu и внуках вроде Linux Mint) при установке пакета krb5-cofig сразу предлагается его настройка. Лучше всего попробовать работать с этими настройками, но если ничего предложено не было или мы хотим что-то изменить, то редактируем /etc/krb5.conf (я для более стабильной работы использовал ip адреса вместо имён серверов):
[libdefaults]
        default_realm = WORKGROUP.DOMAIN.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
#
#...
#
# The following libdefaults parameters are only for Heimdal Kerberos.
        v4_instance_resolve = false
        v4_name_convert = {
                host = {
                        rcmd = host
                        ftp = ftp
                }
                plain = {
                        something = something-else
                }
        }
        fcc-mit-ticketflags = true

[realms]
        WORKGROUP.DOMAIN.LOCAL = {
                kdc = 10.0.0.85
                kdc = 10.0.0.245
                admin_server = 10.0.0.85
        }
#
#...
#
[login]
        krb4_convert = true
        krb4_get_tickets = false
  • Проверим работает ли Kerberos, постараемся получить билет и просмотреть его:
# kinit administrator@WORKGROUP.DOMAIN.LOCAL
Password for administrator@WORKGROUP.DOMAIN.LOCAL:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@WORKGROUP.DOMAIN.LOCAL

Valid starting     Expires            Service principal
03/06/10 14:51:41  03/07/10 00:51:47  krbtgt/WORKGROUP.DOMAIN.LOCAL@WORKGROUP.DOMAIN.LOCAL
        renew until 03/07/10 14:51:41
  • Удалим полученный билет:
# kdestroy
  • Присоединяемся к домену:
# net ads join -UAdministrator

Administrator's password:
Using short domain name -- WORKGROUP
Joined 'STORAGE' to realm 'WORKGROUP.DOMAIN.LOCAL'

Всё, компьютер включен в домен, что можно проверить на контроллере. Даже если после приведённых строк получили следующие:

[2010/03/06 15:04:00,  0] libads/kerberos.c:332(ads_kinit_password)
  kerberos_kinit_password STORAGE$@WORKGROUP.DOMAIN.LOCAL failed: Client not found in Kerberos database DNS update failed!

Проверка работы и отладка

  • Для удобства отладки сделаем ссылку на каталог журналов:
# ln -s /var/log/samba /etc/samba/log
  • Запускаем samba и winbind:
# /etc/init.d/samba start
# /etc/init.d/winbind start
  • Для проверки правильно ли подключение к домену можно посмотреть список пользователей и групп домена (не обязательно):
# wbinfo -u
# wbinfo -g

Если нас не понимают, то подсказываем пароль для wbinfo и смотрим: список доменов в сети, информацию о домене WORKGROUP, список пользователей и групп домена:

# wbinfo --set-auth-user=root%root_password
# wbinfo --all-domains
# wbinfo -D WORKGROUP
# wbinfo -t
  • Проверяем, как работает NSS. Команда getent показывает инфо о пользователе, который может быть как в домене, так и юниксовый:
# getent passwd | grep pm
pm:x:15000:15000::/home/WORKGROUP/pm:/bin/false

# getent passwd | grep pavel
pavel:x:500:500:Pavel Malahov:/home/pavel:/bin/bash
  • Теперь можно использовать ресурсы на линукс-сервере, на которые мы дали доступ, как обычные доменные ресурсы.

Дополнительная настройка

  • Можно также сопоставить (но это не обязательно) локальные учётные данные и из домена Windows. Для сопоставления пользователей редактируем файл /etc/samba/smbusers.conf:
root = admin administrator
  • для сопоставления (мапирования от англ. Map) групп домена и групп UNIX выполняем:
# net groupmap modify ntgroup="Domain Admins" unixgroup=root
# net groupmap modify ntgroup="Domain Users" unixgroup=users
# net groupmap modify ntgroup="Domain Guests" unixgroup=nobody
  • После того как всё отлажено, можно понизить уровень записи в журнал до «1». В /etc/samba/smb.conf:
log level = 1

Доступ к Samba из Windows 7 и 2008 r2

Начиная с этих версий параметры авторизации у MS поменялись. Скорее всего Samba вскоре это учтёт, а пока подружить системы можно изменив на Win7 свойства сетевой безопасности:

Пуск — Панель управления — Администрирование — Локальная политика безопасности — Локальные политики — Параметры безопасности

  • Сетевая безопасность: минимальная сеансовая безопасность для клиентов на базе NTLM SSP — убрать галочку с «Требовать 128-битное шифрование». Таких параметра два — выполнить для обоих
  • Сетевая безопасность: уровень проверки подлинности LAN Manager — выбрать в списке пункт «Отправлять LM- и NTML-ответы»

Работа над ошибками

Winbind не запускается

При запуске Samba обнаруживаем, что winbind не запустился:

# /etc/init.d/winbind status
 * winbind is not running

В журнале log.winbindd обнаруживаем запись:

[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain BUILTIN  S-1-5-32
[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain STORAGE  S-1-5-21-3963871611-1338977097-196861091
[2010/03/06 13:54:34,  0] winbindd/winbindd_util.c:782(init_domain_list)
  Could not fetch our SID - did we join?
[2010/03/06 13:54:34,  0] winbindd/winbindd.c:1385(main)
  unable to initialize domain list

Видим, что добавлен «встроенный домен» (BUILTIN) и домен «название компьютера» (STORAGE), подключиться к домену AD не удалось.

Решение: Переподключить компьютер в домен. Удалять придётся с самого контроллера, т.к. комадна net ads leave скорее всего не поможет.

Ошибка получения билета Kerberos

При попытке получить билет Kerberos получили:

kinit: KDC reply did not match expectations while getting initial credentials

Решение: указать имя домена в другом регистре. Скорее всего нужны все заглавные

Полезная ссылка: http://subscribe.ru/archive/comp.soft.win.linuxsa/200510/19115643.html

Полезные комманды

$ smbclient -N -L 10.0.0.117 показывает ресурсы компьютера с адресом 10.0.0.117
$ smbclient //10.0.0.117/common Вход в расшаренную директорию. Пользователь unix от которого выполняется команда должен быть зарегистрирован в домене.
# net ads join -U pavel -d 3 Добавить в домен пользователя pavel
# winbindd -d 3 -i Режим отладки (-d), winbindd запускается не как демон (-i)
# wbinfo -a mydomain\myuser%mypasswd авторизируемся в домене (через winbindd, wbinfo входит в этот пакет)
# ldapsearch запросы к LDAP серверу, в нашем случае к MS Active Directory
# tdbdump /etc/samba/secrets.tdb просмотреть содержимое файла *.tdb

См. также

  • Статья Samba даёт краткий общий обзор пакета Samba утилит для него, а также описывает простой (без авторизации в домене) способ предоставления каталогов в общий доступ.

Cсылки

  • http://linux.yaroslavl.ru//docs/serv/samba/samba-win2000.html — Samba и доменная аутентификация Windows2000
  • http://us6.samba.org/samba/docs/man/Samba-Guide/unixclients.html#adssdm- Active Directory Domain with Samba Domain Member Server — подробная инструкция как подключить Linux сервер с помощью Samba 3 к домену под управлением AD Windows 2003.
  • http://us6.samba.org/samba/docs/man/Samba-Guide/kerberos.html#id397375 — пример настройки доступа для пользователей Active Directory
  • Samba-HOWTO-Collection.pdf, стр.54-57 (поставляется с исходниками) или
  • http://jcifs.samba.org/ntstatus.txt — описание статусов
48px-Mail-mark-junk red.svg.png
Эта статья протухла.
Её нужно существенно доработать или удалить

Ввод в домен на базе Win 2003 рабочей станции под управлением Simply Linux

Задача

Ввести в домен на базе Winows Server 2003 машину под управлением Simply Linux.

Дано

  1. Windows Server 2003;
  2. Simply Linux (обновленный до бранча 5.1);
  3. Права администратора домена OFFICE.DOMEN.LOCAL (имя вашего домена).

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

samba-swat
samba-client
samba-winbind
krb5-kinit
libkrb5
ntpdate
pam_mount

Настраиваем сетевое соединение

Необходимо добиться резолва имен ваших машин в сети. Например, имя контроллера домена — DC3.OFFICE.DOMEN.LOCAL, а его ip-адрес — 192.168.10.11. Он же является DNS- и WINS-сервером в сети.

Проверяем его доступность по ip-адресу:

ping 192.168.10.11
PING 192.168.10.11 (192.168.10.11) 56(84) bytes of data. 
64 bytes from 192.168.10.11: icmp_seq=1 ttl=128 time=0.138 ms
64 bytes from 192.168.10.11: icmp_seq=2 ttl=128 time=0.217 ms

Проверяем его доступность по имени узла:

ping DC3 
ping: unknown host DC3 

Для того, чтобы узел отвечал по имени, необходимо указать домен поиска OFFICE.DOMEN.LOCAL. В Центре Управления Системой это указывается в настройках сетевого интерфейса в поле Домены поиска. Не забываем нажать Применить.

Проверяем его доступность по имени узла:

ping DC3
PING DC3.office.domen.local (192.168.10.11) 56(84) bytes of data.
64 bytes from dc3.office.domen.local (192.168.10.11): icmp_seq=1 ttl=128 time=0.137 ms
64 bytes from dc3.office.domen.local (192.168.10.11): icmp_seq=2 ttl=128 time=0.147 ms

В файл /etc/hosts добавляем запись о нашей машине:

127.0.0.1	localhost.localdomain localhost
127.0.0.1	wslinux.office.domen.local wslinux

По имени DC3 узел отвечает, но вот если попробовать его пинговать, указав полное имя домена DC3.OFFICE.DOMEN.LOCAL — получим ошибку:

ping DC3.OFFICE.DOMEN.LOCAL
ping: unknown host DC3.OFFICE.DOMEN.LOCAL

И соответственно в домен машину мы ввести не сможем. Ищем файл /etc/nsswitch.conf, в нем строку с hosts:

У по умолчанию она имеет вид:

hosts:      files nisplus nis mdns4_minimal [NOTFOUND=return] dns mdns4 fallback

И приводим ее к такому виду:

hosts:      files dns nisplus nis mdns4_minimal [NOTFOUND=return] mdns4 fallback

Сохраняем изменения и проверяем:

ping DC3.OFFICE.DOMEN.LOCAL 
PING DC3.OFFICE.DOMEN.LOCAL (192.168.10.11) 56(84) bytes of data. 
64 bytes from dc3.office.domen.local (192.168.10.11): icmp_seq=1 ttl=128 time=0.201 ms 
64 bytes from dc3.office.domen.local (192.168.10.11): icmp_seq=2 ttl=128 time=0.133 ms 

Настраиваем сервисы самбы

Теперь необходимо включить в автозапуск необходимые службы. Выполним следующие команды от рута:

# chkconfig --list | grep smb 
smb            	0:off	1:off	2:off 	3:off 	4:off 	5:off 	6:off

Смотрим, на каких уровнях запускается самба, если ничего не задано — включаем нужные уровни:

# chkconfig --levels 2345 smb on

Проверяем:

# chkconfig --list | grep smb 
smb            	0:off	1:off	2:on	3:on	4:on	5:on	6:off

Делаем то же самое для winbind:

# chkconfig --list | grep winbind 
winbind            	0:off	1:off	2:off 	3:off 	4:off 	5:off 	6:off
# chkconfig --levels 2345 winbind on

Запускаем сервис самба:

# service smb start

Чтобы сервис swat запускался автоматически: в файле /etc/xinetd.d/swat меняем значение disable с yes на no и перезапускаем службу:

# service xinetd restart

Запускаем swat в браузере: http://localhost:901 (либо же правим /etc/samba/smb.conf соотвественно)

Во вкладке GLOBALS ставим следующие значения:

Workgroup = OFFICE (указываем первую часть имени домена)
Realm = OFFICE.DOMEN.LOCAL (полное имя домена)
Netbios name = WSLINUX (netbios имя нашего компьютера)
Security = ads (это режим domain member)

Подтверждаем изменения нажав кнопку commit changes наверху страницы. И последние значения настраиваем, переключившись в режим advanced view (сложный):

#  ip-адрес контроллера домена (в новой версии при Security = ads строку Password server требуется замаскировать)
Password server = 192.168.10.11
# Диапазоны идентификаторов для виртуальных пользователей и групп.
idmap uid = 10000 - 40000
idmap gid = 10000 - 40000
winbind enum users = yes
winbind enum groups = yes
# Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп
# будут использоваться с доменом, т.е. вместо username - DOMAINusername. 
winbind use default domain = yes
# Если вы хотите разрещить использовать командную строку для пользователей домена, то
# добавьте следующую строку, иначе в качестве shell'а будет вызываться /bin/false
template shell = /bin/bash
# Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку
winbind refresh tickets = yes

Снова подтверждаем изменения (сохранить изменения). Далее во вкладке STATUS запускаем или перезапускаем службы, Restart All (замечу что winbindd на этом этапе еще не работает).

Настраиваем синхронизацию времени с нашим контроллером домена

Проверяем уровни запуска службы:

# chkconfig --list | grep ntpd 
ntpd           	0:off	1:off	2:off	3:off	4:off	5:off	6:off

Задаем необходимые:

# chkconfig --levels 345 ntpd  on

Добавляем в конфигурационный файл /etc/ntpd.conf запись о сервере времени для синхронизации, все остальное комментируем:

#servers pool.ntp.org
servers 192.168.10.11

Запускаем синхронизацию времени:

# ntpdate 192.168.10.11
17 Aug 11:03:44 ntpdate[14747]: step time server 192.168.10.11 offset 82.524429 sec

И только после этого запускаем службу:

# service ntpd start

Настраиваем службу аутентификации для получения билетов Kerberos

Для того что бы Kerberos производил аутентификацию на контролере домена, а не на локальной машине, правим /etc/krb5.conf. Приводим его к виду (обратите внимание на регистр, где заглавными, так и должно быть):

[libdefaults]
default_realm = OFFICE.DOMEN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
OFFICE.DOMEN.LOCAL = {
kdc = 192.168.10.11
}

[domain_realm]
.office.domen.local = OFFICE.DOMEN.LOCAL
office.domen.local = OFFICE.DOMEN.LOCAL

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
NB: При отсутствии параметра admin_server, у пользователя будет отсутствовать возможность сменить свой пароль средствами Kerberos —solo 14:03, 2 ноября 2012 (MSK)

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

# kinit admin@OFFICE.DOMEN.LOCAL 
Password for mad_max@OFFICE.DOMEN.LOCAL:

где admin — имя доменного админа, а OFFICE.DOMEN.LOCAL — имя вашего домена (именно заглавными).

Если все прошло хорошо, в ответ на этот запрос вы ответа не получите.

Проверяем наличие билета командой klist, вывод должен быть примерно такой:

# klist 
Ticket cache: FILE:/tmp/krb5cc_0 
Default principal: admin@OFFICE.DOMEN.LOCAL 

Valid starting     Expires            Service principal 
08/17/10 11:11:58  08/17/10 21:12:04  krbtgt/OFFICE.DOMEN.LOCAL@OFFICE.DOMEN.LOCAL 
	renew until 08/18/10 11:11:58 

Правим /etc/nsswitch.conf примерно до такого вида:

passwd: files winbind
shadow: tcb files winbind
group: files winbind
gshadow:    files

Чтобы изменения в конфиге /etc/nsswitch.conf вступили в силу без перезагрузки, нужно от рута дать команду:

# ldconfig

Вводим в домен

Для ввода в домен необходимо дать команду:

# net ads join -U admin
admin's password:
Using short domain name -- OFFICE
Joined 'WSLINUX' to realm 'OFFICE.DOMEN.LOCAL'

где admin — имя доменного админа, а admin’s password — пароль доменного админа.

NB: Для корректного ввода в домен может потребоваться предварительный останов демонов smb и winbind —solo 14:12, 2 ноября 2012 (MSK)

Проверить, что мы вошли в домен можно командой wbinfo -u (велика вероятность, что она отработает только после перезагрузки компьютера):

$ wbinfo -u 
OFFICEгость 
OFFICEадминистратор 
OFFICEuser1 
OFFICEuser2 
…

Для того, чтобы в нашу систему можно было логиниться под доменными аккаунтами и авторизация шла через winbind, необходимо оставить /etc/pam.d/gdm или /etc/pam.d/lightdm в прежнем виде:

#%PAM-1.0
auth            required        pam_shells.so
auth            required        pam_succeed_if.so quiet uid ne 0
auth            sufficient      pam_succeed_if.so user ingroup nopasswdlogin
auth            substack        common-login
auth            optional        pam_gnome_keyring.so
account         include         common-login
password        include         common-login
session         substack        common-login
session         optional        pam_console.so
-session        optional        pam_ck_connector.so
session         required        pam_namespace.so
session         optional        pam_gnome_keyring.so auto_start

(Для KDE4 это файл /etc/pam.d/kde4)

А /etc/pam.d/system-auth-winbind к виду (если его нет, то создать):

#%PAM-1.0
auth            [success=2 default=ignore]      pam_tcb.so shadow fork prefix=$2y$ count=8 nullok
auth            requisite       pam_succeed_if.so uid >= 500 quiet
auth            required        pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE
auth            required        pam_permit.so

account         [success=2 default=ignore]      pam_tcb.so shadow fork
account         requisite       pam_succeed_if.so uid >= 500 quiet
account         required        pam_winbind.so use_first_pass
account         required        pam_permit.so

password        required        pam_passwdqc.so config=/etc/passwdqc.conf
password        [success=2 default=ignore]      pam_tcb.so use_authtok shadow fork prefix=$2y$ count=8 nullok write_to=tcb
password        requisite       pam_succeed_if.so uid >= 500 quiet
password        required        pam_winbind.so

session         [success=2 default=ignore]      pam_tcb.so
session         requisite       pam_succeed_if.so uid >= 500 quiet
session         required        pam_winbind.so
session         required        pam_mktemp.so
session         required        pam_mkhomedir.so silent
session         required        pam_limits.so

И /etc/pam.d/system-auth-use_first_pass-winbind к виду(если его нет, то создать):

#%PAM-1.0
auth            [success=2 default=ignore]      pam_tcb.so shadow fork prefix=$2y$ count=8 nullok use_first_pass
auth            requisite       pam_succeed_if.so uid >= 500 quiet
auth            required        pam_winbind.so use_first_pass
auth            required        pam_permit.so

password        [success=2 default=ignore]      pam_tcb.so use_authtok shadow fork prefix=$2y$ count=8 nullok write_to=tcb
password        requisite       pam_succeed_if.so uid >= 500 quiet
password        required        pam_winbind.so use_authtok
password        required        pam_permit.so

Не забываем переключить авторизацию на winbind

(Внимание! Восле такой манипуляции на KDesktop 6 пропадает возможность залогиниться вообще, поэтому я решил сделать обход — см.Примечание —Tora-bora 19:02, 19 октября 2012 (MSD))
# control system-auth winbind

С такими конфигами будет работать авторизация из gdm, gnome-screensaver, ssh.

Перезагружаемся и можем логинится как локальными пользователями системы, так и доменными. Но стоить помнить один ньюанс. Если логин вашего локального пользователя совпадает с доменным, то будет попытка входа только локальным пользователем.

Добавляем пользователей с административными привилегиям (sudo)

Разрешаем всем вызывать sudo:

# control sudo public

Разрешаем группе администраторов LinuxAdmins (должна быть создана) повышать свои привилегии без запроса пароля:

# echo '%OFFICE\LinuxAdmins ALL= NOPASSWD : ALL' >> /etc/sudoers

Настраиваем автомонтирование сетевых ресурсов

Устанавливаем smbnetfs, samba, samba-client, fuse-smb.

Создаем /etc/fuse.conf и добавляем запись:

user_allow_other (не забываем нажимать enter после строчки)

Добавляем в /etc/modules запись:

fusermount public (не забываем нажимать enter после строчки)

Копируем /usr/share/doc/smbnetfs/smbnetfs.conf в /home/%username%/.smb/

Копируем /etc/samba/smb.conf в /home/%username%/.smb/

Добавляем пользователя в группу fuse.

Создаем в домашнем каталоге каталог (например) /home/%username%/net

Создаем скрипт запуска в удобном для нас месте (например) /home/%username%/.smb/net со следующим содержанием:

#!/bin/sh
smbnetfs /home/%username%/net

Делаем скрипт исполняемым и помещаем в автозапуск, например в .bash_profile.

Библиография

Инструкция составлена с применением следующих ресурсов:

  • http://privats.ru/2009/08/integraciya-linux-centos-v-active-directory-part-1.html
  • https://docs.altlinux.org/ru-RU/archive/2.2/html-single/master/admin-html/ch12s07.html
  • http://team.ru/soft/altlinux_domen.shtml
  • http://forum.altlinux.org/index.php?topic=376.0
  • http://help.ubuntu.ru/wiki/ввод_в_домен_windows

Примечание

KDesktop

На KDesktop мне не удалось настроить вход в домен AD используя

# control system-auth winbind

Взамен этого можно сделать некоторые ручные манипуляции

  • делаем ссылку system-auth указывающую на system-auth-winbind
  • делаем ссылку system-auth-use_first_pass указывающую на system-auth-use_first_pass-winbind
  • файл /etc/pam.d/kde4 приводим к виду:
#%PAM-1.0
auth    required        pam_group.so
auth     include        system-auth-winbind
auth     required       pam_nologin.so
account  include        system-auth-winbind
password include        system-auth-winbind
session  include        system-auth-winbind
  • файл /etc/pam.d/kde4-kscreensaver приводим к виду:
#%PAM-1.0
auth     required       pam_securetty.so
auth     required       pam_nologin.so
auth     sufficient     pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login
auth     sufficient     pam_tcb.so shadow fork prefix=$2a$ count=8 nullok use_first_pass

Доступ к локальным группам

Внимание! Указанное ниже является не полностью безопасным решением, применяйте, если понимаете риск.

Чтобы все доменные пользователи были включены в определенные локальные группы (могли переключаться в root, запускать VirtualBOX и проч.) нужно добавить в /etc/security/group.conf

*;*;*;Al0000-2400;wheel,audio,cdrom,cdwriter,vboxusers,scanner
  • первая звездочка — «все сервисы», они же — пути авторизации (например, xdm, kdm, su, ssh и т.д. и т.п.)
  • вторая звездочка — «все tty».
  • третья звездочка — «все пользователи». Тут можно сделать вышеупомянутое перечисление, через запятую.
  • четвертое поле — это время. Здесь — «круглосуточно»
  • пятое поле — в какие, собственно группы надо включить пользователя.

И включить строку

 auth    required        pam_group.so

в конф. файл входа в систему( для KDE это /etc/pam.d/kde4)

Переустановка

После переустановки системы (при сохранении раздела /home) необходимо выставить владельца домашнего каталога доменного пользователя (владелец меняется)

chown -R ivanov /home/DOMAIN/ivanov/

Смена имени хоста

Если нужно сменить имя хоста, править HOSTNAME в файле /etc/sysconfig/network

Два IP-адреса

Замечены проблемы со входом доменного пользователя при наличии двух IP-адресов. На этапе первого входа пользователя лучше от второго IP временно отказаться.

Дополнения

  • В случае появления ошибки ERROR_DNS_GSS_ERROR, удалите пакет hostname-hook-hosts и удалите из /etc/hosts строку определения
127.0.0.1 <имя хоста>...

Настройка LightDM

В /etc/lightdm/lightdm.conf раскомментируйте строку в группе [SeatDefaults]:

greeter-hide-users=true

Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.

Также полезно выключить выбор языка. В файле /etc/lightdm/lightdm-gtk-greeter.conf в группе [greeter] укажите

show-language-selector=false

В новых версиях lightdm-gtk-greeter можно указать кнопки явно:

show-indicators=a11y;power

Полный перечень доступных кнопок:

show-indicators=a11y;power;session;language

Ссылки

  • Ввод компьютера в домен Windows (под Ubuntu)
  • Отладка аутентификации
  • https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto
Рубрика:

Администрирование / 
Администрирование

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+

Мирослав Бусалов

Как подружить Linux с доменом Active Directory

Windows или Linux? Наверное, нет ни одного системного администратора, который не задумывался бы над этим вопросом. О плюсах и минусах операционных систем Open Source и продуктов Microsoft написаны гигабайты текстов, ожесточенные споры не утихают уже много лет. Наблюдая за этими баталиями, хочется лишь одного – гармонии.

Предположим следующую ситуацию. Часть сотрудников вашей компании выполняет только рутинные операции в одном-двух бизнес-приложениях, используя браузер. И операционная система для них значения не имеет. Исходя из экономической целесообразности, нет смысла ставить на такие рабочие станции Windows.

Или другой пример – есть отдел разработчиков под UNIX, которым удобнее и комфортнее использовать на рабочей станции Linux. Как можно заметить, причины внедрения Linux-десктопов в организации могут быть различные. При этом в вашей организации есть домен Active Directory, все пользователи имеют свои учетные записи, собственные папки на файловом сервере и разные права на свои рабочие станции. Подобные удобства всем хотелось бы сохранить и на рабочих станциях под Linux, особенно системному администратору, поскольку централизованная авторизация и хранение данных пользователей на сервере уменьшают его головную боль.

Статья представляет собой пошаговое руководство, как «подружить» рабочие станции Linux с доменом Active Directory.

Начальные условия

Домен Active Directory под управлением одного или более контроллеров домена на базе Windows Server 2003; в качестве Linux-десктопа используется Kubuntu 7.10

Цели

  • Обеспечить единую аутентификацию пользователей.
  • Обеспечить авторизацию пользователей в домене Active Directory.
  • Обеспечить прозрачную и сквозную авторизацию на ресурсах сети (SSO – Single Sign-On).
  • Обеспечить хранение пользовательских данных на сервере.

Про последний пункт хотелось бы сказать следующее: в данном примере в качестве файлового сервера используется Windows-сервер. Поэтому речь идет только о хранении данных пользователей. Сохранять профиль UNIX-пользователя на сервере не представляется возможным, так как в качестве Linux-десктопа используется Kubuntu 7.10 со встроенным экранным менеджером KDE. В процессе создания профиля пользователя KDE создает символьные ссылки (symlink), которые необходимы для корректной работы. Естественно, что создать symlink в файловой системе NTFS на Windows Server 2003 не получится.

Используемые обозначения

  • domain.ru – полное имя домена Active Directory;
  • dc.domain.ru – полное имя контроллера домена;
  • fileserver.domain.ru – полное имя файлового сервера.

Условно всю работу можно разделить на следующие этапы:

  • Модернизация схемы Active Directory.
  • Настройка атрибутов будущих UNIX-пользователей и групп.
  • Настройка рабочей станции с Kubuntu.
  • Настройка ресурсов сети (веб-серверов, службы ssh и т. д.) для обеспечения прозрачной и сквозной авторизации пользователей.

Модернизация схемы Active Directory

В классической схеме AD невозможно хранить атрибуты UNIX-пользователей, такие как UID, GID, Login Shell, Home Directory. Поэтому схему необходимо расширить, добавив в нее возможность хранения нужных нам сведений. Для этого существует два варианта: первый – это бесплатный пакет Microsoft под названием Windows Services for UNIX 3.5 (SFU), второй – это использование последней версии семейства серверов 2003 – Windows Server 2003 R2. Мы будем использовать второй вариант. Если ваши контроллеры домена и файловые серверы уже работают под релизом R2, можно смело пропустить несколько абзацев, касающихся обновления стандартного Windows Server 2003 до R2.

Windows Server 2003 R2 – версия Windows Server 2003, имеющая встроенные компоненты Windows Services for UNIX (SFU), необходимые нам при создании гетерогенной среды для хранения атрибутов UNIX-пользователей в схеме Active Directory. Релиз R2 включает в себя два важных компонента:

  • Subsystem for UNIX-based Applications (SUA);
  • Identity Management for UNIX (IMU).

SUA помогает UNIX-приложениям работать под Windows так, как будто они работают в Linux или UNIX. Это выходит за рамки нашей статьи, поэтому мы сфокусируем внимание на компоненте IMU, которая содержит нужные в дальнейшем службы – Administration Components, Password Synchronization, Server for NIS, их установку мы сейчас и рассмотрим.

Необходимо отметить, что возможно два сценария обновления, в зависимости от того, установлен у вас пакет SFU или нет. Мы будем рассматривать вариант, при котором SFU не установлен. В противном случае рекомендую посетить англоязычный ресурс http://www.winlinanswers.com/book/resources.php?id=5, где вы найдете полное описание варианта обновления до R2 с установленным SFU.

Вставив CD#2 с дистрибутивом Windows Server 2003 R2 и согласившись на продолжение установки, вы увидите сообщение об ошибке с описанием, что установка не может быть продолжена, поскольку версия схемы данного домена не совместима с R2. Поэтому сначала необходимо выполнить следующую команду:

X:CMPNENTSR2ADPREPadprep.exe /forestprep

где X – буква, соответствующая CD с дистрибутивом. После чего можно начать установку компонентов R2, выполнив файл R2auto.exe из корневой директории CD.

После установки компонентов R2 нужно в панели управления в разделе установки и удаления программ выбрать пункт «Windows Components», затем найти строчку «Active Directory Services» и в детализации выбрать установку «Identity Management for UNIX».

После завершения установки необходимо будет перезагрузить сервер.

Настройка атрибутов будущих UNIX-пользователей и групп

Откройте оснастку Active Directory User and Computers и вызовите свойства любого пользователя. Появилась новая закладка UNIX Attributes, в которой возможно назначить свойства UNIX-пользователя (см. рисунок). Для начала нам нужно создать несколько UNIX-групп, которые пригодятся нам в дальнейшем.

Свойства UNIX-пользователя - UNIX attributes

Свойства UNIX-пользователя — UNIX attributes

Создайте группу UNIXusers – это будет группа по умолчанию для всех UNIX-пользователей. Для этого создайте обычным способом группу нужного вам вида (Domain Local или Global), затем откройте свойства данной группы и перейдите на вкладку «UNIX Attributes». В строке «NIS Domain» выберите ваш домен, после чего группе автоматически будет присвоен GID. Если он не устраивает вас по какой-то причине, можете прописать новый идентификатор вручную. При создании следующих групп GID будет автоматически увеличиваться на единицу.

Аналогичным способом создайте группу UNIXadmins, которая затем будет указана в настройках конфигурационного файла /etc/sudoers как группа, членам которой разрешено выполнять sudo на рабочих станциях с Kubuntu.

Создайте еще одну группу и назовите ее audio, присвоив ей вручную GID 29. Дело в том, что в Linux есть одна особенность – файлы аудиоустройств, как правило, имеют общую группу таким образом, что возможность работы с аудио доступна только владельцам файлов и членам этой группы. В эту группу потом добавим всех пользователей, чтобы у них была возможность использовать наушники и микрофон.

Теперь выберите одного из тех пользователей вашего домена, которому вы хотите присвоить UNIX-атрибуты. В свойствах откройте вкладку «UNIX Attributes», так же как и для группы, выберите имя вашего домена в строке «NIS Domain», и в строке «Primary group name/GID» выберите группу по умолчанию UNIXusers.

Если необходимо по каким-то причинам изменить параметры Login Shell и Home Directory, можно это сделать. UID присвоится автоматически, но при желании можно прописать его вручную.

После присвоения UNIX-атрибутов всем нуждающимся в них пользователям вернемся к группам. Открыв свойства группы UNIXusers, на вкладке «UNIX Attributes» нажмите кнопку «Add» и добавьте туда всех пользователей.

Аналогично поступим с группой audio, а в группу UNIXadmins внесем только тех пользователей, кому разрешено выполнение sudo на рабочих станциях.

Теперь остается только создать нового пользователя, например unixldap, и присвоить ему соответствующие атрибуты. Учетная запись этого пользователя будет использоваться при регистрации и поиске в LDAP с Linux-десктопа, поэтому её необходимо максимально ограничить в правах, допустим, явно запретив доступ ко всем ресурсам файлового сервера и т. д.

На этом работы с оснасткой «Active Directory User and Computers» закончены.

Немного о настройке файлового сервера для работы с UNIX-клиентами

В данном примере монтирование домашних каталогов пользователей осуществляется с использованием CIFS (Common Internet File System).

Если для каких-нибудь задач вам потребуется работа с NFS (Network File System), то для обеспечения доступа к файловым ресурсам вашего Windows-сервера с Linux-десктопов необходимо будет установить на сервер пакет Microsoft Services for NFS. Привожу краткое руководство, как это сделать.

Зайдите в панель управления, затем в разделе установки и удаления программ выберите пункт «Windows Components», там войдите в «Other Network File and Print Services» и в детализации выберите установку «Microsoft Services for NFS». Из данного пакета необязательными к установке являются два последние пункта: Server for NFS Authentication и User Name Mapping. После установки данных служб пользователи с рабочих станций под управлением Linux получат доступ к файловым ресурсам данного сервера, используя NFS.

Настройка рабочей станции с Kubuntu

Теперь приступим к самой большой части работы – настройке Kubuntu. Сначала выполните установку Kubuntu 7.10 на рабочую станцию, после чего установите все необходимые обновления, например, используя встроенный в KDE менеджер обновлений Adept Updater.

Также рекомендуется изменить параметры входа в систему для KDE (в других экранных менеджерах могут быть отличия) – открываем меню «System Settings», переходим на закладку «Advanced», там выбираем «Менеджер входа в систему», и, войдя в административный режим, отключаем опцию «Показывать список» на вкладке «Пользователи». Если этого не сделать, система при входе будет отображать всех UNIX-пользователей вашего домена, что совершенно ни к чему.

Для корректной работы протокола Kerberos, который будет использоваться для аутентификации в нашей гетерогенной среде, крайне важным моментом является синхронизация времени рабочей станции с контроллером домена.

Поэтому первым пунктом настроим синхронизацию времени. Для этого в файле /etc/default/ntpdate внесем следующие изменения:

NTPSERVERS=»dc.domain.ru»

При следующей перезагрузке ПК будет синхронизировать время с контроллером домена, а пока проведем синхронизацию вручную, выполнив следующую команду:

$sudo ntpdate -s dc.domain.ru

Указываем FQDN для настраиваемой рабочей станции в файле /etc/hosts:

127.0.0.1 workstation.domain.ru localhost workstation

Проверьте доступность машины по FQDN командой:

ping workstation.domain.ru –с 4

Теперь необходимо установить и настроить поддержку Kerberos. Устанавливаем нужные пакеты:

$sudo apt-get install krb5-user libpam-krb5 krb5-config libkrb53 krb5-doc

Если система выдала ошибку:

dpkg was interrupted, you must manually run dpkg –-configure –a to correct this problem

последуйте совету подсказки, наберите:

$sudo dpkg –-configure –a

В процессе вас попросят принять решение о замене файла /etc/qt3/qt_plugins_3.3rc – согласитесь с вариантом по умолчанию, оставьте текущую версию без изменений. Данная ошибка иногда проявляется в версии 7.10 после первой установки обновлений.

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

[libdefaults]

 default_realm = DOMAIN.RU

# DOMAIN.RU пишется обязательно ЗАГЛАВНЫМИ БУКВАМИ

ticket_lifetime = 24000

# The following krb5.conf variables are only for

# MIT Kerberos

krb4_config = /etc/krb.conf

krb4_realms = /etc/krb.realms

kdc_timesync = 1

ccache_type = 4

forwardable = true

proxiable = true

plain = {

something = something-else

}

}

fcc-mit-ticketflags = true

[realms]

DOMAIN.RU = {

kdc = dc.domain.ru

# kdc – key distribution center – контроллер домена

admin_server = dc.domain.ru

default_domain = domain.ru

}

[domain_realm]

.domain.ru = DOMAIN.RU

domain.ru = DOMAIN.RU

[login]

krb4_convert = true

krb4_get_tickets = false

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log

После настройки Kerberos мы можем проверить его работоспособность следующими командами:

$kinit user@DOMAIN.RU

Командой kinit мы осуществляем запрос на сервер kdc на получение билета. Если система в ответ не выдала ошибок, значит, все в порядке и можно просмотреть билет командой klist:

$klist

Ticket cache: FILE:/tmp/krb5cc_1000

Default principal: user@DOMAIN.RU

Valid starting Expires Service principal

03/15/08 15:15:55 03/15/08 21:55:55 krbtgt/ DOMAIN.RU@DOMAIN.RU 

Удалить билет можно командой kdestroy.

Если при выполнении команды kinit система выдала ошибку, проверьте настройки DNS, большинство проблем возникает именно из-за некорректной работы данной службы.

Далее на очереди установка и настройка поддержки LDAP:

$sudo apt-get install libnss-ldap libpam-ldap

При установке этих модулей вам сразу будет предложено настроить параметры клиента ldap, проигнорируйте это предложение, т.к. этих настроек будет недостаточно для корректной работы и все конфигурационные файлы надо настраивать вручную.

Изменяем файл /etc/ldap.conf:

# LDAP Defaults

# See ldap.conf(5) for details

# This file should be world readable but not world writable

uri ldap://dc.domain.ru

base       dc=domain,dc=ru

ldap_version 3

scope sub

# Следующие две строки содержат реквизиты учетной записи

# unixldap, необходимые для доступа к схеме AD

binddn cn=unixldap,cn=Users,dc=domain,dc=ru

bindpw     password

bind_timelimit 2

bind_policy soft

# bind_policy soft указывает, что при неудачном подключении

# к LDAP не пытаться переподключиться при отсутствии

# данной строки система не сможет загрузиться

idle_timelimit 2

# PAM options with group-based access configuration:

pam_filter objectClass=posixAccount

pam_login_attribute uid

# nsswitch.conf options:

nss_base_password cn=Users,dc=domain,dc=ru?sub

nss_base_group   cn=Users,dc=domain,dc=ru?sub

# Далее прописываем mapping POSIX атрибутов,

# т.к. в схему AD они не добавляются

nss_map_objectclass posixAccount User

nss_map_attribute homeDirectory unixHomeDirectory

nss_map_attribute gecos cn

nss_map_objectclass posixGroup Group

ssl no

 # sudo options:

sudoers_base cn=UNIXadmins,cn=Users,dc=domain,dc=ru

# debug 257

Опцию debug можно будет включить на время отладки, если будут проблемы.

Также необходимо внести изменения в файл /etc/ldap/ldap.conf, который требуется для работы некоторых утилит, например ldapsearch. Это файл может состоять всего из двух строк:

BASE       dc=domain,dc=ru

URI ldap://dc.domain.ru

Пришла очередь установить компоненты, которые позволят монтировать личные папки пользователей, располагающиеся на сервере Windows. Это пакеты smbfs и pam_mount. Первый позволяет понимать windows share, а второй отвечает за автоматический mount/umount при процедурах login/logout. Устанавливаем:

$sudo apt-get install smbfs

А вот установка pam_mount не отличается простотой. Дело в том, что при установке с помощью команды «apt-get install» по умолчанию установится версия 0.18, которая не отличается дружелюбием по отношению к файловой системе cifs (хотя заявлено, что поддерживает), поэтому нам нужно установить более новую версию, например 0.32, а для этого придется обновить много библиотек и установить несколько пакетов. Итак, приступим. Скачайте следующие установочные файлы и установите их именно в такой последовательности:

  • tzdata_2008a-0ubuntu0.7.10_all.deb
  • libc6_2.7-6_i386.deb
  • libhx10_1.10.2-2_i386.deb
  • libssl0.9.8_0.9.8g-4ubuntu1_i386.deb

Теперь привычным способом установим пакет libxml-writer-perl:

$sudo apt-get install libxml-writer-perl

И только после всех описанных манипуляций скачиваем и устанавливаем пакет libpam-mount_0.32-4_i386.deb.

Конфигурационный файл модуля pam_mount называется pam_mount.conf.xml и находится в каталоге /etc/security. Я приведу здесь только измененные части файла, т.к. целиком его приводить смысла не имеет.

Для начала включим отладку:

<debug enable=»1″ />

Ниже перед закомментированным абзацем с описанием mntoptions вставим строчку:

<mntoptions allow=»*» />

И наконец после строки:

<pmvarrun>pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>

вставляем свои строки с указанием следующих опций монтирования:

<volume

       user=»*» 

       invert=»1″

       fstype=»cifs»

       server=»fileserver.domain.ru»

       path=»share/%(USER)»

       options=»iocharset=utf8,dir_mode=0700,file_mode=0600″

       mountpoint=»/home/%(USER)/data»

    />

Получается, что при входе в систему в домашнем каталоге пользователя будет создаваться папка /data, куда будет монтироваться его сетевая папка с сервера (\fileserver.domain.rushareusername).

Следующим шагом позаботимся о корректной работе sudo для соответствующих пользователей. Для этого внесем следующие изменения в файл /etc/sudoers:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%UNIXadmins ALL=(ALL) ALL

И еще изменим файл /etc/pam.d/sudo для корректной работы kdesu (запуск административных приложений в KDE):

#%PAM-1.0

auth       sufficient   pam_krb5.so

auth       sufficient   pam_ldap.so  use_first_pass

auth       sufficient   pam_unix.so  use_first_pass

auth       required     pam_deny.so

#@include common-auth

#@include common-account

Теперь нам предстоит настроить модули PAM (Pluggable Authentication Modules) – подключаемые модули аутентификации. Описание принципов работы и синтаксис оставим за рамками нашей статьи, все интересующиеся без труда найдут его в сети. Изменениям подвергнутся несколько конфигурационных файлов, располагающихся в каталоге /etc/pam.d. Начнем с файла /etc/pam.d/common-account:

#account   required     pam_login_access.so

account    required     pam_ldap.so ignore_authinfo_unavail ignore_unknown_user

account    required     pam_unix.so

Теперь редактируем файл /etc/pam.d/common-auth:

auth       optional     pam_mount.so

auth       sufficient   pam_krb5.so  use_first_pass

auth       sufficient   pam_ldap.so  ignore_authinfo_unavail ignore_unknown_user use_first_pass

auth       required     pam_unix.so nullok_secure

auth       required     pam_deny.so

Следом вносим изменения в файл /etc/pam.d/common-password, который начнет работать только при смене пароля (по истечении срока или при запуске утилиты passwd):

password   sufficient   pam_unix.so  obscure md5

password   sufficient   pam_ldap.so

Переходим к файлу /etc/pam.d/common-session:

session optional pam_mount.so

session          required     pam_unix.so

session          optional     pam_foreground.so

Необходимо отметить, что во всех модулях, использующих библиотеку pam_mount, строчка с описанием ее использования должна быть на первом месте, к сожалению, pam_mount не умеет принимать пароль через опции use_first_pass или try_first_pass, поэтому строка просто не отработает, как следствие, сетевая папка не будет смонтирована.

Необходимо отметить, что указанные конфигурационные файлы работоспособны при осуществлении входа в систему через интерфейс KDE. Для использования консольного входа в систему (а также удаленного входа по ssh) нужно внести некоторые изменения, о которых подробно будет рассказано в описании настроек сетевых сервисов для сквозной авторизации.

На этом настройка модулей PAM завершена. Осталось внести изменения в последний, очень важный конфигурационный файл: /etc/nsswitch.conf:

group: files ldap

hosts: files dns

networks: files

passwd: files ldap

shells: files

sudoers: files ldap

Теперь остается только завершить сеанс и войти в систему под доменным UNIX-пользователем. При неудачной попытке ищите ошибки в log-файлах.

Настройка сетевых сервисов и служб для прозрачной и сквозной авторизации будет рассмотрена в следующий раз.

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+


Введение

Ввод компьютера под управлением Astra Linux в домен Windows Active Directory или в домен Samba может быть выполнен двумя способами:

  1. С использованием инструментария winbind:
    1. графический инструмент fly-admin-ad-client;
    2. инструмент командной строки astra-winbind;
  2. С использованием инструментария sssd:
    1. графический инструмент fly-admin-ad-sssd-client;
    2. инструмент командной строки astra-ad-sssd-client;

Далее рассматривается установка и использование этих инструментов. Рекомендации по выбору одного из двух способов ввода в домен не входят в задачи данной статьи. Дополнительную информацию про winbind и sssd см. Сравнение winbind и sssd.

Операционная система Windows 2003 использует версию v1 протокола SMB (SMBv1) и не поддерживает протоколы SMBv2 выше. В современных обновлениях Astra Linux  использование версии протокола SMBv1 по-умолчанию отключено, так как эта версия устарела и небезопасна. В качестве контроллера домена рекомендуется Windows AD использовать версии Windows поддерживающие протокол SMBv2. При невозможности обновления Windows для подключения к домену Windows 2003 следует использовать winbind, подробнее про процедуру см. : Особенности ввода в домен Windows AD 2003.

Конфигурация стенда

Имя компьютера (hostname) Операционная система Роли компьютера IP-адрес
dc01.example.com Windows Server 2008R2 Контроллер домена; DNS сервер Статический (далее для примера используется IP-адрес 192.168.5.7)
astra01 Astra Linux Special Edition Рабочая станция, член домена Статический или динамически назначаемый IP-адрес

Настройка системных часов и сетевых подключений

Для успешного ввода Astra Linux в домен AD на вводимой машине перед вводом в домен необходимо:

  1. Обеспечить синхронизацию часов на контроллере домене и вводимом компьютере (см. Службы синхронизации времени в Astra Linux);
  2. Указать IP-адрес DNS-сервера. таким образом, чтобы разрешалось имя контроллера домена. Обычно в качестве адреса DNS-сервера используется  IP-адреса самого контроллера домена. Подробнее про настройку сети см. Настройка сетевых подключений в Astra Linux.


Установка пакетов

В Astra Linux присутствует графическая утилита для ввода компьютера в домен Active Directory. Установить ее можно Графический менеджер пакетов synaptic или из командной строки командой:

sudo apt install fly-admin-ad-client

При установке пакета fly-admin-ad-client будет автоматически установлен инструмент командной строки astra-winbind.


  1. Открыть «Панель управления»:
  2. Выбрать раздел «Сеть» → «Настройка клиента Active Directory»:
  3. Заполнить все поля и нажать кнопку «Подключиться»:

Для входа в систему доменным пользователем можно использовать формат имени доменного пользователя «username@example.com» или «EXAMPLEusername».

Для ввода с помощью SSSD  в домен Windows 2003 компьютера под управлением Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) без установленных оперативных обновлений или с установленным оперативным обновлением БЮЛЛЕТЕНЬ № 2021-1126SE17 (оперативное обновление 1.7.1)  необходимо использовать пакет realmd_0.16.3-2+b1 или пакет realmd с более новой версией. В более поздних обновлениях нужный пакет входит в состав репозиториев, и отдельной установки не требует.

Для установки пакета:

  1. Скачать пакет с помощью web-браузера (по умолчанию пакет будет сохранен в каталоге Загрузки);
  2. Установить пакет:

    sudo apt install Загрузки/realmd_0.16.3-2+b1_amd64.deb

Установка пакетов

Установить графический инструмент fly-admin-ad-sssd-client можно используя Графический менеджер пакетов synaptic или из командной строки командой:

sudo apt install fly-admin-ad-sssd-client

При установке графического инструмента будет автоматически установлен инструмент командной строки astra-ad-sssd-client.

После установки пакет доступен в графическом меню: «Пуск» — «Панель управления» — «Сеть» — «Настройка клиента SSSD Fly».

Для ввода компьютера Astra Linux в домен Active Directory нужно запустить инструмент, после запуска инструмента указать имя домена, имя и пароль администратора и нажать кнопку «Подключиться»:

Инструмент командной строки astra-winbind

Установка пакетов

Инструмент командной строки astra-winbind автоматически устанавливается при установке графического инструмента fly-admin-ad-client. При необходимости работать в командной строке без использования графики инструмент может быть установлен отдельно:

sudo apt install astra-winbind

Ввод в домен с помощью astra-winbind

Операционная система Windows 2003 использует версию v1 протокола SMB (SMBv1) и не поддерживает протоколы SMBv2 выше. В современных обновлениях Astra Linux  использование версии протокола SMBv1 по-умолчанию отключено, так как эта версия устарела и небезопасна. В качестве контроллера домена рекомендуется Windows AD использовать версии Windows поддерживающие протокол SMBv2. При невозможности обновления Windows для подключения к домену Windows 2003 следует использовать winbind, подробнее про процедуру см. : Особенности ввода в домен Windows AD 2003.

Ввод компьютера в домен может быть выполнен командой:

sudo astra-winbind -dc dc01.example.com -u Администратор

где:

  • -dc dc01.example.com — указание контроллера домена;
  • -u Администратор — указание имени администратора домена;

Подсказка по команде:

sudo astra-winbind -h
Usage: astra-winbind <ключи>
ключи:
-h   этот текст
-dc  имя контроллера домена. если FQDN, ключ -d можно опустить
-d   домен. если отсутствует, берется из файла /etc/resolv.conf
-g   группа. если отсутствует, берется из домена
-n   сервер времени. если нет, используется контроллер домена
-y   отключает запрос подтверждения
-i   информация по текущему подключению
-u   логин администратора домена
-px  получает пароль администратора домена из stdin
-p   пароль администратора домена (небезопасно)
-s   разрешить и запустить службу подключения к домену
-S   запретить и остановить службу подключения к домену
-l   вывести компьютер из домена

примеры:
полное имя контроллера домена и отключение запроса подтверждения
    astra-winbind -dc astra01.atws.as -u admin -p password -y
сторонний сервер времени и запрос пароля в процессе
    astra-winbind -dc astra01 -d atws.as -n 192.168.5.7 -u admin
передача пароля через stdin, домен ищется в resolv.conf
    echo  | ./astra-winbind -dc astra01 -u admin -px -y
информация о текущем домене
    astra-winbind -i

Особенности ввода в домен Windows AD 2003

При вводе в домен Windows AD 2003 первая попытка вода окончится неудачей. Для завершения процедуры ввода:

  1. Сохранить копию созданного при первой попытке ввода в домен конфигурационного файла /etc/samba/smb.conf, например:

    cp /etc/samba/smb.conf /tmp/smb.conf

  2. Добавить в секцию [global] сохраненной копии параметр client min protocol = NT1:

    sed -i -e ‘/^[global]/a client min protocol = NT1’ «/tmp/smb.conf»;

  3. Выполнить ввод в домен используя модифицированный файл конфигурации:

    astra-winbind -dc astra-w2003.ad2.loc -u admin -p 1 -y —par «–configfile=/tmp/smb.conf»

  4. Заменить созданный при второй попытке ввода конфигурационный файл  /etc/samba/smb.conf сохраненной модифицированной копией:

    sudo mv /tmp/smb.conf /etc/samba/smb.conf

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

    sudo systemctl restart

Установка пакетов

Инструмент командной строки astra-ad-sssd-client автоматически устанавливается при установке графического инструмента fly-admin-ad-sssd-client. При необходимости работать в командной строке без использования графики инструмент может быть установлен отдельно:

sudo apt install astra-ad-sssd-client

При вводе компьютера в домен с помощью astra-ad-sssd-client также будет настроен сервер samba. См. Samba.

Ввод компьютера в домен может быть выполнен командой:

sudo astra-ad-sssd-client -d example.com -u Администратор

где:

  • -d example.com — указание имени домена;
  • -u Администратор — указание имени администратора домена;

Примерный диалог при выполнении команды:

compname = astra01
domain = example.com
username = admin
введите пароль администратора домена:
ok
продолжать ? (yN)
y
настройка сервисов...
Завершено.
Компьютер подключен к домену.
Для продолжения работы, необходимо перезагрузить компьютер!

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

sudo reboot

Подсказка по команде astra-ad-sssd-client:

sudo astra-ad-sssd-client -h
Usage: astra-ad-sssd-client <ключи>
ключи:
-h,--help   этот текст
-d   домен. если отсутствует, берется из hostname.resolv.conf
-y   отключает запрос подтверждения
-i   информация по текущему подключению
-u   логин администратора домена
-n   сервер времени.
-px  получает пароль администратора домена от внешнего сценария
     через перенаправление стандартного ввода (stdin)
-p   пароль администратора домена
-U   удаление
--par     указать параметры вручную

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

  1. Получить билет Kerberos от имени администратора домена:

    kinit admin@dc01.example.com

  2. Проверить статус подключения:

    sudo astra-ad-sssd-client -i

Примеры

Подключение к домену domain.net с именем администратора admin и (небезопасным!) указанием пароля администратора, без запроса подтверждения:

sudo astra-ad-sssd-client -d domain.net -u admin -p 12345678 -y

Подключение к домену domain.net с именем администратора admin и с использованием пароля администратора из файла /root/pass, без запроса подтверждения:

cat /root/pass | sudo astra-ad-sssd-client -d domain.net -u admin -px -y

Подключение к домену domain.net без запроса подтверждения:

sudo astra-ad-sssd-client -d domain.net -y

Получение информации о текущем домене

sudo astra-ad-sssd-client -i

Удаление данных подключения:

sudo astra-ad-sssd-client -U

Для удаления компьютера из домена (удаление механизма авторизации) используйте команду:

sudo astra-ad-sssd-client -U

Ввести linux сервер в домен windows не так сложно, как кажется на первый взгляд. В этом деле нам поможет samba. Она конечно может помочь еще во множестве других дел, но пока ограничения введением linux сервера в домен windows.

Домен Windows 2003, cервер Ubuntu 9.10 с уже настроенной сетью и доступом по SSH (смотреть предыдущий пост)

имя домена: DOMAIN
полное имя домена: DOMAIN.LOCAL
учетная запись администратора домена: admin
главный контроллер домена: PDC1
имя linux сервера: SERVER

Задача

Ввести linux сервер в домен Windows.

Решение

для того что бы каждый раз нам не приходилось набирать sudo будем работать под root с ОСОБОЙ ВНИМАТЕЛЬНОСТЬЮ!!!
$ sudo -i

Установим необходимые пакеты
В процессе установки krb5-user надо будет указать kerberos сервер нашей сети, обычно это контролер домена (PDC1.DOMAIN.LOCAL)

# sudo apt-get update
# apt-get install samba winbind krb5-user

Редактируем файл /etc/krb5.conf (Важно …большие буквы!)

# cp /etc/krb5.conf /etc/krb5.conf.orig   не забываем о резервной копии
# cp /dev/null /etc/krb5.conf что бы не читать много букв, удаляем все содержимое файла (внимание! сначала копия, потом удаляем, не наоборот)
# nano /etc/krb5.conf редактируем в редакторе nano

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
ticket_lifetime = 24000
default_realm = DOMAIN.LOCAL
dns_lookup_realm = true
default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc

[realm]
DOMAIN.LOCAL = {
kdc = PDC1
admin-server = PDC1
default_domain = DOMAIN.LOCAL
}

[domain_realm]
.domain.local = DOMAIN.LOCAL
domain.local  = DOMAIN.LOCAL

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb5_convert = false
}


 

Редактируем /etc/samba/smb.conf

# cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
# cp /dev/null /etc/samba/smb.conf
# nano /etc/samba/smb.conf

[global]
security = ads
netbios name = SERVER
realm = DOMAIN.LOCAL
password server = PDC1.DOMAIN.LOCAL
workgroup = DOMAIN
idmap uid = 10000 — 20000
idmap gid = 10000 — 20000
winbind enum users = yes
winbind enum groups = yes
winbind  use default domain = yes
domain master = no
client use spnego = yes

# Для корректного отображения русских символов
dos charset = 866
unix charset = UTF-8
display charset = koi8-r

Редактируем файлы

/etc/nsswitch.conf
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session

# cp /etc/nsswitch.conf /etc/nsswitch.conf.orig
#cp /dev/null  /etc/nsswitch.conf
# nano /etc/nsswitch.conf

passwd:         compat winbind
group:          compat winbind
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

# cp /etc/pam.d/common-account /etc/pam.d/common-account.orig
# cp /dev/null /etc/pam.d/common-account
# nano /etc/pam.d/common-account    

account sufficient pam_winbind.so
account required pam_unix.so

# cp /etc/pam.d/common-auth /etc/pam.d/common-auth.original
# cp /dev/null /etc/pam.d/common-auth
# nano /etc/pam.d/common-auth


auth sufficient pam_winbind.so
auth required pam_unix.so nullok_secure use_first_pass

# cp /etc/pam.d/common-password /etc/pam.d/common-password.orig
# cp /dev/null /etc/pam.d/common-password
# nano /etc/pam.d/common-password

password required pam_unix.so nullok obscure min=4 max=50 md5

# cp /etc/pam.d/common-session /etc/pam.d/common-session.orig 
# cp /dev/null /etc/pam.d/common-session
# nano /etc/pam.d/common-session

session required pam_unix.so
session optional pam_foreground.so
session required pam_mkhomedir.so umask=0022 skel=/etc/ske1

Перезапускаем samba

# /etc/init.d/samba restart

Инициализируем kerberos (необходимо будет ввести пароль доменного админа)

# kinit admin@DOMAIN.LOCAL (важно, домен большими буквами!)

Для проверки, утилитой klist  можно просмотреть кеш kerberos в нем должен быть билет для пользователя admin

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@DOMAIN.LOCAL

Если всё нормально, то заводим сервер в домен.

# net ads join -U admin
Enter admin’s password:
Using short domain name — DOMAIN
Joined ‘SERVER’ to realm ‘domain.local’

Вот и всё, завели linux сервер в домен windows:)

Для проверки можно воспользоваться командой wbinfo

Должно выдать всех пользователей домена
#wbinfo -u

Должно выдать все группы домена

#wbinfo -g

Содержание

  1. Ввод в домен на базе Windows 2003
  2. Содержание
  3. Ввод в домен на базе Win 2003 рабочей станции под управлением Simply Linux [ править ]
  4. Задача [ править ]
  5. Дано [ править ]
  6. Устанавливаем необходимые пакеты [ править ]
  7. Настраиваем сетевое соединение [ править ]
  8. Настраиваем сервисы самбы [ править ]
  9. Настраиваем синхронизацию времени с нашим контроллером домена [ править ]
  10. Настраиваем службу аутентификации для получения билетов Kerberos [ править ]
  11. Вводим в домен [ править ]
  12. Добавляем пользователей с административными привилегиям (sudo) [ править ]
  13. Настраиваем автомонтирование сетевых ресурсов [ править ]
  14. Библиография [ править ]
  15. Примечание [ править ]
  16. KDesktop [ править ]
  17. Доступ к локальным группам [ править ]
  18. Переустановка [ править ]
  19. Смена имени хоста [ править ]
  20. Два IP-адреса [ править ]
  21. Дополнения [ править ]
  22. Настройка LightDM [ править ]
  23. ActiveDirectory/Login
  24. Содержание
  25. Подготовка [ править ]
  26. Установка пакетов [ править ]
  27. Синхронизация времени [ править ]
  28. Ввод в домен в Центре управления системой [ править ]
  29. Ввод в домен в командной строке [ править ]
  30. Настройка SSSD [ править ]
  31. Проверка работы [ править ]
  32. Примечания [ править ]
  33. Настройка окна входа [ править ]
  34. Настройка LightDM [ править ]
  35. Отображение глобальных групп на локальные [ править ]
  36. Установка модуля ролей [ править ]
  37. Настройка ролей и привилегий [ править ]
  38. Дополнительные роли [ править ]
  39. Подключение файловых ресурсов [ править ]
  40. Через gio [ править ]
  41. Через pam_mount [ править ]
  42. Через autofs [ править ]
  43. Основная статья AutoFS [ править ]
  44. Для дистрибутивов c KDE [ править ]
  45. Групповые политики [ править ]
  46. SSSD [ править ]
  47. SSSD/AD
  48. Содержание
  49. Подключение к домену [ править ]
  50. Настройки сети [ править ]
  51. Настройки kerberos [ править ]
  52. Настройки samba [ править ]
  53. Подключение к домену [ править ]
  54. Настройка SSSD [ править ]
  55. Установка sssd-модуля [ править ]
  56. Настройка авторизации [ править ]
  57. Настройка аутентификации [ править ]
  58. Запуск и проверка сервиса sssd [ править ]
  59. Подключение файловых ресурсов [ править ]
  60. Через pam_mount [ править ]
  61. Домен/Windows/Manual
  62. Содержание
  63. Настройка сервера [ править ]
  64. Создание групп и выдача административных привилегий [ править ]
  65. Права доступа [ править ]
  66. Скрипт при входе [ править ]
  67. Решение проблем [ править ]
  68. Если что-то пошло не так. [ править ]
  69. Отладка Samba [ править ]
  70. Смена имени сервера Samba [ править ]
  71. Нюансы реализации [ править ]
  72. Известные проблемы [ править ]
  73. Как ввести компьютер с ОС АЛЬТ в домен Active Directory и сделать так, чтобы Linux-администратору было удобно с ним работать
  74. Компьютер подготовлен к вводу в домен, у него есть все необходимые данные.
  75. Появляется запрос на подтверждение полномочий пользователя на ввод в домен компьютера.
  76. Появляется сообщение об успешном вводе в домен.
  77. Проверка успешного ввода в домен.
  78. Как еще можно быстро и просто включить компьютер в домен?
  79. Ограничение №1. Сопоставление доменных групп безопасности с локальными
  80. Ограничение №2. Подключение сетевых ресурсов
  81. Расчёт стоимости

Ввод в домен на базе Windows 2003

Содержание

Ввод в домен на базе Win 2003 рабочей станции под управлением Simply Linux [ править ]

Задача [ править ]

Ввести в домен на базе Winows Server 2003 машину под управлением Simply Linux.

Дано [ править ]

Устанавливаем необходимые пакеты [ править ]

Настраиваем сетевое соединение [ править ]

Проверяем его доступность по ip-адресу:

Проверяем его доступность по имени узла:

Для того, чтобы узел отвечал по имени, необходимо указать домен поиска OFFICE.DOMEN.LOCAL. В Центре Управления Системой это указывается в настройках сетевого интерфейса в поле Домены поиска. Не забываем нажать Применить.

Проверяем его доступность по имени узла:

В файл /etc/hosts добавляем запись о нашей машине:

И соответственно в домен машину мы ввести не сможем. Ищем файл /etc/nsswitch.conf, в нем строку с hosts:

У по умолчанию она имеет вид:

И приводим ее к такому виду:

Сохраняем изменения и проверяем:

Настраиваем сервисы самбы [ править ]

Теперь необходимо включить в автозапуск необходимые службы. Выполним следующие команды от рута:

Делаем то же самое для winbind:

Запускаем сервис самба:

Чтобы сервис swat запускался автоматически: в файле /etc/xinetd.d/swat меняем значение disable с yes на no и перезапускаем службу:

Запускаем swat в браузере: http://localhost:901 (либо же правим /etc/samba/smb.conf соотвественно)

Во вкладке GLOBALS ставим следующие значения:

Подтверждаем изменения нажав кнопку commit changes наверху страницы. И последние значения настраиваем, переключившись в режим advanced view (сложный):

Снова подтверждаем изменения (сохранить изменения). Далее во вкладке STATUS запускаем или перезапускаем службы, Restart All (замечу что winbindd на этом этапе еще не работает).

Настраиваем синхронизацию времени с нашим контроллером домена [ править ]

Проверяем уровни запуска службы:

Добавляем в конфигурационный файл /etc/ntpd.conf запись о сервере времени для синхронизации, все остальное комментируем:

Запускаем синхронизацию времени:

И только после этого запускаем службу:

Настраиваем службу аутентификации для получения билетов Kerberos [ править ]

Для того что бы Kerberos производил аутентификацию на контролере домена, а не на локальной машине, правим /etc/krb5.conf. Приводим его к виду (обратите внимание на регистр, где заглавными, так и должно быть):

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

Если все прошло хорошо, в ответ на этот запрос вы ответа не получите.

Проверяем наличие билета командой klist, вывод должен быть примерно такой:

Правим /etc/nsswitch.conf примерно до такого вида:

Чтобы изменения в конфиге /etc/nsswitch.conf вступили в силу без перезагрузки, нужно от рута дать команду:

Вводим в домен [ править ]

Для ввода в домен необходимо дать команду:

Для того, чтобы в нашу систему можно было логиниться под доменными аккаунтами и авторизация шла через winbind, необходимо оставить /etc/pam.d/gdm или /etc/pam.d/lightdm в прежнем виде:

(Для KDE4 это файл /etc/pam.d/kde4)

А /etc/pam.d/system-auth-winbind к виду (если его нет, то создать):

И /etc/pam.d/system-auth-use_first_pass-winbind к виду(если его нет, то создать):

Не забываем переключить авторизацию на winbind

С такими конфигами будет работать авторизация из gdm, gnome-screensaver, ssh.

Перезагружаемся и можем логинится как локальными пользователями системы, так и доменными. Но стоить помнить один ньюанс. Если логин вашего локального пользователя совпадает с доменным, то будет попытка входа только локальным пользователем.

Добавляем пользователей с административными привилегиям (sudo) [ править ]

Разрешаем всем вызывать sudo:

Разрешаем группе администраторов LinuxAdmins (должна быть создана) повышать свои привилегии без запроса пароля:

Настраиваем автомонтирование сетевых ресурсов [ править ]

Устанавливаем smbnetfs, samba, samba-client, fuse-smb.

Создаем /etc/fuse.conf и добавляем запись:

Добавляем в /etc/modules запись:

Копируем /usr/share/doc/smbnetfs/smbnetfs.conf в /home/%username%/.smb/

Копируем /etc/samba/smb.conf в /home/%username%/.smb/

Добавляем пользователя в группу fuse.

Создаем в домашнем каталоге каталог (например) /home/%username%/net

Создаем скрипт запуска в удобном для нас месте (например) /home/%username%/.smb/net со следующим содержанием:

Библиография [ править ]

Инструкция составлена с применением следующих ресурсов:

Примечание [ править ]

KDesktop [ править ]

На KDesktop мне не удалось настроить вход в домен AD используя

Взамен этого можно сделать некоторые ручные манипуляции

Доступ к локальным группам [ править ]

Чтобы все доменные пользователи были включены в определенные локальные группы (могли переключаться в root, запускать VirtualBOX и проч.) нужно добавить в /etc/security/group.conf

в конф. файл входа в систему( для KDE это /etc/pam.d/kde4)

Переустановка [ править ]

После переустановки системы (при сохранении раздела /home) необходимо выставить владельца домашнего каталога доменного пользователя (владелец меняется)

Смена имени хоста [ править ]

Если нужно сменить имя хоста, править HOSTNAME в файле /etc/sysconfig/network

Два IP-адреса [ править ]

Замечены проблемы со входом доменного пользователя при наличии двух IP-адресов. На этапе первого входа пользователя лучше от второго IP временно отказаться.

Дополнения [ править ]

Настройка LightDM [ править ]

В /etc/lightdm/lightdm.conf раскомментируйте строку в группе [SeatDefaults] :

Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.

Также полезно выключить выбор языка. В файле /etc/lightdm/lightdm-gtk-greeter.conf в группе [greeter] укажите

В новых версиях lightdm-gtk-greeter можно указать кнопки явно:

Источник

ActiveDirectory/Login

Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под Samba в режиме AD DC). Устаревшая инструкция: Ввод в домен на базе Windows 2003

Параметр Значение
Имя домена SCHOOL.ALT
Рабочая группа SCHOOL
Имя компьютера в Netbios WS
Имя пользователя-администратора Administrator
Пароль администратора Pa$$word

Содержание

Подготовка [ править ]

Установка пакетов [ править ]

С версии alterator-auth-0.31-alt1

Возможно, следует обновить установленный дистрибутив из репозитория.

Синхронизация времени [ править ]

С версии alterator-auth 0.28 синхронизация времени производится автоматически с контроллером домена.

Для более ранних версий:

Способ 1: Через net time [ править ]
Способ 2: По протоколу RFC 867 [ править ]

На сервере включается через xinetd daytime-tcp [1] :

А на клиенте — служба settime-rfc867 :

Способ 3: Через Центр управления системой → Дата и время [ править ]
Способ 4: Через ntpdate [ править ]

Ввод в домен в Центре управления системой [ править ]

В Центре управления системой перейдите в раздел Пользователи → Аутентификация

Для ввода компьютера в Active Directory потребуется установить пакет task-auth-ad-sssd и все его зависимости.

691px Qwe

Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить».

Ввод в домен в командной строке [ править ]

Настройка SSSD [ править ]

Проверка работы [ править ]

Примечания [ править ]

Настройка окна входа [ править ]

Настройка LightDM [ править ]

В /etc/lightdm/lightdm.conf раскомментируйте строку в группе [SeatDefaults] :

Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.

Также полезно выключить выбор языка. В файле /etc/lightdm/lightdm-gtk-greeter.conf в группе [greeter] укажите

В новых версиях lightdm-gtk-greeter можно указать кнопки явно:

Полный перечень доступных кнопок:

Отображение глобальных групп на локальные [ править ]

Установка модуля ролей [ править ]

Настройка ролей и привилегий [ править ]

Добавляем роль локальных администраторов:

Создаём привилегию на право удалённого доступа (по протоколу ssh):

Включаем удалённый доступ только для группы remote:

Настраиваем список привилегий для пользователей (для роли users):

Настраиваем список привилегий для администраторов (для роли admins):

Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:

Просматриваем список назначенных ролей и привилегий:

Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локальные роли для глобальных групп в домене.

Дополнительные роли [ править ]

Соответственно, если надо выдать права администраторов АРМ пользователям, которые не являются Domain Admins, то нужно завести новую группу в AD (например, PC Admins), добавить туда необходимых пользователей. Затем на АРМ добавить роль для данной группы:

После этого (и после разрешения sudo для группы wheel) под пользователем входящим в группу PC Admins можно запускать команду повышения прав sudo.

Подключение файловых ресурсов [ править ]

Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).

Через gio [ править ]

Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.

1. Устанавливаем необходимые пакеты (с правами root):

2. Включаем пользователя в группу fuse (с правами root):

3. Входим доменным пользователем

4. Открываем ресурс в файловом менеджере (например, по адресу smb://server/sysvol ). Ресурс смонтирован по пути /var/run/ /gvfs или /var/run/user/ /gvfs/smb-share:server=сервер,share=ресурс

Другой вариант (полезно для скриптов в автозапуске):

Через pam_mount [ править ]

В этом случае заданный ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем.

1. Устанавливаем pam_mount :

2. Прописываем pam_mount в схему /etc/pam.d/system-auth-sss :

(перед auth substack system-auth-sss-only )

и в секцию session:

3. Устанавливаем правило монтирования ресурса в файле /etc/security/pam_mount.conf.xml (перед тегом ):

/share» — путь монтирования в домашней папке пользователя

Опционально можно добавить

Для проверки можно попробовать смонтировать ресурс в сессии:

Также можно проверить доступность ресурса с помощью smbclient, например:

Через autofs [ править ]

В этом случае заданный ресурс подключается автоматически при каждом обращении пользователя. И отключается после определенного времени бездействия (определяется конфигуацией Autofs).

Основная статья AutoFS [ править ]

Для дистрибутивов c KDE [ править ]

1. Устанавливаем kde5-autofs-shares :

2. Следуем инструкции по подключению в разделе Альт_Рабочая_станция_К_8_советы.

Групповые политики [ править ]

Групповые политики (GPO) на Linux применяются только контроль входа через SSSD и средства Centrify.

SSSD [ править ]

SSSD имеет внутреннюю поддержку следующих групповых политик:

Источник

SSSD/AD

Подготовка клиентской станции (подключение к домену AD), настройка и установка аутентификации и авторизации c помощью сервиса SSSD.

Содержание

Настройки сети [ править ]

Для подключением к домену проводим проверку настроек сети:

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

Настройки kerberos [ править ]

Далее проверяем клиентские настройки kerberos через DNS. В данном случае, для домена dom.loc.:

И задаем их в файле /etc/krb5.conf

Если настройки сети и kerberos выполнены правильно, то мы может получить kerberos TGT от контроллера домена:

Настройки samba [ править ]

Для подключения рабочей станции в домену требуется утилита net из пакета samba-common-tools, кроме того стоит сразу установить пакет samba-client с набором клиентских утилит:

В файле /etc/samba/smb.conf, минимально, необходимо задать следующие параметры в секции [global]:

Набор полученных настроек можно проверить с помощью утилиты testparm:

Ошибка rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) до перезагрузки исправляется командой:

Что бы лимиты действовали и после перезагрузки необходимо отредактировать файл /etc/security/limits.conf :

Проверка наличия kerberos-ключей для рабочей станции

Настройка SSSD [ править ]

Установка sssd-модуля [ править ]

Для работы с Active Directory в SSSD имеется специальный AD-провайдер:

Минимальный конфигурационный файл (/etc/sssd/sssd.conf) для sssd-ad выглядит следующим образом:

Опция ldap_id_mapping = False позволяет включить использование POSIX атрибутов, определённых в Active Directory, вместо встроенной, однозначной трансляции SID’ов. Основная проблема применения POSIX-атрибутов состоит в том, что они могут быть не заданы. В этом случае сервис sssd не загрузится.

Опция use_fully_qualified_names = True включает режим полных имён (включая домен) для пользователей и групп.

Опция fallback_homedir = /home/%d/%u задает домашнюю папку для доменных пользователей. При такой записи %d означает FQDN. Здесь вручную можно указать имя рабочей группы, например /home/DOM/%u

Опция cache_credentials включает режим кэширования аутентификационных данных (полезно при недоступности домена)

Опция user позволяет задать имя пользователя, под которым будет исполняться непривилегированная часть службы SSSD

Настройка авторизации [ править ]

Авторизационные NSS-базы GLibc настраиваются в файле /etc/nsswitch.conf При использовании sssd, требуется внести исправления в следующие строчки:

Настройка аутентификации [ править ]

Для изменения настроек аутентификации (параметров PAM) в ALT Linux используется утилита control:

Запуск и проверка сервиса sssd [ править ]

Если все настройки выполнены правильно, то после запуска сервиса sssd:

будут доступны авторизационные данные для пользователя administrator:

Или для administrator@dom.loc, если установлена опция use_fully_qualified_names = True:

Подключение файловых ресурсов [ править ]

Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).

Через pam_mount [ править ]

В этом случае заданный ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем.

1. Устанавливаем pam_mount :

2. Прописываем pam_mount в схему /etc/pam.d/system-auth-sss :

(перед auth substack system-auth-sss-only )

и в секцию session:

3. Устанавливаем правило монтирования ресурса в файле /etc/security/pam_mount.conf.xml (перед тегом ):

/share» — путь монтирования в домашней папке пользователя

Опционально можно добавить

Для проверки можно попробовать смонтировать ресурс в сессии:

Также можно проверить доступность ресурса с помощью smbclient, например:

Источник

Домен/Windows/Manual

Предполагается, что домен ALT Linux создан должным образом и работает.

Содержание

Настройка сервера [ править ]

1. В секции [global] файла /etc/samba/smb.conf добавьте:

Внимание! При использовании домена в Windows будет использоваться имя рабочей группы WORKGROUP (параметр workgroup в /etc/samba/smb.conf). Вы можете поменять его на имя ALT-домена:

Если хотите автоматически подключать общую папку (ресурс share на сервере как диск S: ), то выполните следующее:

2. Перезапустите службу smb и запустите службу nmb:

Службу nmb нужно добавить в автоматический запуск:

3. Обновите ldap-user-tools до версии 0.8.0 или более позднее.

Создание групп и выдача административных привилегий [ править ]

2. В LDAP создайте группы через веб-интерфейс или из командной строки:

Эти группы понадобятся для привязки к группам домена согласно таблице:

Группа LDAP Группа Windows Идентификатор в Windows
Admins Domain Admins 512
Users Domain Users 513
Guests Domain Guests 514
Computers Domain Computers 515

Добавьте туда пользователей через веб-интерфейс или из командной строки:

3. Привяжите группы LDAP к группам домена

Примечание: Обратите внимание, пароль можно указывать у имени пользоватeля через «%».

4. Выдайте привилегии для группы Domain Admins :

Проверка (просмотр всех привилегий по группам):

Примечание: обратите внимание, что для заведения компьютера в домен нужно входить в группу с привилегией SeMachineAccountPrivilege.

5. Чтобы не было коллизий с системным пользователем root, после операции по назначению группы и привилегий этого пользователя нужно удалить или восстановить его UID:

6. Проверяем вход в домен администратора cas:

Примечание: проверять вход в домен на сервере следует от пользователя, входящего в группу ‘Domain Admins’. Остальным это запрещено. Список зарегистрированных компьютеров можно посмотреть командой:

Всё в порядке, можно вводить компьютеры с Windows в наш домен.

Права доступа [ править ]

По умолчанию разрешено входить всех доступным пользователям. Посмотреть их список на сервере можно командой:

Для пользователей, входящих в группу Domain Users (или группу Users в LDAP) имеется доступ на диск Z: (домашняя папка пользователя на сервере с создаваемым подкаталогом profile ).

Список входящих в эту группу:

Скрипт при входе [ править ]

При входе можно запускать скрипт в формате bat. Для этого в /etc/samba/smb.conf нужно добавить раздел описания ресурса netlogon :

Примечание: концы строк в файле bat должны быть в стиле dos (rn) (режим :set ff=dos в vim).

Решение проблем [ править ]

Если что-то пошло не так. [ править ]

Если в результате экспериментов сломались привилегии или что-нибудь ещё, нужно очистить внутренние базы Samba. Выполните

Отладка Samba [ править ]

Полезно включить уровень отладки 5 в /etc/samba/smb.conf:

После этого необходимо перечитать конфигурацию:

Смена имени сервера Samba [ править ]

Так как при создании нового пользователя в домене для него прописывается SID, при смене имени сервера серверная часть SID меняется и пользователи со старыми SID уже недоступны, показывается примерно такое

При этом новые пользователи заводятся уже с правильным SID. Для исправления ситуации со старыми пользователями нужно выполнить следующий скрипт:

После этого команда

должна показать имена всех пользователей.

Нюансы реализации [ править ]

Известные проблемы [ править ]

Пользователь при этом создаётся, пароль не устанавливается.

Ещё проблема+решение ниже: при попытке подключения к samba-шаре по из-под Windows XP и с МФУ (т.н. сканирование в папку SMB) логин и пароль не принимаются, возникает ошибка:

Источник

Как ввести компьютер с ОС АЛЬТ в домен Active Directory и сделать так, чтобы Linux-администратору было удобно с ним работать

После установки ОС АЛЬТ в действующую ИТ-инфраструктуру или в тестовую среду, соответствующую продуктивной, ИТ-специалисты часто сталкиваются с вопросом: как ввести компьютер в домен службы каталогов. В основном, в Active Directory от Microsoft.

Чтобы избежать проблем с вводом в домен, системному администратору необходимо убедиться, что служба синхронизации времени работает. И время на рабочей станции соответствует времени на домен-контроллере. Также на рабочей станции должны быть указаны правильные DNS-серверы, в которых присутствуют корректные SRV-записи, указывающие на работающий домен-контроллер.

В ОС АЛЬТ компьютер можно ввести в домен с помощью графического интерфейса. Для этого необходимо установить пакет task-auth-ad-sssd. Операция по вводу в домен рабочей стации через графический интерфейс достаточна проста, нужно лишь правильно указать следующие пункты:

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

Компьютер подготовлен к вводу в домен, у него есть все необходимые данные.

Появляется запрос на подтверждение полномочий пользователя на ввод в домен компьютера.

Появляется сообщение об успешном вводе в домен.

Проверка успешного ввода в домен.

Однако, трудности, все же бывают. Например:

Как еще можно быстро и просто включить компьютер в домен?

Разработать модуль включения компьютеров в домен и настройки авторизации пользователей в системе централизованного управления конфигурациями и инфраструктурой на базе Puppet, как это сделали мы. Модуль позволяет включать в домен компьютеры, которые объединены общим логическим признаком (например, «новые рабочие станции»).

Для использования модуля достаточно указать название домена и его тип (например, Active Directory). После включения компьютера в среду «новые рабочие станции», на нем автоматически применятся настройки, позволяющие ввести его в домен одной командой. Ввод команды обусловлен требованиями по информационной безопасности (передается пароль учетной записи, обладающей правами на ввод в домен).

Однако, для того, чтобы отечественное ПО в данном случае работало действительно хорошо, нужно снять два самых частых ограничения при работе компьютера с ОС АЛЬТ в домене Active Directory.

Ограничение №1. Сопоставление доменных групп безопасности с локальными

Ситуация. Администратору нужно выполнить настройки для сопоставления доменных групп безопасности с локальными группами. Чтобы у группы безопасности администраторов рабочих станций, применяемых к Windows-клиентам, были одновременно и права администратора и в ОС АЛЬТ. К примеру, если администратор входит в группу «Администраторы домена», он не будет добавлен в группу wheel. При этом выполнять настройки по сопоставлению нужно на каждом компьютере, вручную. Потому что групповые политики по добавлению группы безопасности из Active Directory в локальную группу на компьютере с ОС АЛЬТ не применяются.

Как снять ограничение. Использовать систему централизованного управления конфигурациями и инфраструктурой – например, на базе Puppet. С ее помощью можно распространить нужное состояние и параметры на любое количество компьютеров – в автоматизированном режиме.

Если добавляется доменная группа администратора рабочих станций, то система управления конфигурациями позволяет «раскатать» ее сразу на десятки, сотни или даже тысячи компьютеров. И администраторы рабочих станций на доменных рабочих станциях с ОС Windows, без проблем становятся еще и администраторами на компьютерах с ОС АЛЬТ. Не надо подключаться к каждому компьютеру, вводить последовательность команд вручную. Отпадает и необходимость в создании «костыльных» скриптов, которые полуавтоматизируют процесс, обладая при этом существенными недостатками (например, нет журналирования событий). Нужно просто описать, какое состояние рабочей станции необходимо получить. И дождаться результата. Группа компьютеров будет получать указанную администратором конфигурацию с серверов системы управления конфигурациями.

Ограничение №2. Подключение сетевых ресурсов

Ситуация. При организации файлового сервиса в Windows-инфраструктуре зачастую используются пространства DFS (Distributed File System). И публикация файловых ресурсов. При этом у многих системных администраторов возникает вопрос: «Как и под каким пользователем правильно подключить предоставляемый пользователю сетевой ресурс»?

Казалось бы, для подключения сетевого ресурса можно использовать пользователя, который в данный момент работает за компьютером, или выделить отдельного, Но это не совсем корректно. Потому что за одним и тем же компьютером могут работать разные доменные пользователи, тогда прав на запись информации у них не будет. Или пароль отдельного пользователя будет храниться в файловой системе в открытом виде. В этом случае могут быть предоставлены некорректные права, дающие доступ к файлам для всех. Что небезопасно.

Как снять ограничение. Можно подключать сетевые ресурсы с помощью модуля PAM (Pluggable Authentication Modules) – pam_mount. Использование этого метода позволяет подключать сетевой ресурс от имени активного доменного пользователя с назначенными ему правами, вводя при этом пароль только раз – при входе в систему. К примеру, так мы подключаем сетевой ресурс «Консультант Плюс» на сервере Windows.

Мы подключаем его под доменным пользователем, который авторизовался на рабочей станции, и запуск «Консультанта» проходит без проблем. Для организации доступа к DFS-пространствам: при успешном входе пользователя сетевой ресурс автоматически подключается. Пользователь обладает всеми теми же правами, что и в случае подключения ресурса с Windows-клиента.

Расчёт стоимости

Чтобы предложить вашей компании все возможные решения, а также сделать ориентировочную бюджетную оценку импортозамещающего проекта, специалистам ALP Group необходимо проанализировать текущую архитектуру ее ИТ-сервисов. Анализ проводится на основании заполненных опросных листов, разработанных нашим Центром компетенции по импортозамещению и Open Source.

Точная стоимость импортозамещающего проекта зависит от плотности ИТ-сервисов в компании, количества и типа ИС. Ее можно правильно рассчитать только после ряда специализированных предпроектных обследований (инфраструктурные сервисы, функционал АРМ, АИС и др.).

Оставьте свои контактные данные, пожалуйста.

Наши специалисты обязательно свяжутся с вами, чтобы переслать и помочь заполнить опросные листы, уточнить всю информацию и предоставить расчет.

Источник

Содержание

Введение

Зачастую возникает необходимость ввести Linux-машину в существующий домен Windows. Например, чтобы сделать файловый сервер с помощью Samba. Сделать это очень просто, для этого вам понадобятся клиент Kerberos, Samba и Winbind.

Перед установкой желательно обновиться:

sudo aptitude update
sudo aptitude upgrade

Установить всё это добро можно командой:

sudo aptitude install krb5-user samba winbind 

Также может понадобиться установить следующие библиотеки:

sudo aptitude install libpam-krb5 libpam-winbind libnss-winbind

Либо, если вы используете Ubuntu Desktop, те же пакеты можно поставить через менеджер пакетов Synaptic.

Далее вам потребуется настроить все вышеперечисленные инструменты для работы с вашим доменом. Допустим, вы хотите войти в домен DOMAIN.COM, доменконтроллером которого является сервер dc.domain.com с IP адресом 192.168.0.1. Этот же сервер является и первичным DNS сервером домена. Кроме того допустим у вас есть второй доменконтроллер1), он же DNSdc2.domain.com с IP 192.168.0.2. Ваш же компьютер будет называться smbsrv01.

Настройка DNS

Для начала необходимо изменить настройки DNS на вашей машине, прописав в качестве DNS сервера доменконтроллер2) и в качестве домена поиска — нужный домен.

Если у вас статический IP-адрес, то в Ubuntu Desktop это можно сделать через Network Manager, в Ubuntu Server необходимо изменить содержимое файла /etc/resolv.conf на примерно такое:

domain domain.com
search domain.com
nameserver 192.168.0.1
nameserver 192.168.0.2

В современных дистрибутивах файл resolv.conf создается автоматически и править вручную его не нужно.
Для получение нужного результата нужно добавить необходимые изменения в файл: /etc/resolvconf/resolv.conf.d/head
Данные которые будут добавлены в него, будут автоматически вставлены в файл /etc/resolv.conf

Если IP-адрес динамический и присваивается DHCP сервером то после перезагрузки resolv.conf может формироваться «неправильный» resolv.conf’ , например присутствует только один nameserver 192.168.0.1 и не указаны domain и search. Нужно отредактировать /etc/dhcp/dhclient.conf. Чтобы появились записи domain и search нужно убрать комментарий перед строкой supersede domain-name, и вписать свой домен:

supersede domain-name "domain.com";

Чтобы добавить еще один nameserver нужно убрать комментарий перед prepend domain-name-servers и указать ip сервера:

prepend domain-name-servers 192.168.0.2;

Для применения изменений остается перезапустить службу:

/etc/init.d/networking restart

Теперь убедитесь, что вы задали нужное имя компьютера в файле /etc/hostname:

smbsrv01

Кроме того необходимо отредактировать файл /etc/hosts так, чтобы в нём была запись с полным доменным именем компьютера и обязательно коротким именем хоста, ссылающаяся на один из внутренних IP:

# Имена этого компьютера
127.0.0.1	localhost
127.0.1.1	smbsrv01.domain.com	smbsrv01

Сразу нужно проверить что нормально пингуется наш контроллер домена, по короткому и полному имени, чтобы в будушем не получать ошибки что контроллер домена не найден:

ping dc
ping dc.domain.com

Не обязательно, но если вы что-то поменяете — перезагрузите компьютер для применения изменений.

Настройка синхронизации времени

Далее необходимо настроить синхронизацию времени с доменконтроллером. Если разница будет более 5 минут мы не сможем получить лист от Kerberos.
Для единовременной синхронизации можно воспользоваться командой:

sudo net time set dc

Если в сети существует сервер точного времени, то можно воспользоваться им или любым публичным:

ntpdate ntp.mobatime.ru

Автоматическая же синхронизация настраивается с помощью ntpd, это демон будет периодически выполнять синхронизацию. Для начала его необходимо установить:

sudo aptitude install ntp

Теперь исправьте файл /etc/ntp.conf, добавив в него информацию о вашем сервере времени:

# You do need to talk to an NTP server or two (or three).
server dc.domain.com

После чего перезапустите демон ntpd:

sudo /etc/init.d/ntp restart

Теперь пора настраивать непосредственно взаимодействие с доменом.

Настройка авторизации через Kerberos

Начнём с настройки авторизации в домене через протокол Kerberos. Вам потребуется изменить файл /etc/krb5.conf. В общем случае он выглядит так:

[libdefaults]
	default_realm = DOMAIN.COM
	kdc_timesync = 1
	ccache_type = 4
	forwardable = true
	proxiable = true
	v4_instance_resolve = false
	v4_name_convert = {
		host = {
			rcmd = host
			ftp = ftp
		}
		plain = {
			something = something-else
		}
	}
	fcc-mit-ticketflags = true

[realms]
	DOMAIN.COM = {
		kdc = dc
		kdc = dc2
		admin_server = dc
		default_domain = DOMAIN.COM
	}

[domain_realm]
	.domain.com = DOMAIN.COM
	domain.com = DOMAIN.COM
[login]
	krb4_convert = false
	krb4_get_tickets = false

Вам, конечно, нужно изменить domain.com на ваш домен и dc и dc2 на ваши доменконтроллеры. Кстати, возможно вам понадобится написать полные имена доменконтроллеров dc.domain.com и dc2.domain.com. Поскольку у меня прописан домен поиска в DNS, то мне это делать не нужно.

Обратите особое внимание на регистр написания имени домена — везде, где домен написан в верхнем регистре, его обязательно нужно писать именно в верхнем регистре. Иначе волшебным образом ничего может не заработать.

Это не все возможные опции настройки Kerberos, только основные. Однако их обычно достаточно.

Теперь настало время проверить, что мы можем авторизоваться в домене. Для этого выполните команду

kinit username@DOMAIN.COM

Вместо username естественно стоит вписать имя существующего пользователя домена.

Имя домена необходимо писать заглавными буквами!

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

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

klist

Удалить все билеты (они вам вообще говоря не нужны) можно командой

kdestroy

Итак, будем считать, что авторизацию вы настроили, пора настроить непосредственно вход в домен, об этом после списка распространённых ошибок kinit.

Распространённые ошибки kinit

kinit(v5): Clock skew too great while getting initial credentials

Это значит, что у вашего компьютера не синхронизировано время с доменконтроллером (см. выше).

kinit(v5): Preauthentication failed while getting initial credentials

Вы ввели неверный пароль.

kinit(v5): KDC reply did not match expectations while getting initial credentials

Самая странная ошибка. Убедитесь, что имя realm в krb5.conf, а так же домен в команде kinit введены большими буквами:

DOMAIN.COM = {
# ...
kinit username@DOMAIN.COM
kinit(v5): Client not found in Kerberos database while getting initial credentials

Указанного пользователя не существует в домене.

Настройка Samba и вход в домен

Для того, чтобы войти в домен, необходимо прописать правильные настройки в файле /etc/samba/smb.conf. На данном этапе вас должны интересовать только некоторые опции из секции [global]. Ниже — пример части файла конфигурации Samba с комментариями по поводу значения важных параметров:

[global]
   # Эти две опции нужно писать именно в заглавном регистре, причём workgroup без
   # последней секции после точки, а realm - полное имя домена 
   workgroup = DOMAIN
   realm = DOMAIN.COM

   # Эти две опции отвечают как раз за авторизацию через AD
   security = ADS
   encrypt passwords = true
   # Просто важные 
   dns proxy = no 
   socket options = TCP_NODELAY

   # Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе,
   # или даже стать доменконтроллером, то всегда прописывайте эти пять опций именно в таком виде
   domain master = no
   local master = no
   preferred master = no
   os level = 0
   domain logons = no

   # Отключить поддержку принтеров
   load printers = no
   show add printer wizard = no
   printcap name = /dev/null
   disable spoolss = yes

После того, как вы отредактируете smb.conf выполните команду

testparm

Она проверит вашу конфигурацию на ошибки и выдаст суммарную сводку о нём:

# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions

Как видно мы задали правильные параметры для того, чтобы наш компьютер стал членом домена. Теперь пора попытаться непосредственно войти в домен. Для этого введите команду:

net ads join -U username -D DOMAIN

И в случае успеха вы увидите что-то похожее на:

# net ads join -U username -D DOMAIN
Enter username's password:
Using short domain name -- DOMAIN
Joined 'SMBSRV01' to realm 'domain.com'

Используемые параметры команды net

-U username%password: Обязательный параметр, вместо username необходимо подставить имя пользователя с правами администратора домена, и указать пароль.

-D DOMAIN: DOMAIN — собственно сам домен, домен можно и не указывать, но лучше всё же это всегда делать — хуже не будет.

-S win_domain_controller: win_domain_controller, можно не указывать, но бывают случаи когда автоматически сервер не находит контроллер домена.

createcomputer=«OU/OU/…» : В AD часто используется OU (Organizational Unit), есть в корне домена OU = Office, в нем OU = Cabinet, чтобы сразу добавить в нужный можно указать так: sudo net ads join -U username createcomputer=«Office/Cabinet».

Если больше никаких сообщений нет — значит всё хорошо. Попробуйте попинговать свой компьютер по имени с другого члена домена, чтобы убедиться, что в домене всё прописалось так, как надо.

Так же можно набрать команду:

net ads testjoin

Если все хорошо, можно увидеть:

#net ads testjoin
Join is OK

Но иногда после сообщения о присоединении к домену выдаётся ошибка наподобие3):

DNS update failed!

Это не очень хорошо, и в этом случае рекомендуется ещё раз прочитать раздел про настройку DNS чуть выше и понять, что же вы сделали не так. После этого нужно удалить компьютер из домена и попытаться ввести его заново. Если вы твердо уверены, что всё настроили верно, а DNS всё равно не обновляется, то можно внести вручную запись для вашего компьютера на ваш DNS сервер и всё будет работать. Конечно, если нет никаких других ошибок, и вы успешно вошли в домен. Однако лучше всё же разберитесь, почему DNS не обновляется автоматически. Это может быть связано не только с вашим компьютером, но и с некорректной настройкой AD.

Прежде чем выяснять, почему же не обновляется DNS, не забудьте перезагрузить компьютер после введения в домен! Вполне возможно, что это решит проблему.

Если всё прошло без ошибок, то поздравляем, вы успешно вошли в домен! Можете заглянуть в AD и убедиться в этом. Кроме того хорошо бы проверить, что вы можете видеть ресурсы в домене. Для этого установите smbclient:

sudo aptitude install smbclient

Теперь можно просматривать ресурсы компьютеров домена. Но для этого нужно иметь билет kerberos, т.е. если мы их удалили, то получаем опять через kinit (см. выше). Посмотрим какие ресурсы предоставлены в сеть компьютером workstation:

smbclient -k -L workstation

Вы должны увидеть список общих ресурсов на этом компьютере.

Настройка Winbind

Если вам необходимо как-либо работать с пользователями домена, например, настраивать SMB-шары с разграничением доступа, то вам понадобится кроме самой Samba ещё и Winbind — специальный демон, служащий для связи локальной системы управления пользователями и группами Linux с сервером Active Directory. Проще говоря Winbind нужен, если вы хотите видеть пользователей домена на своём компьютере с Ubuntu.

Winbind позволяет спроецировать всех пользователей и все группы AD в вашу Linux систему, присвоив им ID из заданного диапазона. Таким образом вы сможете назначать пользователей домена владельцами папок и файлов на вашем компьютере и выполнять любые другие операции, завязанные на пользователей и группы.

Для настройки Winbind используется всё тот же файл /etc/samba/smb.conf. Добавьте в секцию [global] следующие строки:

   # Опции сопоставления доменных пользователей и виртуальных пользователей в системе через Winbind.
   # Диапазоны идентификаторов для виртуальных пользователей и групп.
   idmap uid = 10000 - 40000
   idmap gid = 10000 - 40000
   # Эти опции не стоит выключать.
   winbind enum groups = yes
   winbind enum users = yes
   # Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп
   # будут использоваться с доменом, т.е. вместо username - DOMAINusername.
   # Возможно именно это вам и нужно, однако обычно проще этот параметр включить. 
   winbind use default domain = yes
   # Если вы хотите разрещить использовать командную строку для пользователей домена, то
   # добавьте следующую строку, иначе в качестве shell'а будет вызываться /bin/false
   template shell = /bin/bash
   # Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку
   winbind refresh tickets = yes

Параметры :

idmap uid = 10000 — 40000

idmap gid = 10000 — 40000

в новых версиях Samba уже устарели и при проверке конфига самбы с помощью testparm
будет выдваться предупреждение:

WARNING: The «idmap uid» option is deprecated

WARNING: The «idmap gid» option is deprecated

Чтобы убрать предупреждения нужно заменить эти строки на новые:

idmap config * : range = 10000-20000

idmap config * : backend = tdb

Теперь перезапустите демон Winbind и Samba в следующем порядке:

sudo /etc/init.d/winbind stop
sudo smbd restart
sudo /etc/init.d/winbind start 

Запускаем

sudo testparm

Смотрим есть ли ошибки или предупреждения, если появится:

«rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)»

Без перезагрузки можно устранить так:

ulimit -n 16384

Для сохранения после перезагрузки отредактировать файл /etc/security/limits.conf

# Добавить в конец файла строки:
*               -    nofile            16384
root            -    nofile            16384

После перезапуска проверьте, что Winbind установил доверительные отношения с AD командой:

# wbinfo -t
checking the trust secret for domain DCN via RPC calls succeeded

А так же, что Winbind увидел пользователей и группы из AD командами4):

wbinfo -u
wbinfo -g

Эти две команды должны выдать список пользователей и групп из домена соответственно. Либо с префиксом DOMAIN, либо без него — в зависимости от того, какое значение вы указали параметру «winbind use default domain» в smb.conf.

Итак, Winbind работает, однако в систему он ещё не интегрирован.

Добавление Winbind в качестве источника пользователей и групп

Для того, чтобы ваша Ubuntu прозрачно работала с пользователями домена, в частности, чтобы вы могли назначать пользователей домена владельцами папок и файлов, необходимо указать Ubuntu использовать Winbind как дополнительный источник информации о пользователях и группах.

Для этого измените две строчки в файле /etc/nsswitch.conf:

passwd:         compat
group:          compat

добавив к ним в конец winbind:

passwd:         compat winbind
group:          compat winbind

также рекомендую привести строку files в файле /etc/nsswitch.conf к виду:

files:          dns mdns4_minimal[NotFoud=return] mdns4

ubuntu server 14.04, файл /etc/nsswitch.conf не содержал строку
«files: dns mdns4_minimal[NotFoud=return] mdns4»
вместо неё было:
«hosts: files mdns4_minimal [NOTFOUND=return] dns wins»
Которую я преобразовал в:
«hosts: dns mdns4_minimal[NotFoud=return] mdns4 files»
после чего всё заработало

Теперь проверьте, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив

getent passwd
getent group 

Первая команда должна вам вернуть всё содержимое вашего файла /etc/passwd, то есть ваших локальных пользователей, плюс пользователей домена с ID из заданного вами в smb.conf диапазона. Вторая должна сделать тоже самое для групп.

Теперь вы можете взять любого пользователя домена и сделать его, например, владельцем какого-нибудь файла.

Авторизация в Ubuntu через пользователей домена

Несмотря на то, что все пользователи домена фактически стали полноценными пользователями системы (в чём можно убедиться, выполнив последние две команды из предыдущего раздела), зайти ни под кем из них в систему всё ещё нельзя. Для включения возможности авторизации пользователей домена на компьютере с Ubuntu необходимо настроить PAM на работу с Winbind.

Он-лайн авторизация

Для Ubuntu 10.04 и выше добавьте всего одну строку в файле /etc/pam.d/common-session, т.к. PAM и так неплохо справляется с авторизацией:

session  optional  pam_mkhomedir.so skel=/etc/skel/ umask=0077

Для Ubuntu 13.10 чтобы появилось поле ручного ввода логина необходимо в любой файл из папки /etc/lightdm/lightdm.conf/ снизу добавить строку:

greeter-show-manual-login=true

Для Ubuntu 9.10 и ниже придется редактировать несколько файлов (но никто не запрещает использовать этот способ и в 10.04 — он тоже работает):

Последовательность строк в файлах имеет значение!

/etc/pam.d/common-auth

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

/etc/pam.d/common-account

account     sufficient    pam_winbind.so
account     required      pam_unix.so

/etc/pam.d/common-session

session     optional      pam_mkhomedir.so skel=/etc/skel/ umask=0077
session     optional      pam_ck_connector.so nox11
session     required      pam_limits.so
session     required      pam_env.so
session     required      pam_unix.so

/etc/pam.d/common-password

password    sufficient    pam_unix.so try_first_pass use_authtok nullok sha512 shadow
password    sufficient    pam_winbind.so
password    required      pam_deny.so

И, наконец, необходимо перенести запуск Winbind при загрузке системы после всех остальных служб (по умолчанию он запускается с индексом 20). Для этого в терминале выполните следующую команду:

sudo bash -c "for i in 2 3 4 5; do mv /etc/rc$i.d/S20winbind /etc/rc$i.d/S99winbind; done"

Что эквивалентно запуску для каждого уровня (в примере — 4) команды:

mv /etc/rc4.d/S20winbind /etc/rc4.d/S99winbind

В некоторых случаях winbind может иметь иной уровень запуска (например, S02winbind). Поэтому сначала проверьте имена файлов, вполнив команду «ls /etc/rc{2,3,4,5}.d/ | grep winbind» (без кавычек).

Готово, все настройки завершены. Перезагружайтесь и пытайтесь войти с учетной записью пользователя домена.

Офф-лайн авторизация

Часто возникает ситуация, когда домен-контроллер недоступен по различным причинам — профилактика, отключение света или вы принесли ноутбук домой и хотите поработать. В этом случае для Winbind можно настроить кэширование учетных записей пользователей домена. Для этого необходимо сделать следующее.
Добавьте в секцию [global] файла /etc/samba/smb.conf следующие строки:

[global]
   # Возможность оффлайн-авторизации при недоступности доменконтроллера
   winbind offline logon = yes
   # Период кэширования учетных записей, по умолчанию равен 300 секунд
   winbind cache time = 300
   # Необязательная настройка, но избавляет от нудных пауз, указываем контроллер домена dc, 
   # можно указать и ip, но это является плохим тоном
   password server = dc

Обычно этого достаточно. Если же возникают ошибки, то необходимо создать файл /etc/security/pam_winbind.conf со следующим содержанием5):

Внимание! При использовании советов ниже может возникать совершенно случайная ошибка «Сбой аутентификации»! Поэтому все что Вы делаете, Вы делаете на свой страх и риск!

#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#
[global]
  # turn on debugging
  debug = no
  # request a cached login if possible
  # (needs "winbind offline logon = yes" in smb.conf)
  cached_login = yes
  # authenticate using kerberos
  krb5_auth = yes
  # when using kerberos, request a "FILE" krb5 credential cache type
  # (leave empty to just do krb5 authentication but not have a ticket
  # afterwards)
  krb5_ccache_type = FILE
  # make successful authentication dependend on membership of one SID
  # (can also take a name)
  ;require_membership_of =
  silent = yes

Файл /etc/pam.d/gnome-screensaver в таком случае принимает вид:

auth    sufficient      pam_unix.so nullok_secure
auth    sufficient      pam_winbind.so use_first_pass
auth    required        pam_deny.so

А также изменяется файл /etc/pam.d/common-auth:

auth    optional        pam_group.so
auth    sufficient      pam_unix.so nullok_secure  use_first_pass
auth    sufficient      pam_winbind.so use_first_pass
auth    required        pam_deny.so

Ссылки

Понравилась статья? Поделить с друзьями:
  • Linux максимально похожий на windows 10
  • Linux windows mac os что это
  • Lineage 2 interlude не запускается на windows 10
  • Linux как скопировать файл в сетевую папку windows
  • Linux vs windows 10 скорость работы