
Скажем честно, что PureFTP не оправдал моих радужных ожиданий и давайте пробежимся по установке и настройке vsftpd сервера. Я его раньше уже настраивал и теперь надо вспомнить как-там что крутить и задокументировать на будущее.
Создание SSL-сертификата при помощи Let’s encrypt
Зайдем сразу с козырей и сделаем wildcard SSL сертификат.
# certbot --manual --preferred-challenges dns certonly -d pikur.art -d *.pikur.art
Вам потребуется создать DNS-записи, а для автоматического обновления заморочиться с автоматическим обновлением _acme-challenge записей, но это я потом сделаю, а пока все в ручном режиме.
По старой схеме обновляем пакетную базу и устанавливаем vsftpd
При первоначальной настройке всегда лучше обновить все и поставить свежую версию, в дальнейшем обновляться при необходимости (фиксы безопасности ставим всегда).
# apt-get update && apt-get upgrade -y
# apt-get install -y vsftpd
Настраиваем vsftpd
На всякий случай настроим автозапуск сервиса и запустим его:
# systemctl enable vsftpd
# systemctl start vsftpd
Пробежимся по настройкам которые мы изменим
Отключаем поддержку IPv6
listen_ipv6 = NO
Добавим немного безопасности:
chroot_local_user=YES
Подключаем созданные SSL-сертификаты.
rsa_cert_file=/etc/letsencrypt/live/pikur.art/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/pikur.art/privkey.pem
ssl_enable=YES
Разрешаем запись.
write_enable=YES
Разрешаем как SSL-подключения, так и подключения без SSL.
force_local_logins_ssl=NO
require_ssl_reuse=NO
force_local_data_ssl=NO
Настраиваем возможность загрузки файлов с именами в формате Unicode:
utf8_filesystem=YES
В итоге, полностью конфигурация с которой может работать мой принтер Pantum выглядит следующим образом:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/letsencrypt/live/pikur.art/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/pikur.art/privkey.pem
ssl_enable=YES
log_ftp_protocol=YES
force_local_logins_ssl=NO
require_ssl_reuse=NO
force_local_data_ssl=NO
utf8_filesystem=YES
Создаем пользователя для сканирования документов.
# adduser scan
Перезапускаем сервис.
# systemctl restart vsftpd
Пробуем подключиться при помощи WinSCP с локальной учетной записью созданного пользователя scan.
