sshd - авторизация пользователей в AD


Возникла проблема открыть доступ юзерам к shell’у, но поскольку юзерам тяжело запомнить два имени под которыми куда заходить (домен win2003 или FreeBSD), пришлось думать как сделать одно имя для входа на всех компах.

Все настраивалось на FreeBSD 5.5-RELEASE, samba-3.0.23d,1.

Решил сделать авторизацию через winbind.

Настраиваем все по статье.

Далее, чтобы создавались home - устанавливаем pam_mkhomedir:

samba# cd /usr/ports/security/pam_mkhomedir

samba# make install clean

Далее настраиваем sshd для авторизации через winbind и делаем копию на всякий случай:

samba# cd /etc/pam.d

samba# cp sshd sshd.orig

файл /etc/pam.d/sshd

samba# cat /etc/pam.d/sshd

auth required pam_nologin.so no_warn

auth sufficient pam_opie.so no_warn no_fake_prompts

auth requisite pam_opieaccess.so no_warn allow_local

auth required pam_unix.so no_warn try_first_pass

account required pam_login_access.so

account required pam_unix.so

session required pam_permit.so

password required pam_unix.so no_warn try_first_pass

изменяем до такого вида:

samba# ee /etc/pam.d/sshd

auth required pam_nologin.so no_warn

# аутентификация акуанта через winbind

auth sufficient pam_winbind.so

auth sufficient pam_opie.so no_warn no_fake_prompts

auth requisite pam_opieaccess.so no_warn allow_local

auth required pam_unix.so no_warn try_first_pass

# проверка доступности акуанта

account sufficient pam_winbind.so

account required pam_login_access.so

account required pam_unix.so

# создание home

session required pam_mkhomedir.so skel=/usr/share/skel

session required pam_permit.so

password required pam_unix.so no_warn try_first_pass

Если есть надобность ограничить доступ к ssh определенным юзером или группой, то можно использовать параметр pam_winbind require_membership_of=[SID or NAME]

[SID or NAME]: MYDOMAINmygroup или MYDOMAINmyuser

соответственно в файле /etc/pam.d/sshd изменяем соответствующие строки на:

auth sufficient pam_winbind.so require_membership_of=MYDOMAINmygroup

account sufficient pam_winbind.so require_membership_of=MYDOMAINmygroup

Проверяем shell юзеров, по умолчанию в samba стоит /bin/false.

Для изменения добавляем строчку в smb.conf:

samba# ee /usr/local/etc/smb.conf

template shell=/bin/csh

Перезапускаем samba:

samba# /usr/local/etc/rc.d/samba.sh restart

Performing sanity check on Samba configuration: OK

Stopping winbindd.

Waiting for PIDS: 2606.

Stopping smbd.

Stopping nmbd.

Removing stale Samba tdb files: ....... done

Starting nmbd.

Starting smbd.

Starting winbindd.

Создаем каталог, где будут храниться домашние папки юзеров, pam_mkhomedir его не создает:

samba# mkdir /usr/home/DOMAIN

DOMAIN – имя Вашего домена

Проверяем:

samba# tail -fn 30 /var/log/auth.log

Aug 30 11:03:47 samba pam_winbind[22417]: user 'user' granted access

Aug 30 11:03:47 samba pam_winbind[22417]: user 'user' OK

Aug 30 11:03:47 samba pam_winbind[22417]: user 'user' granted access

Примечание: user – пользователь домена

Также можно сделать и на ftp

Может для обычного пользователя, так прокатит, но иногда приходится и кое что менять, для чего нужно права root'а. Получить их можно включив этого юзера в группу wheel или немного подкрутив фрю.

Первый варивант:

Можно установить sudo

samba# cd /usr/ports/security/sudo

samba# make install clean

далее правим файл /usr/local/etc/sudoers добавив в него вот такую строку

user ALL=(ALL) NOPASSWD: ALL

Второй вариант:

Создаем группу в АД и включаем туда тех, кому нужно дать права рута на фри

после чего правим файлик, где заменяем следующие строки

samba# ee/etc/pam.d/su

# auth

auth sufficient pam_rootok.so no_warn

auth sufficient pam_self.so no_warn

#auth requisite pam_group.so no_warn group=wheel root_only fail_safe

#заменяем группу wheel на группу с АД, юзерам которой разрешен вход под рутом

auth requisite pam_group.so no_warn group=freeadmin root_only fail_safe

auth include system

# account

account include system

# session

session required pam_permit.so

Обновлено: 12.03.2015