VSFTPD

Добавить пользователя VSFTPD

useradd -n user1 -d /mnt/disk/ftp/user1 -s /sbin/nologin
passwd user1

user1 - Имя добавляемого пользователя.
/mnt/disk/ftp/user1 - папка пользователя на FTP сервере.

Включить протокол FTPS

Создание самоподписанного сертификата на 10 лет:

openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem -subj "/C=DE/ST=Berlin/L=Berlin/O=Secret Service/OU=IT Department/CN=secret.domain/CN=sysadmin@secret.domain"

В "/etc/vsftpd/vsftpd.conf" добавляем:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
implicit_ssl=YES
listen_port=990

В клиентах установить "Требовать FTP через TLS (неявный)" или "Require Implicit FTP over TLS" или "SSL/TLS Implicit encryption" для протокола FTP (или FTPS), порт - 990.

Возможные проблемы

Виртуальные пользователи

yum -y install compat-db

В /etc/vsftpd/vsftpd.conf:

guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/mnt/storage/ftp/$USER

Сохраняем оригинальный /etc/pam.d/vsftpd:

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.orig

А в новый /etc/pam.d/vsftpd:

auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
session required pam_loginuid.so

В /etc/vsftpd/virtual_users прописываем пользователей и пароли:

user1
passwd1
user2
passwd2

Создаём базу пользователей и паролей:

db_load -T -t hash -f /etc/vsftpd/virtual_users /etc/vsftpd/virtual_users.db

Устанавливаем владнльца на папки пользователей:

chown -R ftp. /mnt/storage/ftp

Пример рабочего vsftpd.conf

Наверх