Разворачиваем FTP-сервер на Debian 12
Как развернуть FTP-сервер на Debian 12
Наиболее простой способ создания FTP-сервера на Debian 12 — установить и настроить vsftpd (Very Secure FTP Daemon). Это быстрый, безопасный и стабильный FTP-сервер с открытым исходным кодом, широко используемый в системах на базе Linux. Он поддерживает и стандартный FTP, и безопасные протоколы передачи файлов, такие как FTPS.
Для начала обновите списки пакетов в системе:
Устанавливаем демон VSFTP
после установки проверяем статус сервера vsftpd:
убедившись в работоспособности сервера переходим к его непосредственной настройке!
Настройка FTP-сервера
Открываем файл с настройками FTP сервера и вносим туда некоторые изменения:
В данном файле приведите нижеперечисленные параметры к следующему виду:
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
connect_from_port_20=YES
use_localtime=YES
xferlog_enable=YES
xferlog_std_format=YES
chroot_local_user=YES
В самом конце файла добавим параметр:
для работы в пассивном режиме необходимо будет добавить следующие параметры в конфе конфигурационного файла
pasv_min_port=59000
pasv_max_port=60000
Ниже приведёно описания тех параметров которые мы поправили:
Данные параметры, указанные в конфигурационном файле, отвечают за следующий функционал:
listen=YES— включает работу FTP-сервера в режиме автономного демона;listen_ipv6=NO— отключает использование IPv6;anonymous_enable=NO— отключает доступ анонимных пользователей;local_enable=YES— разрешает подключение локальных учётных записей системы;write_enable=YES— разрешает операции записи на сервере;dirmessage_enable=YES— включает отображение сообщений из файла.messageпри входе в каталог;connect_from_port_20=YES— включает использование порта 20 для передачи данных в режиме активного FTP;use_localtime=YES— активирует использование локального времени системы вместо UTC для отметок времени в логах и файлах;xferlog_enable=YES— включает ведение логов загрузок и скачиваний;xferlog_std_format=YES— включает стандартный формат логов дляxferlog;chroot_local_user=YES— изолирует локальных пользователей в их домашних каталогах;allow_writeable_chroot=YES— разрешает использовать каталоги, доступные для записи, в качестве корневых;secure_chroot_dir=/var/run/vsftpd/empty— указывает на директорию, которая используется демономvsftpdдля безопасного выполнения операций, требующихchroot, прежде чем пользователь будет авторизован;pam_service_name=vsftpd— указывает имя службы PAM (Pluggable Authentication Module), используемой для аутентификации. Другими словами, сервер будет использовать настройки из файла/etc/pam.d/vsftpdдля управления аутентификацией пользователей.
На этом настройка сервера завершена и необходимо теперь перезапустить службу
Настройка SSL/TLS
TLS позволяет настроить безопасный FTP, передача данных через который осуществляется по шифрованному каналу.
Для данной цели можно использовать самоподписанный сертификат. Чтобы его создать, вводим команду:
в данном примере мы создаем самоподписанный сертификат на 4 года для URL ftp.dmosk.local или ftp. Открытый ключ будет сохранен в файле /etc/ssl/certs/vsftpd.pem, закрытый — /etc/ssl/private/vsftpd.key. При желании, мы можем использовать купленный сертификат или получить его бесплатно у Let's Encrypt.
Открываем на редактирование конфигурационный файл vsFTPd:
Редактируем строки:
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_enable=YES
* где ssl_enable разрешает использование шифрования; rsa_cert_file — путь к открытому ключу; rsa_private_key_file — путь к закрытому ключу.
Добавляем в конфигурацию ещё параметры:
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_ciphers=HIGH
* где:
- allow_anon_ssl разрешает использовать SSL анонимным пользователям;
- force_local_data_ssl требует использования шифрования, и если установить YES, клиенты без шифрования не смогут подключиться;
- force_local_logins_ssl также требует подключение по SSL;
- ssl_tlsv1 — использовать TLS версии 1;
- ssl_sslv2 и ssl_sslv3 — использовать SSL версии 1 и 2;
- ssl_ciphers — выбор шифра. В данном примере мы говорим использовать максимально безопасный.
Перезапускаем FTP-сервер:
Добавление пользователя
По умолчанию, авторизация выполняется с использованием локальных пользователей. Чтобы использовать специальную учетную запись, для подключения к FTP, создаем пользователя следующей командой:
* где ftpuser — имя учетной записи; /ftp — домашний каталог (в него будем попадать при подключении); /bin/false — запрет пользователю на локальный вход в систему.
Задаем пароль:
Открываем на редактирование следующий файл:
И добавляем следующее:
* мы добавили /bin/false в список разрешенных оболочек. В противном случае, может вернуться ошибка 530 Login incorrect.
Затем создайте каталог, который будет использоваться для доступа к FTP-серверу:
Данный каталог установите для ранее созданного пользователя в качестве домашней директории:
После чего измените владельца и группу каталога /ftp/ftpuser на пользователя ftpuser и группу ftpuser:
Теперь проверяем работу сервера с данными пользователя котого создали


Комментариев 0