Настройка 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, необходимо:
- Установить FTP-сервер с поддержкой SSL для безопасного подключения;
- Настроить учетную запись для FTP-пользователя;
- Проверить подключение к FTP-серверу.
Установка сервера-FTP
В данной статье, для организации FTP-сервера, за основу выбрана операционная система Ubuntu 20.04 LTS. Обновимся и установим из официального репозитория пакет vsftpd :
Наш сервер уже успешно работает. В этом можно убедиться используя следующую команду:
После успешной установки, произведем некоторые настройки в конфигурационном файле. Откроем текстовым редактором файл vsftpd.conf :
Вот те основные изменения, которые необходимо внести для корректной работы сервера:
После внесенных настроек- в конфигурационном файле, сохраняем изменения и перезапускаем сервер:
На основании сертификатов SSL организуем безопасный, шифрованный режим передачи информации между клиентом и сервером. Команда ниже создает самозаверяющие цифровые сертификаты, подписанные самим сервером. После генерации, используем файлы сертификатов в работе сервера FTP:
Внесем некоторые изменения в конфигурационный файл vsftpd.conf . Изменим строки в соответствии с рисунком ниже:
Здесь мы указали путь к созданным файлам сертификатов, которые были созданы ранее.
Настройка учетной записи FTP-пользователя
Создадим учетную запись пользователя, которой будем осуществлять подключение к созданному серверу FTP. Изначально, авторизоваться на сервере можно под локальным пользователем. Но мы для этих целей будем использовать отдельно созданную учётную запись. Создадим пользователя следующей командой:
Создадим пароль на вход для пользователя следующей командой:
Проверка подключения к FTP-серверу
Проверим правильность настроек и осуществим первое подключение к FTP-сервер. Для соединения с сервером воспользуемся бесплатным FTP-клиентом FileZilla. После запуска программы заполним поля адрес сервера/имя пользователя/ пароль. Для авторизации будем использовать учетную запись ftpuser .
Подключение к серверу успешно, значит произведенные настройки в конфигурационном файле верны. В статусе подключения видно, что в данной сессии инициализирован 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.
Читайте также: