Ввод в домен на базе Windows 2003: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «== Ввод в домен на базе Win 2003 рабочей станции под управлением Simply Linux == === Задача: === Ввести в ...»)
 
Нет описания правки
 
(не показано 45 промежуточных версий 12 участников)
Строка 1: Строка 1:
{{Historical}}
{{Attention|Статья устарела. Более новая статья: [[ActiveDirectoryLogin]]}}
== Ввод в домен на базе Win 2003 рабочей станции под управлением Simply Linux ==
== Ввод в домен на базе Win 2003 рабочей станции под управлением Simply Linux ==


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


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


3) Права администратора домена OFFICE.DOMEN.LOCAL (имя вашего домена).
=== Устанавливаем необходимые пакеты ===
 
==== Устанавливаем необходимые пакеты: ====


  samba-swat
  samba-swat
  samba-client
  samba-client
samba-winbind
  krb5-kinit
  krb5-kinit
  libkrb5
  libkrb5
Строка 20: Строка 23:
  pam_mount
  pam_mount


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


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


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


  ping 192.168.10.11
  ping 192.168.10.11
Строка 36: Строка 39:
  ping: unknown host DC3  
  ping: unknown host DC3  


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


Проверяем его доступность по имени узла:
Проверяем его доступность по имени узла:
Строка 50: Строка 53:
  127.0.0.1 wslinux.office.domen.local wslinux
  127.0.0.1 wslinux.office.domen.local wslinux


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


  ping DC3.OFFICE.DOMEN.LOCAL
  ping DC3.OFFICE.DOMEN.LOCAL
Строка 72: Строка 75:
  64 bytes from dc3.office.domen.local (192.168.10.11): icmp_seq=2 ttl=128 time=0.133 ms  
  64 bytes from dc3.office.domen.local (192.168.10.11): icmp_seq=2 ttl=128 time=0.133 ms  


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


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




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


  # chkconfig --levels 2345 smb on
  # chkconfig --levels 2345 smb on
Строка 87: Строка 90:


  # chkconfig --list | grep smb  
  # chkconfig --list | grep smb  
  smb            0:off 1:off 2:on 3:on 4:on 5:on 6:off  
  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


Запускаем сервис самба:
Запускаем сервис самба:
Строка 93: Строка 103:
  # service smb start
  # service smb start


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


  # service xinetd restart
  # service xinetd restart


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


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


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


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


  #  ip адрес контроллера домена
  #  ip-адрес контроллера домена (в новой версии при Security = ads строку Password server требуется замаскировать)
  Password server = 192.168.10.11
  Password server = 192.168.10.11


Строка 114: Строка 124:
  idmap uid = 10000 - 40000
  idmap uid = 10000 - 40000
  idmap gid = 10000 - 40000
  idmap gid = 10000 - 40000
winbind enum users = yes
  winbind enum groups = yes
  winbind enum groups = yes
winbind enum users = yes
 


  # Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп
  # Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп
Строка 128: Строка 139:
  winbind refresh tickets = yes
  winbind refresh tickets = yes


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


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


Проверяем уровни запуска службы:
Проверяем уровни запуска службы:
Строка 155: Строка 166:
  # service ntpd start
  # service ntpd start


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


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


[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
  [libdefaults]
  [libdefaults]
  default_realm = OFFICE.DOMEN.LOCAL
  default_realm = OFFICE.DOMEN.LOCAL
Строка 175: Строка 180:
  OFFICE.DOMEN.LOCAL = {
  OFFICE.DOMEN.LOCAL = {
  kdc = 192.168.10.11
  kdc = 192.168.10.11
default_domain = office.domen.local
  }
  }
   
   
Строка 190: Строка 194:
  krb4_convert = false
  krb4_convert = false
  }
  }
:'''NB:''' При отсутствии параметра admin_server, у пользователя будет отсутствовать возможность сменить свой пароль средствами Kerberos --[[Участник:AlekseyAvdeev|solo]] 14:03, 2 ноября 2012 (MSK)


Пробуем получить билет авторизации:
Пробуем получить билет авторизации:
Строка 196: Строка 202:
  Password for mad_max@OFFICE.DOMEN.LOCAL:
  Password for mad_max@OFFICE.DOMEN.LOCAL:
   
   
где admin - имя доменного админа, а OFFICE.DOMEN.LOCAL - имя вашего домена.
где admin -- имя доменного админа, а OFFICE.DOMEN.LOCAL -- имя вашего домена (именно заглавными).


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


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


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


  # ldconfig
  # ldconfig


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


Для ввода в домен необходимо дать команду:
Для ввода в домен необходимо дать команду:
Строка 230: Строка 236:
  Joined 'WSLINUX' to realm 'OFFICE.DOMEN.LOCAL'
  Joined 'WSLINUX' to realm 'OFFICE.DOMEN.LOCAL'
   
   
где admin - имя доменного админа, а admin's password — пароль доменного админа.
где admin -- имя доменного админа, а admin's password — пароль доменного админа.
 
:'''NB:''' Для корректного ввода в домен может потребоваться предварительный останов демонов smb и winbind --[[Участник:AlekseyAvdeev|solo]] 14:12, 2 ноября 2012 (MSK)


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


  $ wbinfo -u  
  $ wbinfo -u  
Строка 241: Строка 249:
  …
  …


Для того чтобы в нашу систему можно было логиниться под доменными аккаунтами и авторизация шла через winbind необходимо привести /etc/pam.d/gdm к виду:
Для того, чтобы в нашу систему можно было логиниться под доменными аккаунтами и авторизация шла через winbind, необходимо оставить {{path|/etc/pam.d/gdm}} или {{path|/etc/pam.d/lightdm}} в прежнем виде:
 
<source lang="text">#%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</source>
 
(Для KDE4 это файл /etc/pam.d/kde4)
 
А /etc/pam.d/system-auth-winbind к виду (если его нет, то создать):
 
<source lang="text">#%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</source>
 
И /etc/pam.d/system-auth-use_first_pass-winbind к виду(если его нет, то создать):
<source lang="text">#%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</source>


Не забываем переключить авторизацию на winbind
:('''Внимание!''' Восле такой манипуляции на KDesktop 6 пропадает возможность залогиниться вообще, поэтому я решил сделать обход - см.Примечание --[[Участник:Tora-bora|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 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://team.ru/soft/altlinux_domen.shtml]
* [http://forum.altlinux.org/index.php?topic=376.0 http://forum.altlinux.org/index.php?topic=376.0]
* [http://help.ubuntu.ru/wiki/ввод_в_домен_windows 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
  #%PAM-1.0
  #auth     required    pam_env.so
  auth    required       pam_group.so
#auth    include   system-auth
#auth    required   pam_nologin.so
#account  include    system-auth
#password include    system-auth
#session  include    system-auth
#session  optional    pam_console.so
  auth    include        system-auth-winbind
  auth    include        system-auth-winbind
  auth    required      pam_nologin.so
  auth    required      pam_nologin.so
Строка 256: Строка 373:
  password include        system-auth-winbind
  password include        system-auth-winbind
  session  include        system-auth-winbind
  session  include        system-auth-winbind
session  optional      pam_console.so


А /etc/pam.d/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)


#%PAM-1.0
====Переустановка====
auth        required    pam_securetty.so
После переустановки системы (при сохранении раздела /home) необходимо выставить владельца домашнего каталога доменного пользователя (владелец меняется)
auth        required    pam_nologin.so
  chown -R ivanov /home/DOMAIN/ivanov/
#auth        sufficient    pam_winbind.so
====Смена имени хоста====
auth        sufficient    pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login
Если нужно сменить имя хоста, править HOSTNAME в файле <code>/etc/sysconfig/network</code>
auth        include        system-auth-use_first_pass
====Два IP-адреса====
  account        sufficient    pam_winbind.so
Замечены проблемы со входом доменного пользователя при наличии двух IP-адресов. На этапе первого входа пользователя лучше от второго IP временно отказаться.
account        include        system-auth
password    sufficient    pam_winbind.so
password    include        system-auth-use_first_pass
# We use pam_mkhomedir to create home dirs for incoming domain users
# Note used umask, it will result in rwxr-x--x access rights
#session        required    pam_mkhomedir.so skel=/etc/skel/ umask=0026
session        required    pam_mkhomedir.so skel=/etc/skel/ umask=0077
session        include        system-auth


Перезагружаемся и можем логинится как локальными пользователями системы, так и доменными. Но стоить помнить один ньюанс. Если логин вашего локального пользователя совпадает с доменным, то будет попытка входа только локальным пользователем.
== Дополнения ==
* В случае появления ошибки ''ERROR_DNS_GSS_ERROR'', удалите пакет {{pkg|hostname-hook-hosts}} и удалите из {{path|/etc/hosts}} строку определения
127.0.0.1 <имя хоста>...


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


http://privats.ru/2009/08/integraciya-linux-centos-v-active-directory-part-1.html
В {{path|/etc/lightdm/lightdm.conf}} раскомментируйте строку в группе {{cmd|[SeatDefaults]}}:
greeter-hide-users=true


http://ftp.sumylug.osdn.org.ua/pub/mirrors/ftp.altlinux.org/Master/2.2/docs/admin-html/ch12s07.html
Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.


http://team.ru/soft/altlinux_domen.shtml
Также полезно выключить выбор языка. В файле {{path|/etc/lightdm/lightdm-gtk-greeter.conf}} в группе {{cmd|[greeter]}} укажите
show-language-selector=false


http://forum.altlinux.org/index.php?topic=376.0;wap2=%D0%B2%D0%B2%D0%BE%D0%B4&s[]=%D0%B2&s[]=%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD]
В новых версиях lightdm-gtk-greeter можно указать кнопки явно:
show-indicators=a11y;power


http://help.ubuntu.ru/wiki/%D0%B2%D0%B2%D0%BE%D0%B4_%D0%B2_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD_windows?s[]=%D0%B2%D0%B2%D0%BE%D0%B4&s[]=%D0%B2&s[]=%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD
Полный перечень доступных кнопок:
show-indicators=a11y;power;session;language


== Ссылки ==
* [http://help.ubuntu.ru/wiki/ввод_в_домен_windows Ввод компьютера в домен Windows (под Ubuntu)]
* [https://lists.samba.org/archive/samba/2012-December/170262.html Отладка аутентификации]
* https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto


[[Категория:Admin]]
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}

Текущая версия от 16:19, 21 декабря 2023

Small-pyramides.png
Архивная информация.
Описываемые в этой статье вещи больше не используются и оставлены только для обратной совместимости.


Внимание! Статья устарела. Более новая статья: ActiveDirectoryLogin


Ввод в домен на базе 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 - DOMAIN\username. 
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\администратор 
OFFICE\user1 
OFFICE\user2 
…

Для того, чтобы в нашу систему можно было логиниться под доменными аккаунтами и авторизация шла через 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.

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

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

Примечание

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

Ссылки