🐧 Как создать пользователя SFTP без доступа к оболочке на CentOS / RHEL 8 — Information Security Squad
🐧 Как создать пользователя SFTP без доступа к оболочке на CentOS / RHEL 8
SFTP (SSH File Transfer Protocol) — это безопасный протокол передачи файлов между двумя системами.
Он работает по протоколу SSH и использует один и тот же порт 22.
Это руководство поможет вам создать пользователей с доступом только по SFTP (без доступа ssh) в системах CentOS 8 и RedHat 8.
Пользователь сможет подключиться к серверу только по SFTP и получить доступ к указанному каталогу.
Пользователи не могут SSH на сервер.
Следуйте инструкциям, показанным ниже, чтобы создать учетную запись только для sftp в CentOS 8 и RHEL 8.

Шаг 1 — Создайте аккаунт

Прежде всего, создайте учетную запись пользователя для доступа по sftp.

Для этого руководства мы создадим пользователя с именем sftpuser без доступа к оболочке.

Также установите надежный пароль для пользователя.

sudo adduser --shell /bin/false sftpuser
sudo passwd sftpuser
Changing password for user sftpuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Шаг 2 — Создайте каталог

Теперь создайте структуру каталогов, которая будет доступна пользователю по sftp.

Мы ограничим нового пользователя только этим каталогом.

Таким образом, пользователь не может получить доступ к файлам в других каталогах.

sudo mkdir -p /var/sftp/files
Измените владельца каталога на созданнго пользователя sftp.
Назначим такие права, чтобы sftpuser смог читать и писать в этом каталоге.
sudo chown sftpuser:sftpuser /var/sftp/files
Вы должны установить владельца и  группу /var/sftp на root.
Пользователь root имеет права на чтение / запись.
Члены группы и другие учетные записи имеют только права на чтение и выполнение.
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp

Шаг 3 — Настройте SSH для SFTP

Как мы знаем, SFTP работает по протоколу SSH, поэтому нам нужно настроить это в файле конфигурации.

Отредактируйте файл конфигурации SSH в текстовом редакторе.

sudo vim /etc/ssh/sshd_config
И добавьте следующие настройки в конец файла.

Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no

Сохраните конфигурацию и перезапустите службу SSH, чтобы применить изменения.

sudo systemctl restart sshd.service

Все готово, ваша система готова принять только sftp-соединение для созданной учетной записи.

Давайте проверим соединение sftp, а также убедимся, что пользователь не авторизован к SSH.

Шаг 4 — Проверьте соединение SFTP

Я использую FileZilla для подключения по SFTP из моих систем Windows.

Пользователи Linux могут также использовать Filezilla для подключения.

Для сервера Linux пользователи могут использовать утилиту командной строки sftp для подключения к удаленному экземпляру sftp.
sftp sftpuser@sftp.itsecforu.ru
Connecting to sftp.itsecforu.ru...
sftpuser@sftp.itsecforu.ru's password:
sftp>
Вы также можете использовать Midnight Commander.
У нас есть отличное руководство как это сделать:
Эта учетная запись настроена только для SFTP-соединения.
Поэтому, если какой-либо пользователь попытался подключиться через SSH, он будет отключен сразу после успешной аутентификации.
Пользователь получит сообщение:
ssh sftpuser@sftp.itsecforu.ru
sftpuser@sftp.itsecforu.ru's password:
This service allows sftp connections only.
Connection to sftp.tecadmin.net closed.

Приведенное выше сообщение (This service allows sftp connections only) показывает, что у пользователя есть только sftp-доступ.

Пользователи не могут подключиться к серверу через SSH.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40