Удалить ftp сервер ubuntu

Обновлено: 02.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.

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

Установка и настройка vsftpd на Ubuntu 20

Vsftpd это один из самых популярных сервисов для работы по FTP на Linux. Существуют похожие сервисы для работы с FTP - это PureFTPd и ProFTPD. В этой статье мы рассмотрим установку этого сервиса на Ubuntu и настройку SSL/TLS подключения, пользователей, папок и портов.

Навигация по посту

Установка и минимальная настройка

Для установки сервиса у вас должны быть права sudo. Следующей командой мы выполним установку:

Включим сервис и проверим его работу:

Запуск сервера FTP sftpd на Ubuntu 20

Если у вас отключен фаервол или разрешено FTP подключение - вы уже сможете выполнить подключение использовав учетные данные вашего пользователя. При подключении вы окажетесь в домашнем каталоге своего пользователя с возможностью перехода в другие.

Разрешение активного и пассивного режима в фаерволе

У вас могут быть запрещены порты для подключения к FTP. Что бы разрешить этот тип соединения откройте на Ubuntu порты:

Включение правил для фаервола для сервера FTP sftpd на Ubuntu 20

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

активный - клиент передает данные для сессии, а сервер по этим данным сам устанавливает сессию/подключение;

В активном режиме клиент выполняет подключение на 21 порт сервера и сообщает по какому порту к нему можно подключится. Сервер подключается к порту клиента, но уже с 20 порта.

В пассивном режиме клиент так же подключается на 21 порт, но теперь уже сервер сообщает номер порта для установки сессии. Клиент сам устанавливает сессию по этому порту. Номер портов, которые может использовать сервер, устанавливается в настройках. Мы, в примере выше, открыли порты с 10100 по 10110 для этого. Пассивный режим является более безопасным и рекомендуемым.

По умолчанию режим всегда активный. Если вы хотите это изменить, то вам нужно зайти в файл конфигурации vsftpd:

Добавите следующие строки (измените номера портов, если вы планируете использовать другие):

Включение пассивного режима FTP sftpd на Ubuntu 20

Перезапустите сервис и проверьте его работу:

Перезапуск сервиса FTP vsftpd Ubuntu 20

В клиенте FileZilla, например, есть возможность автоматического переключения между пассивным и активным методом передачи. Пассивный режим стоит предпочтительным умолчанию. Если у вас не удастся подключение - то вы можете попробовать явно установить этот режим в одной из настроек:

Включение пассивного режима на FileZilla

Разрешения

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

Если вам нужно такое право вы можете снять комментарий или просто добавить следующую строку:

Добавление права на запись в FTP сервере vsftpd Ubuntu 20

Каждое изменение этого файла нуждается в последующем перезапуске сервера vsftpd:

Каталоги

С настройками установленными по умолчанию вы можете переходить по всем каталогам на которые у вас есть права. Что бы запретить эту возможность вам нужно изменить файл конфигурации. Первое - снимем комментарий со следующей строки:

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

  • 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Эта ошибка связана с разрешением на запись в каталог куда подключается пользователь. Исправляется это добавлением этой строки:

Добавление записи при chroot_local_user в Ubuntu 20

После этого вы сможете подключиться к вашему домашнему каталогу.

Если вы хотите установить другую папку для подключения - это можно сделать через следующую инструкцию (в моем случае папка заменена на /var/www/):

Смена директорий в FTP сервере vsftpd на Ubuntu 20

Если у вас не будет создана папка для пользователя - появится ошибка:

Похожая ошибка может произойти из-за отсутствия прав на чтение директории.

Перезапустите сервис что бы изменения вступили в силу.

Используем Django, Postgresql и Nginx в контейнерах Docker

Пользователи

Включение анонимных и локальных пользователей в vsftpd на Ubuntu 20

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

Если в файл конфигурации vsftpd добавить следующую строку, то список пользователей станет тем кому разрешено подключаться, а не запрещено:

Использование списка пользователей vsftpd на Ubuntu 20

Отдельная учетная запись

В примерах выше рассматривались случаи, когда пользователи подключающееся в vsftpd так же имели права подключаться через ssh. Это не всегда является желательным случаем и вы можете это запретить. Один из способов - просто создать пользователя, который вместо shell будет запускать /sbin/nologin (запрещающее вход пользователя):

Добавим новую оболочку в файл /etc/shells:

Изменим у существующего пользователя оболочку:

Этого же пользователя нужно добавить в список разрешенных пользователей, если вы его ведете.

Блокировка FTP пользователей для доступа через ssh

SSL/TLS

В Ubuntu уже должен быть установлен openssl сервер - вы это можете проверить с помощью следующей команды:

Проверка установки openssl

Создание сертификата для FTP сервера vsftpd

Далее нам нужно открыть файл конфигурации vsftpd:

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

Включение работы ssl/tls для работы в vsftpd

После этого, при подключении к FTP (на моем примере клиент FileZilla), появится следующее окно:

Запрос сертификата в FileZilla

Сертификат помечается неизвестным т.к. его не получается проверить (описано в начале главы), но соединение будет зашифрованным.

Вы можете установить дополнительные параметры для работы с ssl:

По умолчанию, при включении ssl через ssl_enable, преимущество всегда у TLS v1. С помощью следующих инструкций вы можете отключить более старые протоколы, что бы они не использовались:

Implicit и explicit FTP

Пример выше демонстрировал работу FTP на тех же портах, что и при обычном подключении (20,21). Такой вид подключения называется explicit (явный). Такой способ говорит о том, что ваш FTP клиент обязан сам запросить шифрование иначе соединение будет обычным.

В vsftpd предусмотрена возможность использования зашифрованного подключения используя другой порт. Такое подключение называют Implicit (не явный), и оно будет срабатывать в любом случае. Для такого подключения, обычно, используется 990 порт и вы должны открыть его на фаерволе:

Для того чтобы развернуть свой 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, значит передача данных между клиентом и сервером шифруются.

How to Setup FTP Server with VSFTPD on Ubuntu 18.04

Хотя это руководство написано для Ubuntu 18.04, те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Debian, включая Debian, Linux Mint и Elementary OS.

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

FTP (протокол передачи файлов) - это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее.

Для Linux доступно множество FTP-серверов с открытым исходным кодом. Наиболее популярными и широко используемыми являются PureFTPd , ProFTPD и vsftpd . В этом руководстве мы будем устанавливать vsftpd (Very Secure Ftp Daemon). Это стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, как настроить vsftpd, чтобы ограничить пользователей их домашним каталогом и зашифровать всю передачу с помощью SSL / TLS.

Для более безопасной и быстрой передачи данных используйте SCP или SFTP .

Прежде чем приступить

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

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

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


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


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

Настройка vsftpd

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

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

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

1. Доступ по FTP

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

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

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

3. Chroot Jail

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

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

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

Метод 1. - Рекомендуемый метод разрешения загрузки - оставить включенным chroot и настроить каталоги FTP. В этом руководстве мы создадим ftp каталог внутри дома пользователя, который будет служить корневым uploads каталогом и каталогом с возможностью записи для загрузки файлов.

Метод 2. Другой вариант - добавить следующую директиву в файл конфигурации vsftpd. Используйте эту опцию, если вам необходимо предоставить пользователю доступ с правом записи к его домашнему каталогу.

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

Добавьте в файл конфигурации следующие строки:

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

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

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

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

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

Если у вас есть домен или субдомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный SSL-сертификат Let's Encrypt .

Мы сгенерируем самоподписанный сертификат SSL с помощью openssl команды.


После создания 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-й шаг.

Создайте нового пользователя с именем newftpuser :

Добавьте пользователя в список разрешенных пользователей FTP:

Создайте дерево каталогов FTP и установите правильные разрешения :


Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в ftp/upload каталог.

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

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

По умолчанию при создании пользователя, если это не указано явно, у пользователя будет SSH-доступ к серверу.

Создайте /bin/ftponly оболочку и сделайте ее исполняемой:


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


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


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

Заключение

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

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