Linux

/
/
Настройка SFTP на ProFTPD

Настройка 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>