[РЕШЕНО] VSFTPD+SAMBA+PAM

Доброго времени суток, форумчане.
Есть проблема по использованию этой связки, а именно - не хочет создавать домашние папки для доменных пользователей вошедших на ФТП.
уже неделю бодаюсь, ничего сделать не могу а сроки поджимаю.

Вот мои конфиги.
smb.conf

[global]
   netbios name = R19FTP
   workgroup = MAIN
   realm = MAIN.RUSSIANPOST.RU
   server string = R19FTP
   security = ads
   encrypt passwords = true
   dns proxy = no
   domain master = no
   local master = no
   preferred master = no
   os level = 0
   domain logons = no
   hosts allow = 192.168. 127. 10.67.

   log file = /var/log/samba/log.%m
   max log size = 50
   interfaces = 127.0.0.1/8 10.67.1.2/24

   display charset = UTF-8
   unix charset = UTF-8
   dos charset = cp866

   idmap cache time = 1
   idmap negative cache time = 1

   winbind use default domain = yes
   winbind uid = 10000-80000
   winbind gid = 10000-80000
   winbind enum users = yes
   winbind enum groups = yes
   winbind refresh tickets = yes
   winbind nss info = rfc2307
   winbind offline logon = true
   winbind cache time = 1

   max protocol = smb2
   oplocks = yes
   level2 oplocks = yes
   kernel oplocks = no

   create mask = 0777

[likeonyx]
   comment = "FTP Share"
   path = /var/ftp/ops/likeonyx
   nt acl support = yes
   public = no
   guest ok = no
   printable = no
   browseable = no
   writable = yes

vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=NO
ftpd_banner=Welcome to FTP of the UFPS Republic of Khakassia.
chroot_local_user=YES
listen=YES

seccomp_sandbox=NO
allow_writeable_chroot=YES

# Logs
log_ftp_protocol=YES
xferlog_file=/var/log/xferlog
xferlog_enable=YES

local_max_rate=0
use_localtime=YES

#pam_service_name=ftp
session_support=YES

pasv_enable=YES
#pasv_max_port=50000
#pasv_min_port=60000

#max_login_fails=5
#deny_file={*.lnk}
#hide_file={*.lnk}

#lock_upload_files=YES

#delete_failed_uploads=YES

#local_root=/var/ftp

pam
ftp

auth     include   vsftpd-winbind

# If this is enabled, anonymous logins will fail because the 'ftp' user does
# not have a "valid" shell, as listed in /etc/shells.
#
# If you enable this, it is recommended that you do *not* give the 'ftp'
# user a real shell. Instead, give the 'ftp' user /bin/false for a shell and
# add /bin/false to /etc/shells.
# auth     required  pam_shells.so

account  include   vsftpd-winbind

session  include   vsftpd-winbind

vsftpd-winbind

#%PAM-1.0
# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.6/system-auth-winbind.pam,v 1.1 2011/06/30 15:50:28 dagger Exp $


auth        required      pam_env.so debug
auth        required      pam_winbind.so require_membership_of=R19-FTP-ACCESS debug debug_state
auth        sufficient    pam_winbind.so require_membership_of=R19-FTP-ACCESS debug debug_state
auth        required      pam_deny.so debug

account     sufficient    pam_winbind.so require_membership_of=R19-FTP-ACCESS debug debug_state
#account     required      pam_deny.so

password    required      pam_cracklib.so retry=3
password    sufficient    pam_unix.so nullok use_authtok md5 shadow
password    required      pam_deny.so

session     required      pam_mkhomedir.so skel=/etc/skel/ umask=0022
session     required      pam_limits.so
session     required      pam_unix.so

Если логи нужны говорите что выложить.
Очень прошу помощи.

P.S.
у пользователей домена в атрибуте unixHomeDirectory стоит /var/ftp

И кто, по твоему, их должен

И кто, по твоему, их должен создавать ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

в pam'е есть запись

в pam'е есть запись mkhomedir.
я так понял что это именно так должно работать

вроде нашел в чем

вроде нашел в чем затык:
нужно чтобы линукс читал атрибут unixHomeDirectory в настройках доменных пользователей.
подскажите кто знает как это сделать?

По моему ты забыл прикрутит

По моему ты забыл прикрутит pam-ldap , nss ldap и т.д

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

вся интересность заключается

вся интересность заключается в том что на прошлом серваке без ldap'а все работает
вроде все уже сделал как на старом, а он все равно ругается 500:OOPS cannot change directory: /home/MAIN/.....
мне нужно чтобы они попадали совсем в другую директорию /var/ftp.

есть идеи?

/

NINJA2121 написал(а):
вся интересность заключается в том что на прошлом серваке без ldap'а все работает

Есть обоснованное мнение, что, с учётом цитированных конфигов, s/без ldap'а/без ада/.

NINJA2121 написал(а):
есть идеи?

Какие ещё атрибуты с какими значениями есть в контейнере описания пользователя?
Значения хэшей можно опустить. ☺

:wq
--
Live free or die

.

slepnoga написал(а):
По моему ты забыл прикрутит pam-ldap , nss ldap и т.д

А заодно попрощаться с прелестью использования выделенной (виртуальной) базы пользователей вместо системной?

:wq
--
Live free or die

.

NINJA2121 написал(а):
вроде нашел в чем затык:
нужно чтобы линукс читал атрибут unixHomeDirectory в настройках доменных пользователей.
подскажите кто знает как это сделать?

Не разделяю твоего оптимизма.

Предлагаю начать с Начала: как (и где) по-твоему оно должно работать?
Система у тебя использует свою авторизацию (тогда не вижу приземления базы ада относительно системного пользователя) или внешнюю (в аду)?
Где блок запроса демоном FTP информации о пользователе?
Самба зачем? Отстроена и работает (и проблема только в FTP)?

:wq
--
Live free or die

Anarchist

Anarchist написал(а):
NINJA2121 написал(а):
вроде нашел в чем затык:
нужно чтобы линукс читал атрибут unixHomeDirectory в настройках доменных пользователей.
подскажите кто знает как это сделать?

Не разделяю твоего оптимизма.

Предлагаю начать с Начала: как (и где) по-твоему оно должно работать?
Система у тебя использует свою авторизацию (тогда не вижу приземления базы ада относительно системного пользователя) или внешнюю (в аду)?
Где блок запроса демоном FTP информации о пользователе?
Самба зачем? Отстроена и работает (и проблема только в FTP)?

судя по всему, оно должно работать примерно так:
1. юзер коннектится к фтп
2. на запрос логина он отдает свой логин
3. на запрос пароля он отдает свой пароль
4. пам авторизует пользователя в аду
5. винбинд получает контейнер атрибутов пользователя и передает его vsftpd
6. vsftpd использует атрибут unixHomeDirectory для chroot

или я что-то не понял?
может кто поделится ссылочкой полезной по топику, хотел в свое время такое же решение реализовать, но так и не разобрался как все это связать в кучу, плюнул и забыл! :)

anomality

anomality написал(а):
Anarchist написал(а):
NINJA2121 написал(а):
вроде нашел в чем затык:
нужно чтобы линукс читал атрибут unixHomeDirectory в настройках доменных пользователей.
подскажите кто знает как это сделать?

Не разделяю твоего оптимизма.

Предлагаю начать с Начала: как (и где) по-твоему оно должно работать?
Система у тебя использует свою авторизацию (тогда не вижу приземления базы ада относительно системного пользователя) или внешнюю (в аду)?
Где блок запроса демоном FTP информации о пользователе?
Самба зачем? Отстроена и работает (и проблема только в FTP)?

судя по всему, оно должно работать примерно так:
1. юзер коннектится к фтп
2. на запрос логина он отдает свой логин
3. на запрос пароля он отдает свой пароль
4. пам авторизует пользователя в аду
5. винбинд получает контейнер атрибутов пользователя и передает его vsftpd
6. vsftpd использует атрибут unixHomeDirectory для chroot

или я что-то не понял?
может кто поделится ссылочкой полезной по топику, хотел в свое время такое же решение реализовать, но так и не разобрался как все это связать в кучу, плюнул и забыл! :)

Все именно так как написал Anarchist Вот только как это все до ума довести не могу понять. да и перебор старых конфигов не помогает ибо не при мне все это делалось, да и в силу своих знаний в области UNIX.

.

NINJA2121 написал(а):
Все именно так как написал Anarchist

Вообще-то я написал список вопросов.
Который, впрочем, можно использовать как учебный план.

NINJA2121 написал(а):
Вот только как это все до ума довести не могу понять.

Доводить до ума имеет смысл только на базе поверенного практикой понимания принципа работы системы.

NINJA2121 написал(а):
да и перебор старых конфигов не помогает ибо не при мне все это делалось, да и в силу своих знаний в области UNIX.

Ты уверен, что на базе старых конфигов система работала ожидаемым образом?

:wq
--
Live free or die

Anarchist

Anarchist написал(а):
NINJA2121 написал(а):
Все именно так как написал Anarchist

Вообще-то я написал список вопросов.
Который, впрочем, можно использовать как учебный план.

NINJA2121 написал(а):
Вот только как это все до ума довести не могу понять.

Доводить до ума имеет смысл только на базе поверенного практикой понимания принципа работы системы.

NINJA2121 написал(а):
да и перебор старых конфигов не помогает ибо не при мне все это делалось, да и в силу своих знаний в области UNIX.

Ты уверен, что на базе старых конфигов система работала ожидаемым образом?

Анархист, а можно без философии? если что-то неверно описано, прошу меня поправить, если все верно -- подскажите мануал.

ps. если человек говорит про старые конфиги, значит там все работает ожидаемо, мне кажется.

Вас никто НЕ обязан учить

anomality написал(а):
...Анархист, а можно без философии? если что-то неверно описано, прошу меня поправить, если все верно -- подскажите мануал.

1. Вас никто НЕ обязан учить так, как Вам нравится/хочется. Или принимайте как есть, или ищите инфу сами.
2. Каждый в праве выбирать свою форму изложения, если это не нарушает правил форума.

anomality написал(а):
ps. если человек говорит про старые конфиги, значит там все работает ожидаемо, мне кажется.

1. Абсолютно не очевидно!
2. Вопрос был вообще не Вам.

1.[1-2]. вода льется 3

1.[1-2]. вода льется 3 недели, и ни одного совета или ссылки на доку не было. о каком праве самовыражения Вы говорите? лурка вам что ли мало? тематический форум с вполне конкретным вопросом и просьбой о помощи, сроки поджимают у человека. раньше гентуру было не таким

2.[1-2]. ок. пусть будет не очевидно. со старого сервера конфиги человек взял ведь не потому что там все работало, а, наверное, конфиги просто красивые. топик вам не интересен, это ясно.

Если сроки - то это в "Разовые работы"

anomality написал(а):
1.[1-2]. вода льется 3 недели, и ни одного совета или ссылки на доку не было ... тематический форум с вполне конкретным вопросом и просьбой о помощи, сроки поджимают у человека...

Если сроки - то это в "Разовые работы", а иначе люди отвечают как хотят и когда хотят.

anomality написал(а):
2.[1-2]. ок. пусть будет не очевидно. со старого сервера конфиги человек взял ведь не потому что там все работало, а, наверное, конфиги просто красивые. топик вам не интересен, это ясно.

Ну да, а там была другая среда/система/сеть, например... да и то не факт, что работало - ТС ведь так и не ответил... ;)

/

SysA написал(а):
Ну да, а там была другая среда/система/сеть, например...

…срез portage (конфигурация сборки), версия демона (опять же к списку доступных конфигураций)…

:wq
--
Live free or die

/

anomality написал(а):
1.[1-2]. вода льется 3 недели, и ни одного совета или ссылки на доку не было.

Были подсказки.
Проблема в том, что тебе не хватило знаний Основ для их идентификации и понимания смысла.
И это действительно проблема.

anomality написал(а):
о каком праве самовыражения Вы говорите? лурка вам что ли мало?

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

anomality написал(а):
тематический форум с вполне конкретным вопросом

Конкретность вопроса не синонимична корректности.

anomality написал(а):
и просьбой о помощи, сроки поджимают у человека

Правильная формулировка задачи первична.
Независимо от прочих условий.

anomality написал(а):
раньше гентуру было не таким

Да ну?!?
На моей памяти давных-давно, ещё во времена baselayout-1 отдельные модераторы весело развлекались на форуме, вместо того, чтобы заглянуть в документацию и оформить bug-report.

:wq
--
Live free or die

/

anomality написал(а):
Анархист, а можно без философии?

Без любомудрия никак нельзя!

anomality написал(а):
если что-то неверно описано, прошу меня поправить

Тут такой организационный вопрос: пропуск ключевого нюанса является ошибкой или нет?
Конкретно по твоему прочтению моих вопросов: для начала читаем описание флага pam в конфигурации демонов FTP и отвечаем наконец на вопрос о типе используемой базы пользователей.

anomality написал(а):
если все верно -- подскажите мануал.

Слава достижениям информационных технологий (возможности подмены понимания принципов процессом поиска конкретного рецепта).

anomality написал(а):
ps. если человек говорит про старые конфиги, значит там все работает ожидаемо, мне кажется.

Совершенно не факт.
Но даже если так, остаётся вопрос полноты базиса использованных конфигов.
И подсказка, кстати, в теме была.

:wq
--
Live free or die

предлагаю таки перестать лить

предлагаю таки перестать лить воду, и "добить проблему".

Вот такой вот вывод я получил у себя:

# wbinfo -D rl
Name : rl
Alt_Name :
SID : S-1-5-21-4173327269-1302852069-987730624
Active Directory : No
Native : No
Primary : Yes

а по идее должно быть так:

# wbinfo -D office
Name : office
Alt_Name :
SID : S-1-5-21-3964233546-1835872637-1519884965
Active Directory : Yes
Native : Yes
Primary : Yes

т.е. действующий домен не воспринимается как Active Directory.
openldap при этом свободно забирает атрибуты пользователя из АДа, в т.ч. и unixHomeDirectory

что касается pam -- в моем случае база пользователей находится в АД

Совместными усилиями с

Совместными усилиями с коллегами решили данную проблему. и написали небольшой, но понятный мануал.

если кому-то интересно вот ссылочка.
https://wiki.gentoo.org/wiki/Vsftpd/AD_Authentication

Отдельное спасибо anomality.

ЧаВо?

Ссылка на воплощение опыта (критики пока опускаю) не «интересна», а «необходима»!
Но, сказав «А» следует продолжить произнесением «Б».
http://gentoo.ru/content/chto-eto-znachit-solved-resheno

ЗЫ: По мне представленная реализация обобщения опыта не отличается полнотой.
Во-первых: https://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP/en
Во-вторых хорошо бы как минимум явно указать версию сервера.
Не говоря о том, что правильнее было бы довести до ума и только расширить имеющуюся статью https://wiki.gentoo.org/wiki/Samba/Active_Directory_Guide

ЗЗЫ: Ещё интересно как оно работает с точки зрения клиента.

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".