Введение
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
Подключитесь к FTP-серверу, используя следующую команду: Замените Например:Шаг 7: Подключитесь к FTP-серверу
[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-сервер позволяет эффективно обмениваться файлами, передавать их и управлять ими по сетям или через Интернет.