Годится не только для debian-based дистрибутивов, но, думаю, и для большинства Unix-систем, где есть samba, kerberos и winbind. Задачка несложная, ввести рабочую станцию (или сервер, неважно) в домен Active Directory и получить возможность авторизации доменных пользователей как графически, так и по ssh. Мне для успешной настройки потребовались пакеты samba, winbind, krb5-user, krb5-config, nscd. Необходимые для доменной авторизации пользователей модули PAM (например, pam_winbind) были установлены автоматически как зависимости.
Исходные данные: имеется домен example.org (win2k3), рабочая станция user-test (Debian Sid), Администратор домена admin, пользователь домена user. В качестве системного DNS используются контроллеры домена (директивы nameserver в resolv.conf или dns-nameserver в interfaces). Необходимые правки конфигов:
smb.conf:
[global]
workgroup = EXAMPLE
netbios name = user-test
server string = test debian pc
security = ADS
preferred master = no
disable spoolss = Yes
show add printer wizard = No
idmap config * : range = 15000-20000
#winbind separator = +
winbind use default domain = Yes
template shell = /bin/bash
use sendfile = Yes
realm = example.org
log file = /var/log/samba/log.full
load printers = no
printing = bsd
printcap name = /dev/null
krb5.conf:
[libdefaults]
default_realm = EXAMPLE.ORG
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
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]
EXAMPLE.ORG = {
kdc = dc1.example.org
kdc = dc2.example.org
admin_server = dc1.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORG
example.org = EXAMPLE.ORG
[login]
krb4_convert = true
krb4_get_tickets = false
nsswitch.conf:
#passwd: compat
passwd: files winbind
#group: compat
group: files winbind
#shadow: compat
shadow: files winbind
#hosts: files dns
hosts: files dns winbind
pam.d/common-auth:
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
pam.d/common-password:
password [success=2 default=ignore] pam_unix.so obscure sha512pam.d/common-account:
password [success=1 default=ignore] pam_winbind.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.sopam.d/common-session:
account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so
account requisite pam_deny.so
account required pam_permit.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session sufficient pam_unix.so
session sufficient pam_sufficient.so
После правки коифигов и перезапуска сервисов присоединяемся к домену, предварительно синхронизировав время с контроллером домена (net time set dc1.example.org):
net ads join -Uadmin
admin's password:
Using short domain name -- EXAMPLE
Joined 'USER-TEST' to realm 'EXAMPLE.COM'Проверим успешность ввода с помощью wbinfo:
root@user-test:~# wbinfo -tКоманды wbinfo -u и wbinfo -g должны показать список пользователей и групп Active Directory.
checking the trust secret for domain EXAMPLE via RPC calls succeeded
надо полагать все получилось? когда день "ч"?
ОтветитьУдалитьЧто должно произойти в этот день?
ОтветитьУдалитьПолучилось, да. Записана выжимка минимально необходимых действий.
В день "Ч" Среда должна обрести домен ;)
ОтветитьУдалитьЗдесь другой usecase - среде нужно решение с точностью до наоборот.
ОтветитьУдалить