Настройка SFTP на ProFTPD
Настройка ProFTPD
Чтобы использовать SFTP с FTP-сервером ProFTPD, установите и настройте соответствующий модуль.
Подключитесь к серверу через SSH под учётной записью root и установите модуль, если у вас Ubuntu 24.04.
apt install proftpd-mod-sftp-ldap
Установка на AlmaLinux 9 не требуется.
Раскомментируйте или добавьте строку LoadModule mod_sftp.c в конфигурационный файл /etc/proftpd/modules.conf.
Далее перезапустите службу ProFTPD и проверьте, включён ли модуль.
service proftpd restart
proftpd -vv | grep mod_sftp
Модуль SFTP требует собственных ключей шифрования. Создайте для них каталог и сгенерируйте ключи.
mkdir -p /etc/proftpd/ssh_keys
ssh-keygen -t rsa -b 4096 -f /etc/proftpd/ssh_keys/sftp_host_rsa_key -N "" -m PEM
chown -R root:root /etc/proftpd/ssh_keys
chmod 700 /etc/proftpd/ssh_keys
chmod 600 /etc/proftpd/ssh_keys/*
Создайте файлы с информацией о виртуальных пользователях SFTP.
touch /etc/proftpd/sftpd_passwd /etc/proftpd/sftpd_group
chown root:root /etc/proftpd/sftpd_passwd /etc/proftpd/sftpd_group
chmod 640 /etc/proftpd/sftpd_passwd /etc/proftpd/sftpd_group
Создайте файл конфигурации и журнал для модуля.
touch /etc/proftpd/conf.d/sftp.conf
touch /var/log/proftpd/sftp.log
Перед добавлением конфигурации выберите любой подходящий порт на сервере и проверьте, занят ли он. Например, порт 2222.:
ss -tulpan | grep 2222
Если порт не используется, вывод команды будет пустым.
Вместо <VirtualHost 0.0.0.0> и 2222 в приведенной ниже конфигурации укажите IP-адрес вашего сервера и выбранный свободный порт, на котором будет прослушиваться служба.
Добавьте следующую конфигурацию в созданный файл sftp,conf:
<IfModule mod_sftp.c>
<VirtualHost 0.0.0.0>
Port 2222
SFTPEngine on
SFTPLog /var/log/proftpd/sftp.log
SFTPHostKey /etc/proftpd/ssh_keys/sftp_host_rsa_key
AuthOrder mod_auth_file.c
AuthUserFile /etc/proftpd/sftpd_passwd
AuthGroupFile /etc/proftpd/sftpd_group
DefaultRoot ~
RequireValidShell off
TLSEngine off
<Directory />
AllowOverwrite yes
</Directory>
</VirtualHost>
</IfModule>
Откройте порт в брандмауэре вашего оборудования для подключения к серверу.
Проверьте конфигурацию.
proftpd -t
Если синтаксис правильный, вывод будет следующим:
Checking syntax of configuration file
Syntax check complete.
Перезапустите службу.
service proftpd restart
Создание SFTP-пользователей
Добавьте информацию о пользователе SFTP в файл /etc/proftpd/sftpd_passwd, используя указанный формат:
<sftp_username>:<password_hash>:<system_user_uid>:<system_user_gid>::/var/www/<system_username>/data/<sftp_username_home_directory>:/bin/false
Для создания хэша пароля используйте команду в консоли.
echo -n "<your_password>" | openssl passwd -1 -stdin
Добавьте информацию о группе пользователей SFTP в файл /etc/proftpd/sftpd_group, используя указанный формат.
<sytem_username>:x:<system_user_gid>:<sftp_username>
Перезапустите службу.
service proftpd restart
Проверить доступность FTP-сервера на указанном для SFTP-подключений порту с внешнего устройства.
sftp -P <port_number> <sftp_user_name>@<server_ip_address>