Доменная Авторизация в Linux и Vmware

Небольшая статья, по установке доменной авторизации в линуксе. Т.к. сам этим занимался, по горячим следам так сказать.

Задача следующая. Установить линукс, на нем сделать авторизацию через Active Directory, установить Vmware Server 1.x или 2.x и сделать чтобы в них тоже авторизовались пользователи через AD.

  1. Устанавливаем необходимые пакеты. Samba — собствено самый главный пакет. Samba-client — устанавливать если доступ на шары будет осуществляться с линукс машины. NTP синхронизация времени, очень нужно для авторизации в AD. ACL — Необходимый пакет для установки прав на папки. krb5-workstation — необходимый пакет.
  2. Испраляем файл /etc/hosts. 192.168.1.2 vmware01.trex vmware01
  3. В файле /etc/fstab необходимо добавить acl. Это нужно для того чтобы acl работали с этим разделом. /dev/hda1 / ext3 defaults,acl 1 1
  4. Делаем ремаунт раздела . mount -o remount /
  5. Правим файл /etc/krb5.conf Необходимо соблюдать капслок. [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = TREX dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h forwardable = yes # 192.168.1.1 Домен контроллер # TREX название домена, 192.168.1.1 - доменный контролер [realms] TREX = { kdc = 192.168.1.1:88 admin_server = 192.168.1.1:749 default_domain = trex kdc = 192.168.1.1 } [domain_realm] .trex = TREX trex = TREX [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
  6. Проверяем, что настроили все верно. # kinit administrator@TREX

Если все верно, никаких ошибок не будет.
7. Настраиваем самбу, конфиг файл будет выглядеть примерно так. [global] workgroup = TREX netbios name = VMWARE01 server string = WMWare Server 01 log file = /var/log/samba/%m.log max log size = 50 security = ADS realm = TREX encrypt passwords = yes server signing = yes smb passwd file = /etc/samba/smbpasswd allow trusted domains = no unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = Newpassword* %n\n Retypenewpassword %n\npasswd:allauthenticationtokensupdatedsuccessfully* pam password change = yes obey pam restrictions = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = no idmap domains = TREX idmap config TREX:backend = rid idmap config TREX:range = 10000-1000000 #Устаревшая запись, в новых версиях ругается в логах. #WARNING: idmap backend uses obsolete and deprecated 'idmap_' prefix. #idmap uid = 10000-1000000 #idmap gid = 10000-1000000 #idmap backend = idmap_rid:TREX=10000-1000000 winbind use default domain = yes winbind separator = + winbind enum users = yes winbind enum groups = yes template shell = /bin/bash # Путь до домашней папки будет вида /home/TREX/user template homedir = /home/%D/%U #при возникновении ошибок о принтерах. Нужно добавить вот эти 5 строчек #Unable to connect to CUPS server localhost:631 - Connection refused load printers = no (this alone isn't enough) show add printer wizard = no printing = none printcap name = /dev/null disable spoolss = yes
8. Вводим сервер в домен # net ads join -U administrator administrator's password: Using short domain name -- TREX Joined 'VMWARE01' to realm 'TREX'
9. Перестартовываем самбу. /etc/init.d/smb restart
10. Исправляем файл /etc/nsswitch.conf, чтобы выглядел он примерно так. passwd: compat winbind files shadow: compat winbind files group: compat winbind files protocols: files winbind services: files winbind netgroup: files winbind automount: files winbind nisplus
11. Перестартовываем winbind. /etc/init.d/winbind restart
12. Набираем команду: wbinfo -g

Должен получиться список групп.
13. Прописываем в /etc/pam.d/system-auth auth required pam_env.so auth sufficient pam_unix.so likeauth nullok auth sufficient pam_krb5.so use_first_pass auth sufficient pam_smb_auth.so use_first_pass nolocal auth sufficient pam_winbind.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_succeed_if.so uid < 100 quiet account sufficient pam_krb5.so account sufficient pam_winbind.so account required pam_permit.so password requisite pam_cracklib.so retry=3 password sufficient pam_unix.so nullok use_authtok md5 shadow password sufficient pam_krb5.so use_authtok password sufficient pam_winbind.so use_authtok password required pam_deny.so session required pam_limits.so session required pam_unix.so session optional pam_krb5.so

Основная настройка на этом заканчивается. Теперь необходимо настроить ssh, чтобы он пускал по доменному паролю.

Для этого в файле /etc/pam.d/sshd пишем такие строки.

#%PAM-1.0 auth include system-auth account required pam_nologin.so account include system-auth password include system-auth session optional pam_keyinit.so force revoke session include system-auth session required pam_loginuid.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

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

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

auth include system-auth

Надо заменить на такую:

auth sufficient pam_winbind.so require_membership_of=S-1-5-21-1343024091-1284227242-725345543-10226

Где вот это длинное и не понятное S-1…. есть ID вашей группы. Получить можно так:

# wbinfo -n "IT" S-1-5-21-1343024091-1284227242-725345543-10226 Domain Group (2)

На этом заканчивается настройка ssh.

Теперь перейдем в VMWare Server. После установки необходимо поправить файл:

/etc/pam.d/vmware-authd

Он должен выглядеть примерно так:

#%PAM-1.0 auth sufficient pam_unix.so shadow nullok auth sufficient pam_winbind.so use_first_pass auth required pam_unix_auth.so shadow nullok account sufficient pam_unix.so account sufficient pam_winbind.so account required pam_unix_acct.so

Несколько коментариев:

  • При установки Vmware server 1.x на 64битную систему, необходимо доставить samba-common.i386, и в файле vmware-authd, прописать путь до 32битной библиотеки pam_winbind.so, т.к. с 64битной работать это не будет.
  • Для Vmware Server 1.x права раздаются на уровне операционной системы. Для выдачи прав на виртуальную машину, необходимо писать следующее: setfacl -m u:"TREX+inot":rwx /vmware/vm-001
  • В Vmware Server 2.0 права выдаются в веб интерфейсе. Если все настроено правильно, то в добавлении прав будет видно доменных пользователей и группы.

Вроде бы все. Если чтото вспомню допишу.