Инициатива #SaveFirst
поддержка онлайн-проектов, которые помогают людям в период кризиса COVID-19
Подробнее

Как подключиться к серверу по FTP?

После размещения сайта на сервере встаёт вопрос: как организовать доступ по FTP для работы с файлами сайта? Для этой задачи есть несколько решений — в зависимости от того, используете ли вы сервер с панелью управления ISPmanager или без неё.

FTP на сервере с панелью ISPmanager

Чтобы подключение по FTP на сервере с ISPmanager стало доступным, нужно создать FTP-пользователя. Для этого:

  1. Авторизуйтесь в панели ISPmanager. Ссылка и данные для входа в неё доступны в Личном кабинете — раздел ТоварыВиртуальные серверы — выберите ваш сервер, сверху «Инструкция».

    Список серверов в Личном кабинете
    Список серверов в Личном кабинете

    В разделе «ISPmanager — панель управления сервером» будут указаны данные для входа:

    Данные для подключения в инструкции
    Данные для подключения в инструкции
  2. Откройте раздел Учётные записиFTP-пользователи и нажмите «Создать»:

    Список FTP-пользователей в ISPmanager
    Список FTP-пользователей в ISPmanager

    Панель предложит ввести имя FTP-пользователя, выбрать владельца (пользователя, к сайтам которого вы хотите настроить доступ), задать пароль и домашнюю директорию FTP-пользователя (она настраивается относительно домашней папки пользователя-владельца):

    Создание FTP-пользователя в ISPmanager
    Создание FTP-пользователя в ISPmanager

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

  • IP-адрес сервера;
  • имя созданного FTP-пользователя;
  • заданный при его создании пароль.

Подключаемся: 

Подключение через FileZilla
Подключение через FileZilla

В случае успешного подключения мы увидим список каталогов в домашней директории пользователя-владельца (example-user). Все сайты размещены в подкаталоге www:

Список каталогов пользователя
Список каталогов пользователя

FTP на сервере без панели управления

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

Настройка подключения через sFTP

По умолчанию sFTP-доступ к серверу уже настроен. Можно сразу подключиться через обычный FTP-клиент, например, FileZilla, использовав IP-адрес сервера, логин и пароль пользователя root и порт 22

Также можно создать дополнительных sFTP-пользователей с доступом только к отдельным папкам на сервере. Тем самым можно организовать доступ к файлам сайтов для нескольких пользователей.

Настройка безопасного протокола sFTP

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

По умолчанию на серверах без панели управления FTP-сервер не установлен. Тем не менее, можно быстро установить его из штатных репозиториев операционной системы. Есть несколько распространённых FTP-серверов (proftpd, pure-ftpd), мы остановимся на одном из наиболее популярных, быстрых и надёжных  — vsftpd.

vsftpd (Very Secure FTP Daemon) — FTP-сервер с возможностью шифрования передаваемых по протоколу FTP файлов. Благодаря этому повышается уровень безопасности — никто не сможет получить доступ к данным, которые вы загружаете на сервер, если их удастся перехватить.

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

vsftpd доступен для установки из штатных репозиториев во многих операционных системах семейства Linux. 

Для начала установки необходимо подключиться к серверу по SSH под пользователем root. Способ установки может отличаться в зависимости от дистрибутива  операционной системы:

Ubuntu и DebianCentOS
apt-get update
apt-get install vsftpd
yum install vsftpd

 

После завершения установки нужно запустить FTP-сервер и добавить его в автозапуск — чтобы после перезагрузки сервера он включался автоматически:

systemctl start vsftpd
systemctl enable vsftpd

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

cp /etc/vsftpd.conf /etc/vsftpd.conf.copy

В случае сбоя или при необходимости восстановления настроек будет достаточно удалить отредактированный файл и переименовать vsftpd.conf.copy в vsftpd.conf

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

vi /etc/vsftpd.conf

** В качестве примера приведён консольный редактор vim. Для входа в режим редактирования на клавиатуре нажмите I. Для выхода из режима редактирования нажмите Esc. Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!

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

listen=YES

*Этот параметр позволяет включить FTP-сервер в режиме ожидания входящих подключений.

#listen_ipv6=YES

*Этот параметр отвечает за возможность подключения к серверу по FTP с IPv6-адресов. В большинстве случаев этот параметр не нужен, хотя и включен по умолчанию. Его необходимо отключить, поставив в начале строки символ «#».

local_umask=022

* Этот параметр отвечает за автоматическое  назначение прав на загружаемые данные. Для папок при загрузке будут автоматически назначены права 755, для файлов — 644. 

chroot_local_users=YES

* Этот параметр запрещает для FTP-пользователей доступ к директориям выше их домашней папки. То есть если у пользователя в качестве домашней папки установлена директория /var/www/user/sites/username, он сможет перемещаться и управлять файлами только в рамках папки username без возможности перейти на уровень выше.

ssl_enable=YES

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

После изменения параметров сохраните файл, закройте редактор и перезапустите vsftpd командой:

systemctl restart vsftpd

Чтобы убедиться, что служба корректно запустилась, проверьте её статус:

systemctl status vsftpd

Если проблем нет, вы увидите статус active (running):

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

Создание FTP-пользователей

Перед тем, как приступить к созданию FTP-пользователей, важно учесть, как именно будет организована файловая структура ваших сайтов — чтобы в процессе правильно создать и настроить домашнюю папку пользователя. В частности, это необходимо для корректной работы параметра chroot_local_users=YES, который был задан на этапе настройки vsftpd

Например, для примера мы организовали следующую структуру каталогов:

/var

      /www

            /sites

Системная директория

Директория веб-сервера для размещения сайтов

Добавленный каталог для разбиения сайтов по пользователям

                  /usernameДомашняя директория пользователя username

                        /example1.com
                        /example2.com

Сайты пользователя username

 

В такой структуре пользователю username доступны только каталоги  example1.com/ и example2.com/ — внутри них он может создавать и редактировать файлы и папки. Все каталоги выше принадлежат пользователю root или системным пользователям.

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

    Переходим в папку, где будет расположена домашняя директория пользователя:

    cd /var/www/sites

    Создаём новую папку:

    mkdir username
  2. Теперь нам нужно создать нового пользователя, назначив ему в качестве домашней директории созданную папку. Если вам нужно настроить доступ к другому каталогу, просто измените в команде путь /var/www/sites/username на свой.

    useradd -d /var/www/sites/username username

    Настроим пароль для нового пользователя:

    passwd username

    Система предложит ввести и подтвердить новый пароль. Для подтверждения ввода нажмите Enter.

  3. Теперь осталось создать папку с владельцем в лице нашего нового пользователя. Переходим в созданный каталог:

    cd username

    Создаём папку, куда новый пользователь сможет загружать свои файлы:

    mkdir example.com

    Настроим в качестве её владельца нашего пользователя username:

    chown username:username example.com

На этом процесс настройки завершён. Осталось протестировать подключение через любой FTP-клиент, например, FileZilla. Для подключения указываем IP-адрес сервера, имя нашего созданного пользователя и его пароль:

Подключение по FTP через FileZilla
Подключение по FTP через FileZilla

Клиент сообщит, что FTP-сервер имеет самоподписанный сертификат, и запросит подтверждение на подключение и сохранение этого сертификата как доверенного:

Предупреждение о самоподписанном сертификате
Предупреждение о самоподписанном сертификате

Если вы не активировали опцию ssl_enable=YES на этапе настройки, тогда клиент сообщит, что подключение небезопасно — данные не будут шифроваться:

Предупреждение о незащищённом соединении
Предупреждение о незащищённом соединении

В случае успешного подключения у вас откроется домашняя папка пользователя с каталогом под файлы:

Список каталогов пользователя
Список каталогов пользователя

Обратите внимание, что пользователь может работать только внутри директории example.com/ Загрузка файлов или добавление папок в самой домашней директории (вне каталога example.com/) будут недоступны.

Как сделать FTP безопаснее

Протокол FTP разработан еще в 1971 году, и с тех пор стал самым привычным способом работы с файлами на сервере. Его поддерживают все современные браузеры, существует множество клиентов для подключения к серверу по FTP. Он очень удобен и прост в настройке.

Однако при всех его достоинствах, отсутствие шифрования при передаче данных — серьезный недостаток, из-за которого использовать его не рекомендуется. Но, если обойтись без FTP по каким-то причинам не получается, следуйте советам специалистов по информационной безопасности:

  • используйте FTP-подключение только в проверенных сетях, избегайте публичных Wi-Fi точек
  • регулярно проверяйте на вирусы устройства, которые используются для работы по FTP. Так вы избежите перехвата FTP-доступов троянскими программами
  • не сохраняйте доступы в вашем FTP-клиенте
  • регулярно меняйте пароль FTP-пользователя
  • если FTP нужен вам нерегулярно, лучше включать его по надобности. Сделать это можно через ISPmanager — Службы
  • если вы предоставляете доступ по FTP другому человеку, создайте нового FTP-пользователя и удалите, как только доступ этому пользователю станет не нужен.
  • повысить безопасность можно с помощью ограничения через .ftpaccess. Для этого нужно создать файл .ftpaccess в домашнем каталоге FTP-пользователя и ограничить доступ, например по IP с адресом 5.5.5.5. Тогда подключиться по FTP можно будет только с этого IP: 
limit all=""
Allow from 5.5.5.5
Deny from All
/limit

Эти меры снижают риски, но полностью их не исключают. Если вы хотите защитить данные сервера от перехвата, заражения вирусом и других неприятностей, используйте sFTP.