Настройка SFTP на ProFTPD
Для работы по SFTP с FTP-сервером ProFTPD, необходимо установить и настроить соответствующий модуль.
Подключитесь к серверу по SSH как root и установите модуль:
apt install proftpd-mod-sftp-ldapyum install proftpd-mod-sftp-ldapРаскомментируйте или добавьте строку LoadModule mod_sftp.c в конфигурационном файле /etc/proftpd/modules.conf:
sed -i 's/#LoadModule mod_sftp.c/LoadModule mod_sftp.c/g' /etc/proftpd/modules.confПосле, перезагрузите службу ProFTPD и проверьте подключен ли модуль:
service proftpd restart
proftpd -vv | grep mod_sftpМодулю SFTP требуются собственные ключи шифрования. Создайте каталог для них и сгенерируйте ключи:
mkdir -p /etc/proftpd/keys
ssh-keygen -t rsa -b 4096 -f /etc/proftpd/keys/sftp_host_rsa_key -N "" -m PEMСоздайте конфигурационный файл и журнал для модуля:
touch /etc/proftpd/conf.d/sftp.conf
touch /var/log/proftpd/sftp.logПеред добавлением конфигурации, выберите любой подходящий порт на сервере и проверьте, не занят ли он. Например, порт 2222:
ss -tulpan | grep 2222Если порт не занят, вывод команды будет пуст.
Вместо <ip-адрес_сервера> и <номер_порта> , в конфигурации ниже, обязательно укажите IP-адрес вашего сервера и выбранный свободный порт, который будет слушать служба.
Добавьте следующую конфигурацию в созданный файл:
<IfModule mod_sftp.c>
<VirtualHost <ip-адрес_сервера>>
Port <номер_порта>
# Необходимо отключить FTPS для предотвращения конфликтов с SFTP
TLSEngine off
# Включение SFTP
SFTPEngine on
SFTPLog /var/log/proftpd/sftp.log
SFTPHostKey /etc/proftpd/keys/sftp_host_rsa_key
# Разрешение аутентификации пользователей с оболочкой /usr/sbin/nologin
RequireValidShell off
# Методы аутентификации
SFTPAuthMethods password publickey
SFTPAuthorizedUserKeys file:~/.ssh/authorized_keys
# Разрешение на перезапись файлов
<Directory />
AllowOverwrite yes
</Directory>
</VirtualHost>
</IfModule>Проверьте конфигурацию:
proftpd -tЕсли синтаксис корректный, вывод будет следующим:
Checking syntax of configuration file
Syntax check complete.Перезапустите службу:
service proftpd restartПроверьте доступность FTP-сервера по указанному для SFTP порту с внешнего устройства:
sftp -P <номер_порта> <имя_ftp-пользователя>@<ip-адрес_сервера>