Debian 12 Linux FTP Server (ProFtpd + Apache)
Порой возникают задачи, когда нужно срочно передать большой объем данных через интернет, зачастую это видео файлы большого размера, в бесплатных облачных сервисах как правило установлен лимит на размер 1 файла не более 10 Гб, а создавать ftp сервер совсем нет времени. Мы создали готовую конфигурацию FTP сервера, на базе ProFTPD. Сервер работает в двух режимах, активном и пассивном, что дает больше возможностей для подключения. Также чтобы была возможность передать ссылку на размещенный файл через браузер мы настроили службу Apache, которая смотрит в корень ftp каталога. |
Конфигурация преднастроенного сервера доступна на форме заказа.
Обновим пакеты:
apt update -y
apt upgrade -y
Установим службы:
apt install proftpd -y
apt install apache2 -y
Запустим и настроим автозапуск:
systemctl start proftpd
systemctl start apache2
systemctl enable proftpd
systemctl enable apache2
Проверим состояние:
ss -antpl | grep proftpd
Создадим ftp пользователя и зададим пароль:
adduser ftpuser
passwd ftpuser
Внесем необходимые настройки:
Добавим директиву, чтобы запереть пользователей в домашнем каталоге
/etc/proftpd/proftpd.conf
DefaultRoot ~
Добавим конфигурацию в самый конец файла
/etc/proftpd/proftpd.conf
Include /etc/proftpd/conf.d/
<Directory /home/ftpuser>
Umask 022
AllowOverwrite on
<Limit LOGIN>
AllowUser ftpuser
DenyAll
</Limit>
<Limit ALL>
AllowUser ftpuser
DenyAll
</Limit>
</Directory>
Перезапустим службу для применения настроек:
systemctl restart proftpd
Сделаем так, чтобы служба apache2 смотрела в корень каталога созданного нами пользователя. Данный функционал будет полезен при необходимости поделиться файлом ссылкой по протоколу http. Укажем новый путь /home/ за место старого /var/www/:
vi /etc/apache2/apache2.conf
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Перезапустим службу:
systemctl restart apache2
При необходимости и наличии SSL сертификата разместим файлы CRT и KEY
chmod 600 /etc/ssl/private/proftpd.key
chmod 600 /etc/ssl/certs/proftpd.crt
Добавим файл конфигурации:
/etc/proftpd/proftpd.conf
Include /etc/proftpd/tls.conf
Проверим конфигурацию и приведем к виду:
/etc/proftpd/tls.conf
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRequired on
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off
Перезапустим службу:
systemctl restart proftpd
FTP сервер готов к работе.
При необходимости можно добавить защиту доступа к файлам через http по паролю, для этого воспользуйтесь данным руководством:
/etc/proftpd/proftpd.conf
В самый конец файла:
Include /etc/proftpd/conf.d/
<Directory /home/ftpuser>
Umask 022
AllowOverwrite on
<Limit LOGIN>
AllowUser ftpuser
DenyAll
</Limit>
<Limit ALL>
AllowUser ftpuser
DenyAll
</Limit>
</Directory>