Доменная Авторизация в Linux и Vmware
Небольшая статья, по установке доменной авторизации в линуксе. Т.к. сам этим занимался, по горячим следам так сказать.
Задача следующая. Установить линукс, на нем сделать авторизацию через Active Directory, установить Vmware Server 1.x или 2.x и сделать чтобы в них тоже авторизовались пользователи через AD.
- Устанавливаем необходимые пакеты. Samba – собствено самый главный пакет. Samba-client – устанавливать если доступ на шары будет осуществляться с линукс машины. NTP синхронизация времени, очень нужно для авторизации в AD. ACL – Необходимый пакет для установки прав на папки. krb5-workstation – необходимый пакет.
- Испраляем файл /etc/hosts.
192.168.1.2 vmware01.trex vmware01 - В файле /etc/fstab необходимо добавить acl. Это нужно для того чтобы acl работали с этим разделом.
/dev/hda1 / ext3 defaults,acl 1 1 - Делаем ремаунт раздела .
mount -o remount / - Правим файл /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 }
- Проверяем, что настроили все верно.
# kinit administrator@TREXЕсли все верно, никаких ошибок не будет.
- Настраиваем самбу, конфиг файл будет выглядеть примерно так.
[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 = *New*password* %n\n *Retype*new*password* %n\n*passwd:*all*authentication*tokens*updated*successfully* 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 - Вводим сервер в домен
# net ads join -U administrator administrator's password: Using short domain name -- TREX Joined 'VMWARE01' to realm 'TREX'
- Перестартовываем самбу.
/etc/init.d/smb restart - Исправляем файл /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 - Перестартовываем winbind.
/etc/init.d/winbind restart - Набираем команду:
wbinfo -gДолжен получиться список групп.
- Прописываем в /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 права выдаются в веб интерфейсе. Если все настроено правильно, то в добавлении прав будет видно доменных пользователей и группы.
Вроде бы все. Если чтото вспомню допишу.
19.02.2009 (1:20)
Хмм… Однако, зашёл, и сразу увидел то, что на работе отложил в долгий ящик. Статью забрал себе, буду на досуге пробовать
01.08.2009 (12:24)
Даже с помощью статьи наш модный домен не пускает Линукс внутрь…
«kbr5-workstation – необходимый пакет» – kbr5 исправь на krb5/
01.08.2009 (19:24)
Врядли дело в домене…
Поправлю