LINUX.ORG.RU
ФорумAdmin

vsftpd Виртуальные пользователи SFTP - login failed


0

1

Странная штука:
При включенном ssl_enable=YES ходят только локальные пользователи на ftp, виртуальные не могут.
При отключенном ssl_enable=NO ходят только виртуальные, локальные не могут
Надо разрешить виртуальным ходить по sftpd

vsftpd.conf (т.к. ssl включен ходят только локальные, что странно):

# Анонимный пользователь разрешен
anonymous_enable=YES
# Разрешил писать для локальных пользователей
local_enable=YES
# Разрешено писать.
write_enable=YES
# Запираем пользователей в виртуальных папках. Верхняя папка не должна иметь права записи: chmod a-w /home/user
chroot_local_user=YES
# Виртуальные пользователи могут использовать такие же привилегии как и локальные пользователи
virtual_use_local_privs=YES

# Установим имя пам сервиса который будет испольвать vsftpd
# По умолчанию используется /etc/pam.d/vsftpd
pam_service_name=ftp

# Активация виртуальных пользователей
guest_enable=YES
guest_username=virtual

# Параметр используется для автоматического создания домашнего каталога
# для каждого виртуального пользователя, на основе шаблона.
user_sub_token=$USER
local_root=/home/ftp/$USER

# Если включено, все о пользователях и группах в каталоге списки будут
# отображаться как «FTP».
hide_ids=YES

# ----- Включаем SSL ----------
#this is important
ssl_enable=YES

#choose what you like, if you accept anon-connections
# you may want to enable this
# allow_anon_ssl=NO

#choose what you like,
# it's a matter of performance i guess
# force_local_data_ssl=NO

#choose what you like
# force_local_logins_ssl=YES

#you should at least enable this if you enable ssl...
# - ssl_tlsv1=YES
#choose what you like
ssl_sslv2=YES
#choose what you like
ssl_sslv3=YES
#give the correct path to your currently generated *.pem file
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
#the *.pem file contains both the key and cert
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem

/etc/pam.d/ftp

auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash
account required pam_userdb.so db=/etc/vsftpd_login crypt=hash

Я так понимаю, чтобы авторизовались и локальные пользоатели в /etc/pam.d/ftp надо что то добавить. А вот, что более важно, что изменить, чтобы по SSL виртуальные пользователи могли ходить - ума не приложу.

Использую Archlinux, если это поможет. Сертификан сгенерирован

# cd /etc/ssl/certs
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
# chmod 600 /etc/ssl/certs/vsftpd.pem


SFTP - login failed

Не в тему, но всё же: не стоит путать SFTP (ftp подсистему ssh) и FTPS (FTP + SSL).

router ★★★★★ ()
Ответ на: комментарий от visual

vsftpd: version 2.3.5

Со стороны клиента

Status:	Connecting to 192.168.1.105...
Response:	fzSftp started
Command:	open "username@y.y.y.y" 22
Command:	Trust new Hostkey: Once
Command:	Pass: *************
Error:	Authentication failed.
Error:	Critical error
Error:	Could not connect to server

Cо стороны сервера auth.log :

Mar  8 10:18:07 localhost sshd[2107]: Accepted publickey for root from x.x.x.x port 55882 ssh2
Mar  8 10:18:07 localhost sshd[2107]: pam_unix_session(sshd:session): session opened for user root by (uid=0)
Mar  8 10:19:54 localhost sshd[2128]: Invalid user username from x.x.x.x
Mar  8 10:19:54 localhost sshd[2128]: input_userauth_request: invalid user username [preauth]
Mar  8 10:19:55 localhost sshd[2128]: pam_unix(sshd:auth): check pass; user unknown
Mar  8 10:19:55 localhost sshd[2128]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1
.102
Mar  8 10:19:56 localhost sshd[2128]: Failed password for invalid user username from x.x.x.x port 56454 ssh2
Mar  8 10:19:56 localhost sshd[2128]: Connection closed by x.x.x.x [preauth]

Т.е. я так понимаю, что в PAM как то надо прописать возможность аутентификации виртуальных пользователей через ssh. Но как?

ZeroCup ()
Ответ на: комментарий от ZeroCup

Судя по логам вы подключаетесь не к vsftpd, а к sshd. Как уже было сказано выше ftps и sftp это разные вещи. Вы настраиваете ftps, а подключаетесь через sftp.

Viper ()
Ответ на: комментарий от r2d2

Клиент FileZilla Из-под виндового WinSCP такая же проблема: Searching for host... Connecting to host... Authenticating... Using username «username». Authenticating with pre-entered password. Access denied.

ZeroCup ()
Ответ на: комментарий от r2d2

Вообще хорошо бы сделать sftp.
Но даже с ftps проблема: (lftp клиент)
$ lftp 192.168.1.105
lftp 192.168.1.105:~> user username
Password:
lftp username@192.168.1.105:~> ls
ls: Fatal error: gnutls_record_recv: An unexpected TLS packet was received.
lftp username@192.168.1.105:~>

FileZilla:
host: ftpes://192.168.1.105
Username: username
Password: password

Вывод:
Status: Waiting to retry...
Status: Connecting to 192.168.1.105:21...
Status: Connection established, waiting for welcome message...
Response: 220 (vsFTPd 2.3.5)
Command: AUTH TLS
Response: 234 Proceed with negotiation.
Status: Initializing TLS...
Error: GnuTLS error -12: A TLS fatal alert has been received.
Error: Could not connect to server

Я понимаю, что сервер с TLS на арче что-то не то отдает, но как решить?

Но я был бы больше рад сделать sftp c авторизацией по виртуальным пользователям. Такое возможно?

Я пытался дописать в /etc/pam.d/sshd это:
auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash
account required pam_userdb.so db=/etc/vsftpd_login crypt=hash
Но не сработало. Может есть идеи?

ZeroCup ()
Ответ на: комментарий от ZeroCup

Ксати, строчка из первого поста раскомментирована
#you should at least enable this if you enable ssl...
ssl_tlsv1=YES

ZeroCup ()
Ответ на: комментарий от r2d2

Учи матчасть.

Спасибо за совет. Гуглил уже. Пока не получилось найти ответ на вопрос: как настроить sftp c авторизацией виртуальных пользователей? С локальными пользователями все работает как надо.

Насчет этой ошибки - «GnuTLS error -12: A TLS fatal alert has been received.» - тоже не все ясно. Как побороть ее? Да, конечно, в этом случае используется ftps.

ZeroCup ()
6 ноября 2012 г.

Лови

ok, found it. Apparently there is some strange behavior between the latest filezilla 3.5 client and ftps. for vsftpd, the solution was simply to add:

ssl_ciphers=HIGH in the vsftpd.conf file

I'am not sure whether i am allowed to post this as well, but there is a threat about this in the filezilla forums.

warkum ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.