После размещения сайта на сервере встаёт вопрос: как организовать доступ по FTP для работы с файлами сайта? Для этой задачи есть несколько решений — в зависимости от того, используете ли вы сервер с панелью управления ispmanager или без неё.
FTP на сервере с панелью ispmanager
Чтобы подключение по FTP на сервере с ispmanager стало доступным, нужно создать FTP-пользователя. Для этого:
- Авторизуйтесь в панели ispmanager. Сделать это можно двумя способами: по прямой ссылке (https://127.0.0.1:1500/ispmgr, где 127.0.0.1 — адрес вашего сервера), используя данные для подключения к вашему серверу, или через Инструкцию (перейдите в Личный кабинет — Товары — Виртуальные серверы, выберите нужный сервер в списке — нажмите кнопку Инструкция — найдите раздел Панели управления и в блоке ispmanager нажмите кнопку Перейти).
В ispmanager откройте раздел Учётные записи — FTP-пользователи и нажмите «Создать»:
Панель предложит ввести имя FTP-пользователя, выбрать владельца (пользователя, к сайтам которого вы хотите настроить доступ), задать пароль и домашнюю директорию FTP-пользователя (она настраивается относительно домашней папки пользователя-владельца):
На этом настройка завершена. Осталось проверить подключение через любой FTP-клиент, например, FileZilla. Для этого вам понадобятся следующие данные:
- IP-адрес сервера;
- имя созданного FTP-пользователя;
- заданный при его создании пароль.
Подключаемся:
В случае успешного подключения мы увидим список каталогов в домашней директории пользователя-владельца (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 и Debian | CentOS |
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_user=YES
* Этот параметр запрещает для FTP-пользователей доступ к директориям выше их домашней папки. То есть если у пользователя в качестве домашней папки установлена директория /var/www/user/sites/username, он сможет перемещаться и управлять файлами только в рамках папки username без возможности перейти на уровень выше.
ssl_enable=YES
* Этот параметр отвечает за шифрование FTP-соединения. В том же блоке можно указать пути к вашему сертификату и ключу — если вы не хотите использовать сгенерированные по умолчанию.
После изменения параметров сохраните файл, закройте редактор и перезапустите vsftpd командой:
systemctl restart vsftpd
Чтобы убедиться, что служба корректно запустилась, проверьте её статус:
systemctl status vsftpd
Если проблем нет, вы увидите статус active (running):
Создание FTP-пользователей
Перед тем, как приступить к созданию FTP-пользователей, важно учесть, как именно будет организована файловая структура ваших сайтов — чтобы в процессе правильно создать и настроить домашнюю папку пользователя. В частности, это необходимо для корректной работы параметра chroot_local_user=YES, который был задан на этапе настройки vsftpd.
Например, для примера мы организовали следующую структуру каталогов:
/var /www /sites | Системная директория Директория веб-сервера для размещения сайтов Добавленный каталог для разбиения сайтов по пользователям |
/username | Домашняя директория пользователя username |
/example1.com /example2.com | Сайты пользователя username |
В такой структуре пользователю username доступны только каталоги example1.com/ и example2.com/ — внутри них он может создавать и редактировать файлы и папки. Все каталоги выше принадлежат пользователю root или системным пользователям.
Первым делом необходимо создать домашнюю папку нового пользователя. Если у вас уже создан каталог и к нему просто нужно настроить FTP-доступ, пропустите этот шаг.
Переходим в папку, где будет расположена домашняя директория пользователя:
cd /var/www/sites
Создаём новую папку:
mkdir username
Теперь нам нужно создать нового пользователя, назначив ему в качестве домашней директории созданную папку. Если вам нужно настроить доступ к другому каталогу, просто измените в команде путь /var/www/sites/username на свой.
useradd -d /var/www/sites/username username
Настроим пароль для нового пользователя:
passwd username
Система предложит ввести и подтвердить новый пароль. Для подтверждения ввода нажмите Enter.
Теперь осталось создать папку с владельцем в лице нашего нового пользователя. Переходим в созданный каталог:
cd username
Создаём папку, куда новый пользователь сможет загружать свои файлы:
mkdir example.com
Настроим в качестве её владельца нашего пользователя username:
chown username:username example.com
На этом процесс настройки завершён. Осталось протестировать подключение через любой FTP-клиент, например, FileZilla. Для подключения указываем IP-адрес сервера, имя нашего созданного пользователя и его пароль:
Клиент сообщит, что 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.