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

Введение

FTP означает File Transfer Protocol (протокол передачи файлов). Он похож на HTTP (протокол передачи гипертекста) в том, что определяет язык для передачи данных по сети. FTP по умолчанию не шифруется, поэтому сам по себе он не является хорошим выбором для безопасной передачи данных .

Если вы хотите установить FTP-сервер в Ubuntu, самый простой способ — использовать vsftpd.

Это руководство поможет вам установить и настроить FTP-сервер с vsftpd в Ubuntu.

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

Чтобы установить утилиту vsftpd в Ubuntu, выполните следующие действия :

Шаг 1: Обновление репозитория системных пакетов

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

sudo apt update

Дождитесь завершения процесса обновления.

Шаг 2: Установка сервера vsftpd на Ubuntu

vsftpd— это FTP-утилита с открытым исходным кодом, которая обычно используется в Ubuntu из-за своей простоты. Установите, vsftpd выполнив команду ниже:

sudo apt install vsftpd

Шаг 3: Запустите vsftpd

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

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Шаг 4: Резервное копирование файлов конфигурации

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

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default

Команда создает копию файла vsftpd.conf , расположенного в каталоге /etc/, и сохраняет ее как vsftpd.conf_default в том же каталоге.

Шаг 5: Создайте FTP-пользователя

Для этого урока мы создадим выделенного пользователя FTP. Пропустите этот шаг, если вы собираетесь предоставить доступ к FTP существующему пользователю.

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

sudo useradd -m [username]
sudo passwd [username]

Замените [username]на имя учетной записи пользователя, которую вы хотите создать. После запуска второй команды система предложит вам создать пароль для новой учетной записи. Пример ниже иллюстрирует процесс создания учетной записи и установки пароля:

Шаг 6: Настройте брандмауэр для разрешения FTP-трафика

Если вы используете UFW , он по умолчанию настроен на блокировку FTP-трафика. Выполните следующие команды, чтобы открыть порты 20 и 21 для FTP-трафика:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

Шаг 7: Подключитесь к FTP-серверу


Подключитесь к FTP-серверу, используя следующую команду:


sudo ftp [system_name]

Замените [system_name]на имя вашей системы (взято из командной строки).


Например:

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

Настройка сервера vsftpd

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

Изменить каталог по умолчанию

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

Выполните следующие действия:

1. Используйте эту команду для создания нового каталога :

sudo mkdir /srv/ftp/[new_location]

Замените [new_location]на каталог, который вы хотите создать.

2. Используйте следующую команду для изменения каталога по умолчанию, в который будет помещен пользователь при входе в систему:

sudo usermod -d /srv/ftp/[new_location] ftp

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

sudo systemctl restart vsftpd.service

Теперь вы можете поместить любые файлы, которыми хотите поделиться по FTP, в каталог /srv/ftp (если вы оставили его по умолчанию) или в каталог /srv/ftp/[new_location] (если вы его изменили).

Аутентификация пользователей FTP

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

1. Откройте файл конфигурации vsftpd.conf в nano или другом текстовом редакторе:

sudo nano /etc/vsftpd.conf

2. Найдите запись с меткой write_enable=YES и раскомментируйте ее (удалите символ # в начале строки):

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

sudo systemctl restart vsftpd.service

Настройка этого параметра позволяет пользователю вносить изменения в свой домашний каталог.

Настройка безопасности FTP

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

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

Один из методов защиты vsftpd— ограничить пользователей их домашним каталогом. Выполните следующие шаги:

1. Откройте vsftpd.conf в текстовом редакторе:

sudo nano /etc/vsftpd.conf

2. Раскомментируйте следующую строку, удалив #:

chroot_local_user=YES

В следующем примере показан файл в формате nano:

3. Сохраните файл, чтобы применить изменения и выйдите из редактора.

Создать файл списка пользователей

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

1. Откройте файл /etc/vsftpd.chroot_list в текстовом редакторе и добавьте по одному пользователю на строку, чтобы создать файл списка.

2. Отредактируйте файл vsftpd.conf и раскомментируйте (удалите #) следующие строки:

chroot_local_user=YES

chroot_list_file=/etc/vsftpd.chroot_list

На следующем изображении показаны изменения:

3. Перезапустите службу:

sudo systemctl restart vsftpd.service

С другой стороны, список заблокированных пользователей от доступа FTP хранится в файле /etc/ftpusers . Чтобы добавить заблокированных пользователей, отредактируйте этот файл и добавьте по одному пользователю на строку.

Шифрование трафика с помощью FTPS

Другой метод защиты вашего FTP-сервера — шифрование трафика. Это делается с помощью FTPS — File Transfer Protocol over SSL (Secure Socket Layer).

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

1. Создайте новый сертификат с помощью openssl . Выполните команду ниже:

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

При появлении соответствующего запроса укажите необходимую информацию или сохраните конфигурацию по умолчанию, нажав Enter .

2. Откройте файл vsftpd.conf в редакторе и измените строку ssl_enable=NO на ssl_enable=YES.

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

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=40000
pasv_max_port=50000

Сохраните изменения и выйдите из файла.

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

sudo systemctl restart vsftpd.service

Заключение

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