Павел Ласточкин wrote:
… но не получается настроить PAM, чтобы пользователи домена могли авторизоваться на компьютере.
К сожалению пришлось на время отвлечься от данного вопроса, но сейчас идем с новой силой.
Как оказалось надо было подправить конфиги samba и PAM.
Итак, авторизоваться в системе используя учетную запись MS AD удалось:
0. Введение
Имеем:
Домен: DEMO.LOCAL
Контроллер домена: pdc
компьютер: test01
1. Установка необходимых пакетов:
# USE="acl client cups ldap pam winbind ads gnutls" emerge -av samba
# emerge krb5
2. Не знаю почему, но у меня samba после установки не стартует автоматически, поэтому:
# rc-update add samba default
3. И добавляем winbind в конфиг запуска samba:
в файле /etc/conf.d/samba
строчку
daemon_list="smbd nmbd"
меняем на
daemon_list="smbd nmbd winbind"
4. Создаем конфиг /etc/samba/smb.conf:
[global]
netbios name = test01
workgroup = DEMO
security = ADS
realm = DEMO.LOCAL
encrypt passwords = yes
idmap config *:backend = tdb
idmap config *:range = 70001-80000
idmap config SAMDOM:backend = ad
idmap config SAMDOM:schema_mode = rfc2307
idmap config SAMDOM:range = 500-40000
winbind use default domain = Yes
winbind nss info = rfc2307
winbind trusted domains only = no
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = Yes
winbind refresh tickets = yes
template shell = /bin/bash
template homedir = /home/%U
5. Проверяем:
# testparm
Смотрим есть ли ошибки или предупреждения, если появится:
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Без перезагрузки можно устранить так:
# ulimit -n 16384
Для сохранения после перезагрузки отредактировать файл /etc/security/limits.conf
Добавить в конец файла строки:
* - nofile 16384
root - nofile 16384
6. Настраиваем Kerberos:
В файл “/etc/krb5.conf” записываем параметры домена:
[libdefaults]
default_realm = DEMO.LOCAL
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]
DEMO.LOCAL = {
kdc = pdc
admin_server = pdc
default_domain = DEMO.LOCAL
}
[domain_realm]
.demo.local = DEMO.LOCAL
demo.local = DEMO.LOCAL
[login]
krb4_convert = false
krb4_get_tickets = false
Проверяем настройки получением билета:
# kinit Администратор
Если не было сообщений об ошибках, то проверяем полученный билет:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Администратор@DEMO.LOCAL
Valid starting Expires Service principal
12.07.2018 08:57:06 12.07.2018 18:57:06 krbtgt/DEMO.LOCAL@DEMO.LOCAL
renew until 13.07.2018 08:57:04
7. Вводим в домен
# net ads join -U Администратор
Проверяем что вошли в домен
# net ads testjoin
8. Добавление Winbind в качестве источника пользователей и групп
Для этого в файле /etc/nsswitch.conf приводим строки к виду:
passwd: files ldap winbind
shadow: files ldap winbind
group: files ldap winbind
9. Проверяем работу в домене
# wbinfo -t
checking the trust secret for domain DCN via RPC calls succeeded
А так же, что Winbind увидел пользователей и группы из AD командами
# wbinfo -u
# wbinfo -g
Теперь проверяем, что CLD запрашивает у Winbind информацию о пользователях и группах, выполнив:
# getent passwd
# getent group
10. Авторизация пользователей домена в системе
Содержимое файла /etc/pam.d/system-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
account sufficient pam_winbind.so
account required pam_unix.so
account sufficient pam_ldap.so
password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password sufficient pam_unix.so nullok sha256 shadow use_authtok
password optional pam_ecryptfs.so
password sufficient pam_ldap.so
password required pam_deny.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_env.so
session required pam_limits.so
-session optional pam_loginuid.so
-session optional pam_elogind.so
session required pam_unix.so
session optional pam_ecryptfs.so unwrap
session optional pam_ldap.so
Заключение
Теперь можно авторизоваться в CLD используя учетку MS AD.
Главная задача выполнена, не без проблем пока, но можно уже планировать внедрение…
Проблемы
1. Не знаю как поменять пароль доменного пользователя через GUI