Ubuntu 16.04.
Установка vsftpd
apt install vsftpd
Если надо разрешить пользователю root авторизоваться, то в файле /etc/ftpusers
комментируем root добавлением символа #.
Конфиг /etc/vsftpd.conf
Проверяем запрет анонимного доступа
anonymous_enable=NO
Дополнительно:
local_enable=YES write_enable=YES force_dot_files=YES
Запрет авторизации по SSH
1 способ:
Если пользователю запретили авторизацию через SSH путём изменения пути к оболочке, например, вместо /bin/bash
установили /bin/date
или /usr/sbin/nologin
, то необходимо в файле /etc/pam.d/vsftpd
закомментировать строку c авторизацией через pam_shells.so:
#auth required pam_shells.so
иначе vsftpd сервер не авторизует пользователя.
2 способ:
Чтобы позволить пользователям с оболочкой /usr/sbin/nologin
получить доступ к FTP, но не предоставлять shell доступ, отредактируйте /etc/shells
, добавив к оболочке nologin:
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/date
/usr/sbin/nologin
OOPS
Если при подключении/авторизации к ftp серверу выскакивает ошибка:
OOPS: priv_sock_get_cmd
то в конфиг надо добавить ещё пару строк:
allow_writeable_chroot=YES
seccomp_sandbox=NO
Полный конфиг /etc/vsftpd.conf
:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
pam_service_name=vsftpd
force_dot_files=YES
#ssl_enable=YES
#ssl_ciphers=HIGH
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES
seccomp_sandbox=NO
Добавляем в автозапуск
service vsftpd restart update-rc.d vsftpd defaults
Сервер FTP
https://losst.ru/ustanovka-ftp-na-ubuntu-16-04
https://www.dmosk.ru/miniinstruktions.php?mini=vsftpd-ubuntu