Добавить в корзинуПозвонить
Найти в Дзене
Merion Academy

Руководство по установке SFTP сервера на Linux

Привет, друг! Мы подготовили удобную инструкцию по установке и настройке SFTP-сервера Linux.
Руководство по установке SFTP сервера на Linux
Что такое SFTP?
SFTP - это безопасный протокол передачи файлов - «Secure SHell» File Transfer Protocol. То есть это версия FTP, которая для безопасности поверх использует SSH. FTP делает то же самое, но без шифрования, поэтому использовать SFTP
Оглавление

Привет, друг! Мы подготовили удобную инструкцию по установке и настройке SFTP-сервера Linux.

 Руководство по установке SFTP сервера на Linux
Руководство по установке SFTP сервера на Linux

Что такое SFTP?

SFTP - это безопасный протокол передачи файлов - «Secure SHell» File Transfer Protocol. То есть это версия FTP, которая для безопасности поверх использует SSH. FTP делает то же самое, но без шифрования, поэтому использовать SFTP предпочтительнее.

Установка SFTP-сервера на Linux

Чтобы выполнить эти шаги, вам нужно иметь права sudo. SFTP прост в установке, но сначала необходимо установить OpenSSH со стороны сервера и SSH-пакет со стороны клиента.

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

sudo apt install openssh-server [Ubuntu/Debian]
sudo yum –y install openssh-server openssh-clients [CentOS/RHEL]

Вам также понадобится SSH на компьютере, с которого вы хотите получать доступ к серверу SFTP.

sudo apt install ssh [Ubuntu/Debian]

Теперь все готово для настройки SFTP.

Этап 1: Создание групп, пользователей, каталогов

Для безопасного использования SFTP, лучше всего создать группы и пользователей, которые будут использовать только эту службу.

Создадим группу с названием sftpg, при помощи комыды groupadd:

sudo groupadd sftpg

Далее создадим пользователя seenisftp, и добавим его в группу.

sudo useradd -g sftpg seenisftp
sudo passwd seenisftp

В команде useradd параметр -g указывает группе, какого пользователя нужно добавить.

Предположим, что вы хотите использовать каталог /data/ в качестве корневого для sftp, а /data/USERNAME - для каждого пользователя. Поэтому, когда пользователи входят через sftp, они должны будут оказаться в каталоге /data/USERNAME. Также создадим ограничение при котором пользователи смогут читать файлы из этого каталога, но загружать их смогут только в каталог uploads.

Cоздадим каталоги и изменим их доступ:

sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/upload

Важно: убедитесь, что владелец /data/USERNAME и есть root, это обязательно для изменения корневого каталога в SFTP

Этап 2: Настройка sshd_config

Далее нужно настроить сервер так, чтобы когда пользователь, из группы sftpg, входил в систему, он попадал в sftp вместо обычной оболочки, в которую попадает через ssh. Добавьте следующий фрагмент кода в файл /etc/ssh/sshd_config:

Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp

ChrootDirectory позволяет создать необходимый каталог в качестве корневого узла (/ каталог) в дереве каталогов. Вошедший в систему пользователь не сможет увидеть ничего выше этого каталога и это не даст ему получить доступ к файлам других пользователей. %u - это escape код для заполнения его текущим именем пользователяm, во время входа в систему.

Этап 3: Перезагрузите службу

Чтобы выполнить внесенные в sshd_config изменения, перезапустите службу:

sudo systemctl restart sshd

Доступ к SFTP через командную строку Linux

Заходите в SFTP также как в SSH:

sftp seenisftp@merionet.ru

Примеры команд SFTP

Синтаксис команд SFTP:

COMMAND [SOURCE] [DESTINATION]

Параметрами могут быть либо локальные, либо удаленные системные пути.

  • GET - загрузка содержимого с удаленного сервера в локальную систему. GET poster.img ~/Pictures
  • PUT - загрузка содержимого из локальной системы в удалённую. PUT ~/Pictures/picture2.jpg uploads/
  • RM – предназначен для удаления файлов в удалённой системе. RM uploads/picture3.jpg