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 ()

Лови

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 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.