Progorod logo

Устанавливаем и настраиваем FTP-сервер в Linux

26 июня 2025Возрастное ограничение16+

Рассказываем, как настроить протокол передачи файлов FTP в Linux.

Что такое FTP и vsFTPd

File Transfer Protocol — это технология передачи данных по сети. FTP уже не так популярен, как на заре интернета, но все еще используется. Причем в локальных сетях довольно часто, так как это простой способ организовать большое количество файлов и предоставить пользователям доступ к ним.

vsFTPd — это дополнительный инструмент, который расширяет возможности FTP-протокола. По сути, он является полноценным сервером, который используется в Linux по умолчанию, славится высокой надежностью и большим количество функций.

vsFTPd работает с виртуальными пользователями и IP-адресами. В нем есть возможность настраивать отдельные правила для пользователей. Продукт активно поддерживается сообществом. В этом инструменте есть возможность подключить SSL-шифрование данных и так далее.

Устанавливаем vsFTPd

vsFTPd есть во всех популярных репозиториях, поэтому его легко загрузить в любой дистрибутив. Вот как это делается в Ubuntu и ей подобных системах (Linux Mint, Debian, Elementary OS).

Открываем терминал. Это можно сделать, одновременно нажав клавиши Ctrl Alt T. Вводим туда команду sudo apt-get install vsftpd и нажимаем клавишу «Ввод» (Enter).

Устанавливаем vsFTPd с помощью стандартного менеджера пакетов

Затем вводим пароль администратора, чтобы продолжить установку.

Возможно, придется подтвердить установку клиента, нажав на клавишу «Д» (или Y в английской версии системы).

Учтите, что во время набора пароля, вводимые символы никак не отображаются в терминале. Придется набирать вслепую

На этом все.

Для тестирования соединения можно установить стандартный FTP-сервер. Чтобы это сделать, открываем терминал и вводим в него команду sudo apt-get install ftp.

Это необязательно

Установка vsFTPd в другие операционные системы

В разных дистрибутивах используются разные менеджеры пакетов, поэтому придется скорректировать команду под свой вариант Linux. Например:

Для Fedora — sudo dnf install vsftpd, openSUSE — sudo zypper install vsftpd, CentOS — sudo yum install vsftpd, Arch Linux — pacman -S vsftpd, Gentoo — emege vsftpd.

Чтобы установить vsFTPd в дистрибутив, не указанный в списке, нужно выяснить, какой менеджер пакетов там используется и подставить его в команду sudo название менеджера пакетов install vsftpd. Либо найти исходный код утилиты и собрать его вручную локально.

Настраиваем FTP-сервер

Перед тем как начать настройку, можно ознакомиться с файлом-инструкцией. В vsFTPd встроено большое удобное руководство по базовой настройке и запуску сервера. Оно открывается командой man vsftpd.conf Это на тот случай, если вы дружите с английским и хотите провести более тонкую настройку под свои нужды. В ином случае продолжайте читать дальше…

Все параметры FTP-сервера хранятся в одном конфигурационном файле. Он называется vsftpd.conf и в зависимости от системы может храниться либо в папке /etc/vsftpd/, либо просто в /etc/.

Например, чтобы получить доступ к настройкам в CentOS, введем в терминале sudoedit /etc/vsftpd/vsftpd.conf. А в Debian и Ubuntu — sudoedit /etc/vsftpd.conf.

sudoedit — это запуск стандартного текстового редактора от имени администратора. При желании вы можете указать любой другой инструмент. Например, vi.

Это инструкция к vsFTPd

Запуск FTP-сервера

Вообще, vsFTPd запускается автоматически, и его работоспособность легко проверить. Просто открываем браузер и переходим по ссылке ftp://192.0.0.1. Это локальный адрес, на котором работает ваш сервер.

Вот как выглядит наш FTP-сервер в браузере

Чтобы запустить vsFTPd, нужно ввести в терминал команду systemctl start vsftpd.

Настройка анонимного доступа

Режим анонимного доступа позволяет подключаться к FTP-серверу без авторизации. Правда, подключиться к нему можно только от лица единственного пользователя (по умолчанию речь идет о пользователе ftp).

При этом автоматически устанавливается и папка, доступ к которой будет открыт через FTP-сервер. По умолчанию vsFTPd открывает доступ к директории /srv/ftp. Выбор падает именно на эту папку, потому что это домашняя директория пользователя ftp. Если ее изменить, то и данные на сервере тоже изменятся.

Чтобы включить анонимный доступ в vsFTPd, надо открыть конфигурационный файл, найти там директиву anonymous_enable=NO и заменить NO на YES.

Теперь вы можете сами подключиться к своему FTP-серверу и проверить, что он работает без авторизации.

Настройки FTP

Настройка авторизованного доступа

Режим авторизованного доступа дает больше возможностей. Пока он включен, к FTP-серверу может подключиться любой пользователь, который может войти в систему. Проще говоря, если удаленным компьютером на базе Linux пользуется группа людей, то все они смогут подключаться к FTP-серверу от своего имени, а не от имени ftp.

Включается этот режим довольно просто.

Открываем конфигурационный файл. Ищем внутри директиву local_enable=NO_ и меняем NO на YES. Потом то же самое делаем с директивой write_enable=NO (это чтобы люди могли не только скачивать файлы, но и загружать).

Теперь при попытке войти на FTP-сервер пользователи натолкнутся на окошко, запрашивающее логин и пароль. Собственно, логин — имя пользователя, а пароль — тот пароль, что используется для входа в систему.

Еще настройки

Важно отметить, что любые изменения в файле vsftpd.conf вступают в силу только после перезагрузки сервера. Поэтому не забывайте после внесения корректировок перезагружать vsFTPd командой systemctl restart vsftpd. Для этого нужны будут права администратора, запустившего FTP-сервер или права суперпользователя.

Дополнительные настройки и возможности

Теперь, когда у нас уже есть рабочий FTP-сервер, можно ознакомиться с дополнительными параметрами. Во-первых, узнаем команды для управления сервером. Во-вторых, настроим шифрование. В-третьих, уберем блокировку Firewall, если таковая имеется.

Управление FTP-сервером

Вообще для работы с vsFTPd достаточно пары команды:

Чтобы проверить статус FTP-сервера (включен ли он и как работает), используем команду systemctl status vsftpd (или service vsftpd status)

Вот что выдается по запросу systemctl status vsftpd

Для запуска команду systemctl start vsftpd (или service vsftpd start). Для перезапуска — systemctl restart vsftpd (или service vsftpd restart). Чтобы выключить сервер, используем systemctl stop vsftpd (или __ service vsftpd stop). Чтобы добавить vsFTPd в автозагрузку (то есть заставить FTP-сервер запускаться вместе с системой), вводим в терминал команду systemctl enable vsftpd__ (или service vsftpd enable).

Вот как это выглядит на практике

Все действия с vsFTPd нужно подтверждать паролем суперпользователя или администратора.

Вот такой запрос будет появляться при попытке взаимодействовать с vsFTPd

Настройки шифрования

Включить шифрование данных в vsFTPd не сложно. Просто:

Открываем конфигурационный файл командой sudoedit /etc/vsftpd/vsftpd.conf. Ищем внутри директиву ssl_enable=NO_. Заменяем NO на YES.

Вот и все.

Сложность заключается в том, что нужно сгенерировать SSL-ключи и сертификаты для конкретного сервера и разместить их в директориях, которые указаны в параметрах vsFTPd (либо указать путь к другим сертификатам и ключу). Речь идет о строках:

rsa_cert_file=/etc/ssl/certs/ssl-cert.pem rsa_private_key_file=/etc/ssl/private/ssl-cert.key

Настройка Firewall

В некоторых дистрибутивах (в частности, серверных) работает Firewall. Это механизм защиты от несанкционированных входящих и исходящих подключений. Он обычно блокирует некоторые порты, по которым программы подключаются к удаленному ресурсу, чтобы избежать утечки данных.

В Ubuntu, к примеру, используется Firewall ufw, который по умолчанию блокирует подключение к портам 21 и 20. А без них FTP-сервер запустить не получится. Так что придется их сначала разрешить. Для этого:

Открываем терминал. Вводим в него команду sudo ufw disable, чтобы выключить Firewall. Затем снова включаем его командой sudo ufw enable.

Перезагрузимся перед настройкой

Потом добавляем в список исключений подключение по порту 20. Для этого введем в командную строку sudo ufw allow 20/tcp.

Добавили первый…

И то же самое проделываем с портом 21. Команда sudo ufw allow 21/tcp.

…и второй

Потом снова перезагружаем Firewall и FTP-сервер.

Перейти на полную версию страницы