SFTP (SSH File Transfer Protocol) — SSH-протокол для передачи файлов. В отличии от протокола FTP, он не передаёт данные в сеть в открытом виде (включая логин и пароль). SFTP работает поверх протокола SSH, который обеспечивает защиту передаваемых данных.
- Подключение по FTP к серверу с панелью ISPmanager
- Подключение по FTP к серверу на BitrixVM
- Подключение по FTP к серверу без панели управления
Подключение по FTP к серверу с панелью ISPmanager
Чтобы подключение по FTP стало доступным, вначале требуется создать FTP-пользователя. Для этого:
- Авторизуйтесь в панели управления ISPmanager. Ссылка и данные для входа были отправлены при активации сервера.
- Откройте раздел
Учётные записи
—FTP-пользователи
и нажмите «Создать
»:
Панель предложит ввести имя FTP-пользователя, выбрать владельца (пользователя, к сайтам которого вы хотите настроить доступ), задать пароль и домашнюю директорию FTP-пользователя (она настраивается относительно домашней папки пользователя-владельца):
На этом настройка завершена. Осталось проверить подключение через любой FTP-клиент, например, FileZilla. Для этого вам понадобятся следующие данные:
- IP-адрес сервера;
- имя созданного FTP-пользователя;
- заданный при его создании пароль.
Подключаемся. В случае успешного подключения мы увидим список каталогов в домашней директории имя пользователя - ftp-adminvps-root
. Все сайты размещены в подкаталоге www
:
Подключение по FTP к серверу на BitrixVM
По умолчанию BitrixVM не позволяет подключаться к серверу по FTP. В статье мы рассмотрим настройку FTP с помощью ProFTPD.
- Необходимо подключиться к серверу по ssh.
- Установите ProFTPD:
yum install proftpd
3. Добавьте его в автозапуск:
chkconfig proftpd on
4. Запустите службу
service proftpd start
Теперь создадим пользователя для подключения к серверу.
5. Выполните команду ниже, чтобы узнать id группы и id пользователя для основного пользователя сервера:
id bitrix
6. Вы получите подобный ответ:
uid=600(bitrix) gid=600(bitrix) groups=600(bitrix),10(wheel)
7. Добавляем пользователя с найденным id. После ключа -d укажите путь к домашней директории нового пользователя - его доступ к серверу будет ограничен данной директорией.
adduser userlogin -g600 -o -u600 -d /home/bitrix/www/
8. Задайте пароль для нового пользователя:
passwd userlogin
Далее открываем 21 порт, чтобы сервер был доступен для подключений, выполняем команду:
vim /etc/sysconfig/iptables
Под строкой OUTPUT ACCEPT внесите строки:
-A INPUT -p tcp -m tcp --sport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 20,21,50000:50400 -j ACCEPT
Если вам необходима возможность подключаться к серверу в пассивном режиме, то откройте командой файл:
vim /etc/sysconfig/iptables-config
И добавьте ip_conntrack_ftp в IPTABLES_MODULES=""
IPTABLES_MODULES="ip_conntrack_ftp"
Готово. Перезагрузите сервер и попробуйте подключиться к серверу по FTP для проверки.
Подключение по FTP к серверу без панели управления
В этом случае есть два варианта действий. Оба способа позволяют обеспечить возможность FTP-подключения к серверу, в том числе для отдельных пользователей к отдельным папкам:
- Настройка подключения через sFTP
- Установка и настройка 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
доступен для установки из штатных репозиториев во многих операционных системах семейства Linux.
Для начала установки необходимо подключиться к серверу по SSH под пользователем root
. Способ установки может отличаться в зависимости от дистрибутива операционной системы:
Ubuntu и Debian
В начале следует обновить информацию о репозиториях, обновить компоненты системы, перезагрузиться если требуется:
sudo apt-get update
sudo apt-get upgrade
sudo reboot
Теперь устанавливаем vsftpd:
sudo apt-get install vsftpd
Centos
Обновляем компоненты:
yum update
reboot
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)
:
Перед тем, как приступить к созданию FTP-пользователей, важно учесть, как именно будет организована файловая структура ваших сайтов — чтобы в процессе правильно создать и настроить домашнюю папку пользователя. В частности, это необходимо для корректной работы параметра chroot_local_users=YES
, который был задан на этапе настройки vsftpd
.
К примеру структура каталогов:
В такой структуре пользователю username доступны только каталоги yoursite1.com/
и yoursite2.com/
— внутри них он может создавать и редактировать файлы и папки. Все каталоги выше принадлежат пользователю root
или системным пользователям.
- Первым делом необходимо создать домашнюю папку нового пользователя. Если у вас уже создан каталог и к нему просто нужно настроить FTP-доступ, пропустите этот шаг. Переходим в папку, где будет расположена домашняя директория пользователя:
cd /var/www/sites
Создаём новую папку:
- Теперь нам нужно создать нового пользователя, назначив ему в качестве домашней директории созданную папку. Если вам нужно настроить доступ к другому каталогу, просто измените в команде путь
/var/www/sites/username
на свой.
Настроим пароль для нового пользователя:useradd -d /var/www/sites/username username
Система предложит ввести и подтвердить новый пароль. Для подтверждения ввода нажмите Enter.passwd username
- Теперь осталось создать папку с владельцем в лице нашего нового пользователя. Переходим в созданный каталог:
Создаём папку, куда новый пользователь сможет загружать свои файлы:cd username
mkdir example.com
- Настроим в качестве её владельца нашего пользователя
username
:chown username:username yoursite.com
На этом процесс настройки завершён. Осталось протестировать подключение через любой FTP-клиент, например, FileZilla. Для подключения указываем IP-адрес сервера, имя нашего созданного пользователя и его пароль.
Клиент сообщит, что FTP-сервер имеет самоподписанный сертификат, и запросит подтверждение на подключение и сохранение этого сертификата как доверенного.
Если вы не активировали опцию ssl_enable=YES
на этапе настройки, тогда клиент сообщит, что подключение небезопасно — данные не будут шифроваться.
В случае успешного подключения у вас откроется домашняя папка пользователя с каталогом под файлы.
Обратите внимание, что пользователь может работать только внутри директории yoursite.com/
Загрузка файлов или добавление папок в самой домашней директории (вне каталога yorsite.com/
) будут недоступны.