[РЕШЕНО] VSFTPD+SAMBA+PAM
NINJA2121 28 января, 2016 - 05:52
Доброго времени суток, форумчане.
Есть проблема по использованию этой связки, а именно - не хочет создавать домашние папки для доменных пользователей вошедших на ФТП.
уже неделю бодаюсь, ничего сделать не могу а сроки поджимаю.
Вот мои конфиги.
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.
есть идеи?
/
Есть обоснованное мнение, что, с учётом цитированных конфигов,
s/без ldap'а/без ада/
.Какие ещё атрибуты с какими значениями есть в контейнере описания пользователя?
Значения хэшей можно опустить. ☺
:wq
--
Live free or die
.
А заодно попрощаться с прелестью использования выделенной (виртуальной) базы пользователей вместо системной?
:wq
--
Live free or die
.
Не разделяю твоего оптимизма.
Предлагаю начать с Начала: как (и где) по-твоему оно должно работать?
Система у тебя использует свою авторизацию (тогда не вижу приземления базы ада относительно системного пользователя) или внешнюю (в аду)?
Где блок запроса демоном FTP информации о пользователе?
Самба зачем? Отстроена и работает (и проблема только в FTP)?
:wq
--
Live free or die
Anarchist
судя по всему, оно должно работать примерно так:
1. юзер коннектится к фтп
2. на запрос логина он отдает свой логин
3. на запрос пароля он отдает свой пароль
4. пам авторизует пользователя в аду
5. винбинд получает контейнер атрибутов пользователя и передает его vsftpd
6. vsftpd использует атрибут unixHomeDirectory для chroot
или я что-то не понял?
может кто поделится ссылочкой полезной по топику, хотел в свое время такое же решение реализовать, но так и не разобрался как все это связать в кучу, плюнул и забыл! :)
anomality
Все именно так как написал Anarchist Вот только как это все до ума довести не могу понять. да и перебор старых конфигов не помогает ибо не при мне все это делалось, да и в силу своих знаний в области UNIX.
.
Вообще-то я написал список вопросов.
Который, впрочем, можно использовать как учебный план.
Доводить до ума имеет смысл только на базе поверенного практикой понимания принципа работы системы.
Ты уверен, что на базе старых конфигов система работала ожидаемым образом?
:wq
--
Live free or die
Anarchist
Анархист, а можно без философии? если что-то неверно описано, прошу меня поправить, если все верно -- подскажите мануал.
ps. если человек говорит про старые конфиги, значит там все работает ожидаемо, мне кажется.
Вас никто НЕ обязан учить
1. Вас никто НЕ обязан учить так, как Вам нравится/хочется. Или принимайте как есть, или ищите инфу сами.
2. Каждый в праве выбирать свою форму изложения, если это не нарушает правил форума.
1. Абсолютно не очевидно!
2. Вопрос был вообще не Вам.
1.[1-2]. вода льется 3
1.[1-2]. вода льется 3 недели, и ни одного совета или ссылки на доку не было. о каком праве самовыражения Вы говорите? лурка вам что ли мало? тематический форум с вполне конкретным вопросом и просьбой о помощи, сроки поджимают у человека. раньше гентуру было не таким
2.[1-2]. ок. пусть будет не очевидно. со старого сервера конфиги человек взял ведь не потому что там все работало, а, наверное, конфиги просто красивые. топик вам не интересен, это ясно.
Если сроки - то это в "Разовые работы"
Если сроки - то это в "Разовые работы", а иначе люди отвечают как хотят и когда хотят.
Ну да, а там была другая среда/система/сеть, например... да и то не факт, что работало - ТС ведь так и не ответил... ;)
/
…срез portage (конфигурация сборки), версия демона (опять же к списку доступных конфигураций)…
:wq
--
Live free or die
/
Были подсказки.
Проблема в том, что тебе не хватило знаний Основ для их идентификации и понимания смысла.
И это действительно проблема.
Для того, чтобы побороться с Демоном не обязательно идти на лурк.
Конкретность вопроса не синонимична корректности.
Правильная формулировка задачи первична.
Независимо от прочих условий.
Да ну?!?
На моей памяти давных-давно, ещё во времена baselayout-1 отдельные модераторы весело развлекались на форуме, вместо того, чтобы заглянуть в документацию и оформить bug-report.
:wq
--
Live free or die
/
Без любомудрия никак нельзя!
Тут такой организационный вопрос: пропуск ключевого нюанса является ошибкой или нет?
Конкретно по твоему прочтению моих вопросов: для начала читаем описание флага
pam
в конфигурации демонов FTP и отвечаем наконец на вопрос о типе используемой базы пользователей.Слава достижениям информационных технологий (возможности подмены понимания принципов процессом поиска конкретного рецепта).
Совершенно не факт.
Но даже если так, остаётся вопрос полноты базиса использованных конфигов.
И подсказка, кстати, в теме была.
: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