Автор Тема: vsftpd и виртуальные пользователи созданные htpasswd  (Прочитано 4645 раз)

Оффлайн slessv

  • Участник
  • *
  • Сообщений: 61
Дистрибутив altlinux-4.0.1-server. Установил vsftpd (vsftpd-2.0.5-alt3), настроил его по минимуму.

Конфиг-файл:
listen=YES
background=NO
listen_port=21
#
anonymous_enable=NO
anon_root=/var/ftp
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_upload_enable=NO
anon_umask=077
#
local_enable=YES
local_root=/var/ftp
chroot_local_user=YES
write_enable=YES
#
virtual_use_local_privs=YES
guest_enable=YES
#
syslog_enable=NO
xferlog_enable=YES
xferlog_file=/var/log/xferlog.log

Запустил vsftpd, попробовал соедениться локальным пользователем. Соеденился.

Чтобы "отвязать" виртуальных пользователей ftp-сервера от файла password, и хранить их аутентификационные данные в отдельном файле, решил воспользоваться htpasswd.  Установил пакеты pam_pwdfile и apache-common.

Добавил две строки, (как описано в /usr/share/doc/pam_pwdfile-0.99/README) в файл /etc/pam.d/vsftpd:
auth         required     /lib/security/pam_pwdfile.so pwdfile /etc/vsftpd/userpass
account    required     /lib/security/pam_pwdb.so

/etc/pam.d/vsftpd целиком:
auth         required     /lib/security/pam_pwdfile.so pwdfile /etc/vsftpd/userpass
account    required     /lib/security/pam_pwdb.so
auth         required     pam_userpass.so
auth         include       system-auth-use_first_pass
auth         required     pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth         required     pam_securetty.so
auth         required     pam_shells.so
auth         required     pam_nologin.so
account    include       system-auth
session      include       system-auth

Создал пользователя test с помощью htpasswd:
htpasswd -c /etc/vsftpd/userpass test

Пытаюсь соедениться. не получается. Ругается на неверные аутентификационные данные. Не дает подключиться и локальному пользователю.
/var/log/vsftpd.log:
Fri Nov 27 16:20:10 2009 [pid 8665] CONNECT: Client "192.168.116.217"
Fri Nov 27 16:20:18 2009 [pid 8664] [test1] FAIL LOGIN: Client "192.168.116.217"
Fri Nov 27 16:22:58 2009 [pid 8672] CONNECT: Client "192.168.116.217"
Fri Nov 27 16:23:02 2009 [pid 8671] [oper] FAIL LOGIN: Client "192.168.116.217"

/var/log/secure:
Nov 27 16:40:01 ftp crond[8759]: pam_tcb(crond:session): Session opened for root by (uid=0)
Nov 27 16:40:01 ftp crond[8762]: pam_tcb(crond:session): Session opened for root by (uid=0)
Nov 27 16:40:01 ftp crond[8759]: pam_tcb(crond:session): Session closed for root
Nov 27 16:40:01 ftp crond[8762]: pam_tcb(crond:session): Session closed for root
Nov 27 16:43:50 ftp vsftpd: pam_tcb(vsftpd:auth): Authentication failed for UNKNOWN USER from (uid=0)
Nov 27 16:45:01 ftp crond[8800]: pam_tcb(crond:session): Session opened for root by (uid=0)
Nov 27 16:45:01 ftp crond[8802]: pam_tcb(crond:session): Session opened for root by (uid=0)
Nov 27 16:45:01 ftp crond[8802]: pam_tcb(crond:session): Session closed for root
Nov 27 16:45:01 ftp crond[8800]: pam_tcb(crond:session): Session closed for root

Чего не хватает для нормальной аутентификации с помощью pam_pwdfile?
« Последнее редактирование: 27.11.2009 14:11:17 от slessv »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
« Последнее редактирование: 27.11.2009 20:31:19 от ruslandh »

Оффлайн slessv

  • Участник
  • *
  • Сообщений: 61
Не понял, что вы хотели сказать. У меня и так "local_enable=YES".
За ссылочку спасибо. Почитаю.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Не понял, что вы хотели сказать. У меня и так "local_enable=YES".
Извините - не разглядел с первого раза.

Оффлайн slessv

  • Участник
  • *
  • Сообщений: 61
Пробовал, как указано в статье по приведенной ссылке, заменить
account required pam_pwdb.so    на     account required pam_permit.so
не помогает.
 :(

Оффлайн slessv

  • Участник
  • *
  • Сообщений: 61
Видимо данный  механизм не работает.

Обновил систему. После обновления также не заработало.

Кто добился в дистрибутиве altlinux-4.0.1-server работы механизма аутентификации пользователей vsftpd не с помощью базы системных паролей, а с альтернативной базой - поделитесь опытом.

Попробовал сделать аутентификацию пользователя как в файле /usr/share/doc/vsftpd-2.0.6/EXAMPLE/VIRTUAL_USERS/README

/etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
Не заработало.

Пробовал при таком /etc/pam.d/vsftpd, рекомендованном разработчиком в http://lists.altlinux.org/pipermail/community/2006-January/592857.html:

auth required pam_nologin.so
auth required pam_userpass.so
auth required pam_userdb.so use_authtok db=/etc/vsftpd_login
account  required      pam_permit.so
Не заработало.

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

Ошибки:
/var/log/vsftpd.log
Mon Nov 30 20:52:18 2009 [pid 3402] CONNECT: Client "192.168.116.217"
Mon Nov 30 20:52:22 2009 [pid 3401] [oper] FAIL LOGIN: Client "192.168.116.217"

/var/log/secure
Nov 30 20:52:22 ftp vsftpd: pam_userdb(vsftpd:auth): conversation failed
Nov 30 20:52:22 ftp vsftpd: pam_userdb(vsftpd:auth): can not obtain password from user

Оффлайн slessv

  • Участник
  • *
  • Сообщений: 61
Обновил систему пакетами из ветки 4.1.
Авторизация виртуальных пользователей не заработала. Но появились проблемы с сетью. создам отдельную тему.

Вобщем в ALTLinux авторизация виртуальных пользователей не по файлу паролей не работает!

Удалось этого добиться в SLES11 с первого раза и без танцев с бубнами. Все делал по инструкции.

Оффлайн par

  • Участник
  • *
  • Сообщений: 8
Такой же косяк с pam-mysql

http://forum.altlinux.org/index.php/topic,5038.0.html

похоже это баг !

со всем уважением к разработчикам,
выводы делайте сами.

Drool

  • Гость
со всем уважением к разработчикам,
выводы делайте сами.

Вы это кому адресуете?

Оффлайн zhe

  • Участник
  • *
  • Сообщений: 88
Пробовал при таком /etc/pam.d/vsftpd, рекомендованном разработчиком в http://lists.altlinux.org/pipermail/community/2006-January/592857.html:

auth required pam_nologin.so
auth required pam_userpass.so
auth required pam_userdb.so use_authtok db=/etc/vsftpd_login
account  required      pam_permit.so
Не заработало.

auth required pam_userpass.so
auth required pam_userdb.so use_first_pass db=/etc/vsftpd/login

вот так работает
man google.com