Настройка ftp сервера ubuntu

Обновлено: 04.07.2024

В этой статье описывается, как установить и настроить FTP-сервер в Ubuntu 20.04, который вы используете для обмена файлами между вашими устройствами.

Установка vsftpd на Ubuntu 20.04

Пакет vsftpd доступен в репозиториях Ubuntu. Для его установки выполните следующие команды:

Служба ftp автоматически запустится после завершения процесса установки. Чтобы проверить это, распечатайте статус службы:

Вывод должен показать, что служба vsftpd активна и работает:

Настройка vsftpd

Конфигурация сервера vsftpd хранится в файле /etc/vsftpd.conf

Большинство настроек сервера хорошо документированы внутри файла. Чтобы узнать обо всех доступных вариантах, посетите страницу документации vsftpd.

В следующих разделах мы рассмотрим некоторые важные настройки, необходимые для настройки безопасной установки vsftpd.

Начните с открытия файла конфигурации vsftpd:

1. Доступ по FTP

Мы разрешим доступ к FTP-серверу только локальным пользователям. Найдите anonymous_enable и local_enable и убедитесь, что ваша конфигурация соответствует приведенным ниже строкам:

2. Включение загрузки

Найдите и раскомментируйте write_enable чтобы разрешить изменения файловой системы, такие как загрузка и удаление файлов:

3. Chroot jail

Чтобы предотвратить доступ локальных пользователей FTP к файлам за пределами их домашних каталогов, раскомментируйте строку lne, начинающуюся с chroot_local_user :

По умолчанию из соображений безопасности, когда chroot включен, vsftpd откажется загружать файлы, если каталог, в котором заблокированы пользователи, доступен для записи.

Используйте одно из приведенных ниже решений, чтобы разрешить загрузку при включенном chroot:

4. Пассивные FTP-соединения.

По умолчанию vsftpd использует активный режим. Чтобы использовать пассивный режим, установите минимальный и максимальный диапазон портов:

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

5. Ограничение входа пользователя

Вы можете настроить vsftpd, чтобы разрешить вход только определенным пользователям. Для этого добавьте следующие строки в конец файла:

6. Защита передачи с помощью SSL / TLS

Чтобы зашифровать передачи FTP с помощью SSL / TLS, вам потребуется сертификат SSL и настроить FTP-сервер для его использования.

Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самозаверяющий сертификат.

И закрытый ключ, и сертификат будут сохранены в одном файле.

После создания SSL-сертификата откройте файл конфигурации vsftpd:

Найти rsa_cert_file и rsa_private_key_file директивы, изменить их значения на pam путь к файлу и установите ssl_enable директиву YES :

Если не указано иное, FTP-сервер будет использовать только TLS для безопасных подключений.

Перезапустите службу vsftpd

Когда вы закончите редактирование, конфигурационный файл vsftpd (без комментариев) должен выглядеть примерно так:

Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

Открытие брандмауэра

Если вы используете брандмауэр UFW , вам необходимо разрешить FTP-трафик.

Чтобы открыть порт 21 (командный порт FTP), порт 20 (порт данных FTP) и 30000-31000 (диапазон пассивных портов), выполните следующие команды:

Чтобы избежать блокировки, убедитесь, что порт 22 открыт:

Перезагрузите правила UFW, отключив и снова включив UFW:

Чтобы проверить изменения, выполните:

Создание пользователя FTP

Чтобы протестировать FTP-сервер, мы создадим нового пользователя.

  • Если пользователь, которому вы хотите предоставить доступ по FTP, уже существует, пропустите 1-й шаг.
  • Если вы установили allow_writeable_chroot=YES в своем файле конфигурации, пропустите 3-й шаг.

На этом этапе ваш FTP-сервер полностью готов к работе. У вас должна быть возможность подключиться к серверу с помощью любого FTP-клиента, который можно настроить для использования шифрования TLS, например FileZilla .

Отключение доступа к оболочке

Выполните следующие команды, чтобы создать /bin/ftponly и сделать его исполняемым:

Добавьте новую оболочку в список допустимых оболочек в /etc/shells :

Измените оболочку пользователя на /bin/ftponly :

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

Вывод

Мы показали вам, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Ubuntu 20.04.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd, поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:

В Ubuntu Server может использоваться файервол ufw. Тогда вам потребуется разрешить порты 20 и 21

Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде

для уточнения деталей по каждому параметру.

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

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета

Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:

В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP .

Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:

После изменений перезапустите vsftpd:

Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).

Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.

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

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета

Для аутентификации локальных пользователей надо раскоментировать строчку

По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:

после чего перезагрузите vsftpd:

Защита FTP

Ограничение пользователей

В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.

Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:

Если вы сняли комментарии со всех трёх строчек, то пользователи из списка не будут ограничены своими домашними каталогами, в отличии от пользователей не вошедших в список

Если при попытке подключения вы видите ошибку 1) :

то это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Способов решения этой ошибки несколько:

Запретить запись в домашний каталог локальному пользователю (подходит не всем и не всегда) Отменить проверку записи в домашний каталог прописав в конфиге 2) Прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог

Шифрование

Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:

Также обратите внимание на опции сертификата и ключа:

По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert. Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты.

Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:

Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:

Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.

Для того чтобы развернуть свой FTP-сервер на Ubuntu 20.04 LTS, необходимо:

  1. Установить FTP-сервер с поддержкой SSL для безопасного подключения;
  2. Настроить учетную запись для FTP-пользователя;
  3. Проверить подключение к FTP-серверу.

Установка сервера-FTP

В данной статье, для организации FTP-сервера, за основу выбрана операционная система Ubuntu 20.04 LTS. Обновимся и установим из официального репозитория пакет vsftpd :

Наш сервер уже успешно работает. В этом можно убедиться используя следующую команду:

Статус службы vsftpd

После успешной установки, произведем некоторые настройки в конфигурационном файле. Откроем текстовым редактором файл vsftpd.conf :

Вот те основные изменения, которые необходимо внести для корректной работы сервера:

После внесенных настроек- в конфигурационном файле, сохраняем изменения и перезапускаем сервер:

На основании сертификатов SSL организуем безопасный, шифрованный режим передачи информации между клиентом и сервером. Команда ниже создает самозаверяющие цифровые сертификаты, подписанные самим сервером. После генерации, используем файлы сертификатов в работе сервера FTP:

Внесем некоторые изменения в конфигурационный файл vsftpd.conf . Изменим строки в соответствии с рисунком ниже:

Файл vsftpd.conf

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

Настройка учетной записи FTP-пользователя

Создадим учетную запись пользователя, которой будем осуществлять подключение к созданному серверу FTP. Изначально, авторизоваться на сервере можно под локальным пользователем. Но мы для этих целей будем использовать отдельно созданную учётную запись. Создадим пользователя следующей командой:

Создадим пароль на вход для пользователя следующей командой:

Проверка подключения к FTP-серверу

Проверим правильность настроек и осуществим первое подключение к FTP-сервер. Для соединения с сервером воспользуемся бесплатным FTP-клиентом FileZilla. После запуска программы заполним поля адрес сервера/имя пользователя/ пароль. Для авторизации будем использовать учетную запись ftpuser .

FTP-клиент - настройка FTP на Ubuntu 20.04 LTS

Подключение к серверу успешно, значит произведенные настройки в конфигурационном файле верны. В статусе подключения видно, что в данной сессии инициализирован TLS, значит передача данных между клиентом и сервером шифруются.

В статье мы расскажем, как установить FTP-сервер на Ubuntu 16.04, 18.04 и 20.04. Кроме установки, мы покажем, как выполняется настройка FTP-сервера на Ubuntu, а именно: как установить защищённое подключение SSL/TLS, как создать пользователей и дать им доступ, а также как настроить брандмауэр.

FTP — протокол передачи файлов между устройствами в сети. В дистрибутиве Ubuntu можно использовать FTP-серверы: vsftpd, proftpd, wu-ftpd и pureftpd. Мы рассмотрим, как установить самый быстрый и безопасный сервер — vsftpd Ubuntu.

Как установить FTP Server Ubuntu vsftpd

1. Обновите базу данных доступных пакетов:

sudo apt update

2. Установите vsftpd:

sudo apt install vsftpd

3. Проверьте статус работы сервера:

sudo systemctl status vsftpd

Если сервер запущен, вы увидите статус active (running):


4. Добавьте службу в автозагрузку:

sudo systemctl enable vsftpd

Готово, вы установили vsftpd на Ubuntu Server.

Как настроить FTP-сервер на Ubuntu

Конфигурационный файл vsftpd — /etc/vsftpd.conf. Чтобы его настроить:

1. Создайте копию исходного файла конфигурации:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.copy

2. Откройте файл конфигурации:

sudo nano /etc/vsftpd.conf

3. Добавьте в файл директивы с указанными параметрами. Настройте работу сервера по IPv4:

Запретите доступ анонимным пользователям:

Разрешите доступ локальным пользователям:

Разрешите пользователям работать с файлами:

Назначьте права новым файлам:

Разрешите использовать локальное время на сервере:

Настройте логирование операций:

Настройте передачу данных по 20 порту:

Укажите директорию для хранения логов:

Задайте формат логов:

Дайте доступ пользователям только к своим домашним каталогам:

Включите поддержку авторизации PAM:

Разрешите вход только пользователям из файла userlist:

4. Сохраните файл при помощи CTRL+S, а затем закройте редактор комбинацией CTRL+X.

Готово, настройка FTP-сервера в операционной системе завершена.

Как включить защищённое соединение SSL/TLS

Чтобы настроить защищённое FTP-подключение, нужен SSL-сертификат. Подойдёт существующий сертификат или новый самоподписанный. Чтобы создать новый сертификат для защиты соединения:

1. Сгенерируйте сертификат:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

2. Откройте конфигурационный файл vsftpd:

sudo nano /etc/vsftpd.conf

3. Для директив rsa_cert_file и rsa_private_key_file присвойте пути к файлу сертификата vsftpd.pem:

5. Сохраните файл при помощи CTRL+S, а затем закройте редактор комбинацией CTRL+X.

6. Перезапустите FTP-сервер:

sudo systemctl restart vsftpd

Готово, вы настроили защищенный ФТП-сервер на Убунту.

Как создать FTP-пользователей и дать и доступ

Если у вас есть существующие пользователи FTP, которым вы хотите дать доступ, используйте инструкцию:

2. Введите имена пользователей. Один пользователь — одна строка.

3. Сохраните файл при помощи CTRL+S, а затем закройте редактор комбинацией CTRL+X.

Готово, существующие пользователи получили доступ.

Если вы хотите создать новых пользователей:

1. Создайте пользователя на веб-сервере:

sudo useradd username

Вместо username введите имя пользователя.

2. Задайте пароль новому пользователю:

sudo passwd username

Готово, вы создали пользователей FTP и дали им доступ для подключения.

Как настроить работу брандмауэра

Разрешите FTP-подключения к VPS/VDS для брандмауэра UFW. Для этого:

1. Откройте порты 20, 21, 22, 990 и диапазон 40000-50000 для TCP-подключений:

sudo ufw allow 20/tcp

sudo ufw allow 21/tcp

sudo ufw allow OpenSSH

sudo ufw allow 990/tcp

sudo ufw allow 40000:50000/tcp

2. Перезагрузите брандмауэр:

sudo ufw disable

sudo ufw enable

3. Проверьте статус UFW:

sudo ufw status

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

Читайте также: