Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> настройка —> sshd & AD

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

Автор: squid.


   Возникла проблема открыть доступ юзерам к 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]: MYDOMAIN\mygroup или  MYDOMAIN\myuser
соответственно в файле /etc/pam.d/sshd изменяем соответствующие строки на:
auth    sufficient   pam_winbind.so  require_membership_of=MYDOMAIN\mygroup
account sufficient   pam_winbind.so  require_membership_of=MYDOMAIN\mygroup

    Проверяем 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



размещено: 2007-09-04,
последнее обновление: 2007-10-31,
автор: squid


KaMa-CyTpA, 2007-09-04 в 12:57:19

Только сегодня возникла такая необходимость!!!
Спасибо ОГРОМНОЕ!!!

ABorland, 2007-09-04 в 18:03:39

Зачем использовать костыли из самбы и винбинда?
Есть вполне адекватный способ через pam_ldap

squid, 2007-09-04 в 18:47:15

будет время попробую так

Zl0, 2007-09-05 в 9:28:26

Интересная статейка и весьма полезная.

smile, 2007-09-05 в 15:17:32

уже упоминал тут в коментах проблемку и решение: pam_mkhome dir при первом входе создает все, но до этого выбрасывает в / пользователя. Поэтому я в скелетной папке в скрипте логина указывал принудительный cd $HOME.

_ne, 2008-10-21 в 10:21:06

а как оставить свой комментарий к статье из под учётки в АД? мне лень заполнять\запоминать два слова =(

vasyun, 2010-04-13 в 13:32:18

Если есть возможность перепроверьте меня пожалуйста.Но на samba3.2 и выше в ./etc/pam.d/sshd нужно прописывать только auth и session иначе вообще ни как. Я проверял на связке FreeBSD8.0 и разных samba3.2/3.3/3.4. На FreeBSD7.2 + samba3.0 все работает по статье.

PlatinumCat, 2019-07-31 в 16:11:27

Связка FreeBSD12+Samba4.10. Для подключения по ssh нужно в файле /etc/pam.d/sshd раскомментарить строки в которых есть библиотека pam_krb5.so. Этого будет достаточно. Остальное как описано в статье.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1689 секунд
Из них PHP: 51%; SQL: 49%; Число SQL-запросов: 77 шт.
Исходный размер: 20194; Сжатая: 5832