Samba: аутентификация AD для локальных пользователей

У нас есть много серверов разработки Linux, к которым обычно обращаются через SSH. У каждого разработчика есть локальная учетная запись на каждой коробке, управляемая Puppet. Вход в систему только через закрытые ключи; нет локальных паролей.

Я хотел бы запустить Samba на этих компьютерах и пройти аутентификацию на нашем домене AD. Я не хочу аутентификацию AD для чего-либо, кроме Samba - ко всему остальному обращаются через SSH и закрытые ключи.

Вот мой smb.conf:

[global]
 workgroup = DOMAIN
 server string = Samba Server Version %v
 security = ADS
 realm = DOMAIN.FQDN
 encrypt passwords = yes
 log level = 3
 log file = /var/log/samba/%U.log

[homes]
 comment = Home Directories
 browseable = no
 writable = yes

Я почти уверен, что конфигурация Kerberos в порядке, так как я присоединился к домену.

Соответствующий (то есть, нестандартный) nsswitch.conf линии:

passwd:     files winbind
group:      files winbind

Похоже, проблема в том, что AD UID сопоставляется с UIX UID. Бэкэнд TDB по умолчанию будет создавать "виртуальные" учетные записи UNIX по требованию, когда пользователи AD подключаются, но я не хочу этого - я хочу пользователя foo сопоставить с локальным пользователем foo, Если я добавлю idmap uid а также idmap gid Линии пользователя аутентифицируются, но их учетные записи не сопоставляются с учетными записями UNIX.

Есть идеи? Сомоен, должно быть, сделал это раньше! Я не хочу переходить на использование winbind и AD для предоставления всей информации об учетной записи из-за проблем с поддержанием согласованных UID/GID на всех машинах. Мы также внесли большой вклад в существующую пользовательскую конфигурацию, управляемую Puppet, которую мы не хотим изобретать заново.

2 ответа

Убедитесь, что служба winbind работает.

Настройте в своем /etc/pam.d/samba:

account     [default=bad success=ok user_unknown=ignore]  pam_winbind.so
account     required      pam_permit.so

password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so
session     required      pam_limits.so

auth       required pam_nologin.so
auth sufficient pam_winbind.so use_first_pass
auth required   pam_deny.so

Изменения Pam иногда требуют перезапуска winbind. Не должно, но практический опыт говорит, что делай это в любом случае.

В smb.conf вам также необходимо:

realm = YOURKERBEROSREALMNAME
password server = the host or IP of your ADC
idmap backend = rid:DOMAIN=5000-100000000
idmap uid = 10000-10000000
idmap gid = 10000-10000000
winbind use default domain = Yes
winbind enum users = Yes
winbind enum groups = Yes

Где DOMAIN - это имя вашей рабочей группы или домена, а область соответствует тому, что находится в вашем krb5.conf

Перезапустите сервисы samba после изменений в smb.conf

От http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/idmapper.html

Член Samba сетевого домена Windows (в стиле NT4 или ADS) может быть настроен для обработки сопоставления идентификаторов различными способами. Механизм, который он использует, зависит от того, используется ли демон winbindd и как настроена функциональность winbind. Параметры конфигурации кратко описаны здесь:

Winbind не используется; пользователи и группы являются локальными:

Там, где winbindd не используется, Samba (smbd) использует базовые механизмы UNIX/Linux для определения идентичности входящего сетевого трафика. Это делается с использованием LoginID (имени учетной записи) в запросе на настройку сеанса и передачей его вызову системной функции getpwnam(). Этот вызов реализован с использованием механизма переключения службы имен (NSS) в современных системах UNIX/Linux. Говоря "пользователи и группы являются локальными", мы подразумеваем, что они хранятся только в локальной системе, в / etc / passwd и / etc / group соответственно.

Например, когда пользователь BERYLIUM\WambatW пытается открыть соединение с сервером Samba, входящий запрос SessionSetupAndX сделает системный вызов для поиска пользователя WambatW в файле / etc / passwd.

Эта конфигурация может использоваться с автономными серверами Samba, серверами-членами домена (NT4 или ADS) и для PDC, который использует серверную часть Samba passdb на основе smbpasswd или tdbsam.

Похоже, что если вы просто уберете winbind из уравнения, все будет хонкидореем, если предположить, что ваши пользователи AD такие же, как локальные пользователи / etc / passwd.

Другие вопросы по тегам