Как настроить FTP-сервер на Ubuntu
В этой статье вы узнаете, как настроить FTP-сервер на Ubuntu VPS. Мы будем использовать сервер vsftpd, который широко считается самым быстрым и безопасным FTP-сервером для UNIX-подобных систем.
Это в чем-то похоже на HTTP (протокол передачи гипертекста) или SMTP (простой протокол передачи почты). Разница в том, что FTP отвечает за транспортировку файлов через Интернет, а HTTP и SMTP обрабатывают передачу веб-страниц и электронной почты соответственно.
Прежде чем мы начнем, имейте в виду, что мы проведем вас через настройку FTP-сервера в Ubuntu 18.04. Следовательно, вам необходимо убедиться, что ваш VPS работает на этой конкретной ОС.
Что такое FTP?
FTP или протокол передачи файлов - это средство обмена файлами между компьютерами через интернет-соединение с использованием протокола TCP / IP. Он также использует структуру клиент-сервер и безопасность SSL / TLS для обеспечения безопасной и надежной передачи данных.Это в чем-то похоже на HTTP (протокол передачи гипертекста) или SMTP (простой протокол передачи почты). Разница в том, что FTP отвечает за транспортировку файлов через Интернет, а HTTP и SMTP обрабатывают передачу веб-страниц и электронной почты соответственно.
Прежде чем мы начнем, имейте в виду, что мы проведем вас через настройку FTP-сервера в Ubuntu 18.04. Следовательно, вам необходимо убедиться, что ваш VPS работает на этой конкретной ОС.
Как настроить FTP-сервер в Ubuntu
В этом руководстве вы должны знать, как подключиться к серверу через SSH. Если у вас есть VPS от Hostinger, данные для входа доступны на вкладке « Сервер » в hPanel.Шаг 1 - Установка vsftpd
- Прежде всего, нам нужно получить обновления наших пакетов, прежде чем мы продолжим установку vsftpd . Для начала выполните следующую команду:
Дождитесь завершения всех процессов, и вы увидите подтверждение, как только обновление завершится.sudo apt-get update
- Как только это будет сделано, установите демон vsftpd , используя следующую команду:
Вам будет предложено сообщение с подтверждением, в котором вам потребуется ввести Y и нажать Enter, чтобы продолжить установку.sudo apt-get install vsftpd
- После завершения установки необходимо создать резервную копию исходного файла, чтобы можно было начать с пустого файла конфигурации:
Теперь мы готовы настроить брандмауэр.sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Шаг 2. Разрешение FTP-трафика через брандмауэр
- Чтобы FTP-сервер Ubuntu мог обмениваться данными через Интернет, ему необходимо пройти через брандмауэр. Но сначала давайте просто посмотрим, включен ли брандмауэр на вашем компьютере или нет. Просто запустите эту команду, чтобы проверить статус:
Если вы видите следующее сообщение:sudo ufw status
Это означает, что межсетевой экран не установлен. Вы можете установить и включить его, набрав:ufw: command not found
sudo apt-get install ufw sudo ufw enable
- Если он уже активен, вам все равно нужно убедиться, что FTP-трафик разрешен. Для этого выполните одну за другой следующие команды:
Эта серия команд откроет несколько портов:sudo ufw allow OpenSSH sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
- OpenSSH требуется, если вы все еще хотите получить доступ к своему серверу через SSH. Иногда этот параметр включен по умолчанию.
- порты 20 и 21 для FTP-трафика.
- порты 40000: 50000 будут зарезервированы для диапазона пассивных портов, который в конечном итоге будет установлен в файле конфигурации.
- порт 990 будет использоваться, когда включен TLS.
- Теперь снова посмотрим на статус:
Результат должен выглядеть примерно так:sudo ufw status
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 990/tcp ALLOW Anywhere 20/tcp ALLOW Anywhere 21/tcp ALLOW Anywhere 40000:50000/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 20/tcp (v6) ALLOW Anywhere (v6) 21/tcp (v6) ALLOW Anywhere (v6) 990/tcp (v6) ALLOW Anywhere (v6) 40000:50000/tcp (v6) ALLOW Anywhere (v6)
Шаг 3 - Создание каталога пользователей
- После настройки брандмауэра мы должны создать пользователя, который будет использовать FTP-доступ. Вот как это сделать:
Не забудьте изменить имя пользователя по своему усмотрению.sudo adduser hostinger
- Затем введите пароль для пользователя и заполните все необходимые данные.
В идеале FTP должен быть ограничен одним конкретным каталогом в целях безопасности. Вот почему vsftpd использует chroot-тюрьмы , которые по умолчанию ограничивают локального пользователя их домашним каталогом.
Однако возможно, что из-за безопасности vsftpd пользователь не сможет писать в этот каталог. Чтобы исправить это, нам не нужно удалять права записи из домашней папки. Вместо этого мы создадим каталог ftp, который будет работать как chroot . Он содержит доступный для записи каталог, который будет нести ответственность за хранение необходимых файлов. - Используйте следующую команду для создания папки FTP:
Затем установите право собственности, используя:sudo mkdir /home/hostinger/ftp
Наконец, удалите разрешение на запись:sudo chown nobody:nogroup /home/hostinger/ftp
Теперь используйте следующую команду для проверки разрешений:sudo chmod a-w /home/hostinger/ftp
Результат должен выглядеть примерно так:sudo ls -la /home/hostinger/ftp
total 8 dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 . drwxr-xr-x 3 hostinger hostinger 4096 Oct 8 11:32 ..
- Затем мы создадим каталог для хранения файлов и назначим владельца:
Наконец, добавьте в каталог тестовый файл, который будет использоваться, когда мы все протестируем позже:sudo mkdir /home/hostinger/ftp/files sudo chown hostinger:hostinger /home/hostinger/ftp/files
echo "vsftpd sample file" | sudo tee /home/hostinger/ftp/files/sample.txt
Шаг 4 - Настройка vsftpd
Следующим шагом будет настройка vsftpd и нашего FTP-доступа. В этом примере мы разрешим одному пользователю подключаться с помощью локальной учетной записи оболочки. Две необходимые для этого ключевые конфигурации уже заданы в файле конфигурации ( vsftpd.conf ).- Для начала используйте команду nano, чтобы открыть файл конфигурации vsftpd .
Убедитесь, что для содержимого заданы настройки, подобные этим:sudo nano /etc/vsftpd.conf
В том же файле мы удалим # (раскомментировать) и убедимся, что мы включили write_enable .. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .
. . . write_enable=YES . . .
- Вам также необходимо раскомментировать chroot, чтобы пользователь FTP имел доступ только к файлам в разрешенном каталоге. Также измените значение NO на YES . Имейте в виду, что таких строк две, и вы должны раскомментировать их.
. . . chroot_local_user=YES . . .
- Есть несколько новых значений, которые вы также должны добавить в конец файла. Первый - user_sub_token в пути каталога local_root . Это позволит конфигурации работать с текущим пользователем или любыми другими пользователями, которые будут добавлены впоследствии:
user_sub_token=$USER local_root=/home/$USER/ftp
- Чтобы обеспечить доступность значительного количества подключений, мы ограничим количество портов в файле конфигурации:
pasv_min_port=40000 pasv_max_port=50000
- В этом руководстве мы намерены предоставлять доступ в индивидуальном порядке. Поэтому мы настроим конфигурацию для предоставления доступа только пользователям, которых вы явно добавили в список:
Когда вы устанавливаете флаг userlist_deny в NO , доступ будет разрешен только указанным пользователям. После этого нажмите CTRL + X, затем Y, чтобы сохранить его, затем нажмите Enter, чтобы подтвердить изменения файла.userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
- Наконец, мы создадим список пользователей и добавим пользователя в файл:
Убедитесь, что пользователь действительно активен, выполнив следующую команду:echo "hostinger" | sudo tee -a /etc/vsftpd.userlist
Результат должен быть «hostinger», как показано на этом снимке экрана:cat /etc/vsftpd.userlist
- Перезапустите демон, используя следующую команду, чтобы загрузить изменения конфигурации:
sudo systemctl restart vsftpd
Шаг 5 - Обеспечение безопасности FTP
- По умолчанию FTP не шифрует данные, поэтому мы будем использовать сертификат SSL / TLS для защиты передачи данных. Первый шаг - нам нужно создать сертификат SSL для FTP-сервера Ubuntu.
-Days флаг делает сертификат действителен в течение года , и мы включили 2048-битовый частный RSA ключ в одной команде.sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
- После запроса введите соответствующие личные данные в соответствующее поле.
- После того, как вы закончите создание сертификата, снова откройте файл конфигурации:
В конце файла должны быть две строки, начинающиеся с rsa .sudo nano /etc/vsftpd.conf
Теперь мы укажем файл конфигурации на только что созданный сертификат. Добавьте следующие каталоги прямо под предыдущими строками:# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- Затем мы включим SSL и обеспечим, чтобы с нами могли связаться только клиенты, у которых есть активный SSL. Просто введите эту строку:
Затем добавьте следующие строки, чтобы запретить любые анонимные соединения через SSL:ssl_enable=YES
Настройте сервер для использования TLS, используя:allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
- Теперь изменим еще два варианта. Во-первых, отключите повторное использование SSL, чтобы FTP-клиенты не выходили из строя . Во-вторых, мы будем использовать комплекты шифров с высоким уровнем шифрования, которые гарантируют, что длина ключа равна или превышает 128 бит.
Снова сохраните файл, нажав CTRL + X, а затем Y , затем нажмите Enter .require_ssl_reuse=NO ssl_ciphers=HIGH
- Давайте перезапустим vsftpd еще раз, чтобы применить новые конфигурации:
sudo systemctl restart vsftpd
Комментариев 0