sshd+AD

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
vasyun
рядовой
Сообщения: 41
Зарегистрирован: 2008-10-30 10:53:09

sshd+AD

Непрочитанное сообщение vasyun » 2008-12-12 12:17:45

Всем привет!
Я во фре новичок. Подскажите пожалуйста. Все сделал по статье sshd - авторизация пользователей в AD http://www.lissyara.su/?id=1499 Всё работает.
Не устраивает тот факт, что для всех пользователей, у которых homedir создается при первом сеансе ssh, права на homedir выставляются в 755, а мне хочется их выставить например в 700. Пробовал в /etc/pam.d/sshd указывать следующим образом.

Код: Выделить всё

 session   required /usr/local/lib/pam_mkhomedir.so skel=/usr/share/skel umask=0700 dmask=0700 
Удалил homedir, рестартовал самбу и sshd, заново вошел права на homedir опять 755 :st: . Где я ошибаюсь, может какую-то поддержку включить надо?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35282
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: sshd+AD

Непрочитанное сообщение Alex Keda » 2008-12-12 12:50:49

почему-то мне кажется, что права он берёт либо с /home либо с /usr/share/skel...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: sshd+AD

Непрочитанное сообщение f_andrey » 2008-12-12 13:22:49

vasyun писал(а):

Код: Выделить всё

 session   required /usr/local/lib/pam_mkhomedir.so skel=/usr/share/skel umask=0700 dmask=0700 
а не обратнаяли там должна быть маска? хотя могу и ошибаться :oops:
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

vasyun
рядовой
Сообщения: 41
Зарегистрирован: 2008-10-30 10:53:09

Re: sshd+AD

Непрочитанное сообщение vasyun » 2008-12-12 14:41:12

Основная цель - это запретить таким ssh пользователям лазить по homedir-ам др. друга. чтобы каждого только в свой.
to lissyara
Если права берутся с home тогда моя идея вообще не реализуема. Если со skel то я не знаю можно ли менять права на эту папку. А то потом система начнет валится или ругаться, вобщем непонятно.
to f_andrey
Пробовал, эфект тот же.
Еще идеи будут?

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: sshd+AD

Непрочитанное сообщение f_andrey » 2008-12-12 15:43:55

vasyun писал(а):Еще идеи будут?
Как бы это не звучало нелогично и антинаучно, почитать документацию, и разобраться в механизме, а ждать у моря погоды можно вечно.
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

vasyun
рядовой
Сообщения: 41
Зарегистрирован: 2008-10-30 10:53:09

Re: sshd+AD

Непрочитанное сообщение vasyun » 2008-12-12 16:17:19

to f_andrey
  • Извиняюсь за назойливость. Можно хотя бы направление подсказать?
    Документация по SAMBA? Уже не мало времени отнимет. Беглый осмотр Samba Configuration Option Quick Reference http://us1.samba.org/samba/docs/using_samba/appb.html мне ни чего не дал. Опции create mode и directory mode моей проблемы не решили.
    Документации по pam_mkhomedir.so? Буду очень признателен если дадите ссылочку, а то кроме голых примеров ничего не смог найти. Вероятно плохо искал.

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: sshd+AD

Непрочитанное сообщение bagas » 2010-08-31 14:16:16

Добрый день,
Я не увидел, что уже тема создана.
Создал новую. http://forum.lissyara.su/viewtopic.php?f=4&t=28152
Помогите разобраться.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

kilkeny
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-04-08 13:54:33

Re: sshd+AD

Непрочитанное сообщение kilkeny » 2011-05-12 22:16:27

Доброго дня.
Проблема вот какая. Необходимо дать ssh доступ пользователям домена Windows. Не бейте сильно. Судя по количеству постов в инете тема избита. Однако проблема сохраняется.
Система freebsd 8.2 amd64. Домен AD на Windows 2008 SP2.

Бьюсь уже третьи сутки - но решения все равно пока не нашел. А это решение очень нужно!!! Прошу помощи!!!

Доступ к ssh реализован через pam_winbind.

Вот файл /etc/pam.d/sshd:

Код: Выделить всё

auth            sufficient      /usr/local/lib/pam_winbind.so   debug
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
account         sufficient      /usr/local/lib/pam_winbind.so debug
account         required        pam_nologin.so
account         required        pam_login_access.so
account         required        pam_unix.so

# session
session         required        pam_permit.so

# password
password        required        pam_unix.so             no_warn try_first_pass
В smb.conf есть строка, определяющая пользовательский shell:

Код: Выделить всё

template shell=/bin/csh
template homedir = /home/%D/%U

Пользователь test проходит проверку по winbind:

Код: Выделить всё

id test
uid=10015(test) gid=10005(пользователи домена) groups=10005(пользователи домена)

Код: Выделить всё

wbinfo -a test%111111
plaintext password authentication succeeded
challenge/response password authentication succeeded

Код: Выделить всё

ntlm_auth --request-nt-key --username=test --password=11111
NT_STATUS_OK: Success (0x0)
При попытке входя пользователя test по ssh получаем следующее:
трижды запрашивается пароль, но в конце все равно выкидывает

Код: Выделить всё

ssh test@server
Password: 
Password:
Password: 
Permission denied (publickey,keyboard-interactive).
в файле /var/log/auth

Код: Выделить всё

May 12 10:26:12 server sshd[9628]: pam_winbind(sshd): Verify user 'test' with password '111111'
May 12 10:26:12 server sshd[9628]: pam_winbind(sshd): user 'test' granted access
May 12 10:26:12 server sshd[9628]: pam_winbind(sshd): Returned user was 'test'
May 12 10:26:16 server sshd[9629]: pam_winbind(sshd): Verify user 'test' with password '111111'
May 12 10:26:16 server sshd[9629]: pam_winbind(sshd): user 'test' granted access
May 12 10:26:16 server sshd[9629]: pam_winbind(sshd): Returned user was 'test'
May 12 10:26:19 server sshd[9630]: pam_winbind(sshd): Verify user 'test' with password '111111'
May 12 10:26:19 server sshd[9630]: pam_winbind(sshd): user 'test' granted access
May 12 10:26:19 server sshd[9630]: pam_winbind(sshd): Returned user was 'test'
в файле /var/log/messages

Код: Выделить всё

May 12 10:26:12 server sshd[9628]: pam_winbind(sshd): user 'test' granted access
May 12 10:26:12 server kernel: pid 9628 (sshd), uid 0: exited on signal 11
May 12 10:26:16 server sshd[9629]: pam_winbind(sshd): user 'test' granted access
May 12 10:26:16 server kernel: pid 9629 (sshd), uid 0: exited on signal 11
May 12 10:26:19 server sshd[9630]: pam_winbind(sshd): user 'test' granted access
May 12 10:26:19 server kernel: pid 9630 (sshd), uid 0: exited on signal 11
в файле /var/log/debug

Код: Выделить всё

May 12 10:26:07 server sshd[9628]: pam_winbind(sshd): [pamh: 0x801e089c0] ENTER: pam_sm_authenticate (flags: 0x0001)
May 12 10:26:07 server sshd[9628]: pam_winbind(sshd): getting password (0x00000001)
May 12 10:26:12 server sshd[9628]: pam_winbind(sshd): request wbcLogonUser succeeded
May 12 10:26:12 server sshd[9628]: pam_winbind(sshd): [pamh: 0x801e089c0] LEAVE: pam_sm_authenticate returning 0 (PAM_SUCCESS)
May 12 10:26:12 server sshd[9628]: pam_winbind(sshd): [pamh: 0x801e089c0] ENTER: pam_sm_acct_mgmt (flags: 0x0000)
May 12 10:26:12 server sshd[9629]: pam_winbind(sshd): [pamh: 0x801e089c0] ENTER: pam_sm_authenticate (flags: 0x0001)
May 12 10:26:12 server sshd[9629]: pam_winbind(sshd): getting password (0x00000001)
May 12 10:26:16 server sshd[9629]: pam_winbind(sshd): request wbcLogonUser succeeded
May 12 10:26:16 server sshd[9629]: pam_winbind(sshd): [pamh: 0x801e089c0] LEAVE: pam_sm_authenticate returning 0 (PAM_SUCCESS)
May 12 10:26:16 server sshd[9629]: pam_winbind(sshd): [pamh: 0x801e089c0] ENTER: pam_sm_acct_mgmt (flags: 0x0000)
May 12 10:26:16 server sshd[9630]: pam_winbind(sshd): [pamh: 0x801e089c0] ENTER: pam_sm_authenticate (flags: 0x0001)
May 12 10:26:16 server sshd[9630]: pam_winbind(sshd): getting password (0x00000001)
May 12 10:26:19 server sshd[9630]: pam_winbind(sshd): request wbcLogonUser succeeded
May 12 10:26:19 server sshd[9630]: pam_winbind(sshd): [pamh: 0x801e089c0] LEAVE: pam_sm_authenticate returning 0 (PAM_SUCCESS)
May 12 10:26:19 server sshd[9630]: pam_winbind(sshd): [pamh: 0x801e089c0] ENTER: pam_sm_acct_mgmt (flags: 0x0000)
Есть еще один момент - существование домашнего каталога пользователя.
Для того, что бы каталог создавался автоматически необходимо собрать из портов модуль pam_mkhomedir.
Он у меня собран.
Но если добавлять этот модуль в раздел session, где он и должен быть, не происходит ровным счетом ничего. Где-то на просторах сети нашел, что его надо переместить в раздел auth.
Итак, добавляем его в файл /etc/pam.d/sshd:

Код: Выделить всё

auth            required        /usr/local/lib/pam_mkhomedir.so debug
дефолтные параметры модуля меня устраивают.
Однако при входе я получил тоже самое.
В файле /var/log/auth.log

Код: Выделить всё

May 12 10:35:33 server sshd[9765]: in openpam_dispatch(): /usr/local/lib/pam_mkhomedir.so: no pam_sm_authenticate()
May 12 10:35:37 server sshd[9765]: pam_winbind(sshd): Verify user 'test' with password '111111'
May 12 10:35:37 server sshd[9765]: pam_winbind(sshd): user 'test' granted access
May 12 10:35:37 server sshd[9765]: pam_winbind(sshd): Returned user was 'test'
May 12 10:35:37 server sshd[9766]: in openpam_dispatch(): /usr/local/lib/pam_mkhomedir.so: no pam_sm_authenticate()
May 12 10:35:41 server sshd[9766]: pam_winbind(sshd): Verify user 'test' with password '111111'
May 12 10:35:41 server sshd[9766]: pam_winbind(sshd): user 'test' granted access
May 12 10:35:41 server sshd[9766]: pam_winbind(sshd): Returned user was 'test'
May 12 10:35:41 server sshd[9767]: in openpam_dispatch(): /usr/local/lib/pam_mkhomedir.so: no pam_sm_authenticate()
May 12 10:35:44 server sshd[9767]: pam_winbind(sshd): Verify user 'test' with password '111111'
May 12 10:35:44 server sshd[9767]: pam_winbind(sshd): user 'test' granted access
May 12 10:35:44 server sshd[9767]: pam_winbind(sshd): Returned user was 'test'
в файле /var/log/messages

Код: Выделить всё

May 12 10:35:33 server sshd[9765]: in openpam_dispatch(): /usr/local/lib/pam_mkhomedir.so: no pam_sm_authenticate()
May 12 10:35:37 server sshd[9765]: pam_winbind(sshd): user 'test' granted access
May 12 10:35:37 server sshd[9766]: in openpam_dispatch(): /usr/local/lib/pam_mkhomedir.so: no pam_sm_authenticate()
May 12 10:35:37 server kernel: pid 9765 (sshd), uid 0: exited on signal 11
May 12 10:35:41 server sshd[9766]: pam_winbind(sshd): user 'test' granted access
May 12 10:35:41 server sshd[9767]: in openpam_dispatch(): /usr/local/lib/pam_mkhomedir.so: no pam_sm_authenticate()
May 12 10:35:41 server kernel: pid 9766 (sshd), uid 0: exited on signal 11
May 12 10:35:44 server sshd[9767]: pam_winbind(sshd): user 'test' granted access
May 12 10:35:44 server kernel: pid 9767 (sshd), uid 0: exited on signal 11
в debug файле строки ровно теже, что и без модуля.

Таким образом получается, что модуль pam_mkhomedir либо не работает, либо я его использую не по назначению...

Кстати, если создать домашний каталог пользователя test руками и дать ему соответствующего хозяина и группу ничего не меняется. Пользователь все равно не может войти в систему.

Локально в консоли проверить не могу. Сервак очень далеко от меня. А на месте нет никого, кто бы хоть что-то мог сделать в консоли.

В политиках безопасности домена и контроллера домена выставлено следующий параметр:
Сетевая безопасность: уровень проверки подлинности LAN Manager - LM и NTLM ответы с использованием сессионной безопастности.
На сколько я понял - это означает, что будут выдаватся ответы LM и NTLM, а при согласовании и NTLMv2.

На самом деле с ntlm аутентификацией проблем нет. На этом сервере успешно работает squid с ntlm аутентификацией пользователей. Также успешно работает dovecot SASL. Клиенты из Thunderbird-а успешно проходят аутентификацию по NTLM.
Проверка существования пользователей домена также успешно проходит по nss_winbind.
Но как только дело доходит до проверки пароля средствами pam_winbind - все, дело дрянь. Ни одна проверка не проходит.

Дополнительно привожу файлы nsswitch.conf и krb5.conf:

Код: Выделить всё

# cat /etc/krb5.conf
[libdefaults]
        default_realm = RS.LOCAL
        clockskew = 300
        ticket_lifetime = 24H
        dns_lookup_realm = false
        dns_lookup_kdc = false
        kdc_req_checksum_type = 2
        checksum_type = 2
        ccache_type = 1
        forwardable = true
        proxiable = true

[realms]
        RS.LOCAL = {
                kdc = tcp/rs-dc.rs.local
                admin_server = tcp/rs-dc.rs.local
                default_domain = rs.local
        }
[domain_realm]
        RS.LOCAL = RS.LOCAL
        .rs.local = RS.LOCAL

Код: Выделить всё

# cat /etc/nsswitch.conf
#
# nsswitch.conf(5) - name service switch configuration file
# $FreeBSD: src/etc/nsswitch.conf,v 1.1.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $
#
group: files winbind
hosts: files dns
networks: files
passwd: files winbind
shells: files
services: files
protocols: files
rpc: files

Код: Выделить всё

# klist
Credentials cache: FILE:/tmp/krb5cc_0
        Principal: SERVER$@RS.LOCAL

  Issued           Expires          Principal
May 12 11:40:18  May 12 21:40:18  krbtgt/RS.LOCAL@RS.LOCAL
May 12 11:40:18  May 12 21:40:18  ldap/rs-dc.rs.local@RS.LOCAL
May 12 11:40:18  May 12 21:40:18  ldap/rs-dc.rs.local@RS.LOCAL
May 12 11:40:18  May 12 21:40:18  ldap/rs-dc.rs.local@RS.LOCAL
May 12 11:40:18  May 12 21:40:18  ldap/rs-dc.rs.local@RS.LOCAL
при проверке лога аудита безопасности на контроллере домена нашел вот что:

Код: Выделить всё

Имя журнала:   Security
Подача:        Microsoft-Windows-Security-Auditing
Дата:          12.05.2011 13:44:11
Код события:   4776
Категория задачи:Проверка учетных данных
Уровень:       Сведения
Ключевые слова:Аудит выполнен успешно
Пользователь:  Н/Д
Компьютер:     rs-dc.rs.local
Описание:
Контроллер домена попытался проверить учетные данные учетной записи.

Пакет проверки подлинности:	MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Учетная запись входа:	test
Исходная рабочая станция:	\\SERVER
Код ошибки:	0x0
Xml события:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-a5ba-3e3b0328c30d}" />
    <EventID>4776</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>14336</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2011-05-12T09:44:11.132Z" />
    <EventRecordID>604506</EventRecordID>
    <Correlation />
    <Execution ProcessID="636" ThreadID="9240" />
    <Channel>Security</Channel>
    <Computer>rs-dc.rs.local</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="PackageName">MICROSOFT_AUTHENTICATION_PACKAGE_V1_0</Data>
    <Data Name="TargetUserName">test</Data>
    <Data Name="Workstation">\\SERVER</Data>
    <Data Name="Status">0x0</Data>
  </EventData>
</Event>
и таких записи три - совпадает с тем, сколько раз запрашивает пароль sshd

Код: Выделить всё

ssh test@server
Password: 
Password: 
Password: 
Permission denied (publickey,keyboard-interactive).
Только я вот чего не понял, а прошел ли проверку пользователь test?
То, что аудит выполнен успешно - это понятно. Но вот результат проведения аудита каков? Или успешный аудит и означает что ползователь успешно прошел проверку? Тогда я вообще не понимаю где здесь собака зарыта...