opened image

Как создать и подключиться по sFTP дополнительному пользователю

Создание дополнительного пользователя для sFTP может быть полезным, потому что это повышает безопасность, позволяя каждому пользователю иметь отдельные учетные данные и ограничивая его доступ только к определенным директориям на сервере. Так же это позволяет разграничить доступ к серверу между различными пользователями, предоставляя им только необходимые права доступа.
Ограничивает права доступа пользователей к определенным директориям на сервере и не предоставляет им полный доступ к файловой системе сервера.

В целом, создание отдельного пользователя для sFTP помогает повысить безопасность, улучшить управление доступом на сервере и облегчить аудит доступа к серверу.

Для создания пользователя "admin" с ограниченным доступом к серверу по протоколу sFTP и предоставлением ему доступа только к своей директории можно выполнить следующие шаги:

Создание пользователя "admin"

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

 

adduser admin


При выполнении команды нужно будет ввести пароль для пользователя "admin", а также дополнительную информацию. По умолчанию, при создании пользователя "admin" ему будет назначена домашняя директория "/home/admin".

Создание директории для пользователя "admin"

После создания пользователя "admin" необходимо создать директорию, если это необходимо, в которой он будет иметь доступ для работы. Для этого выполните следующие команды:

 

mkdir /sftp
mkdir /sftp/admin


Первая команда создаст каталог "/sftp", который будет использоваться в качестве корневой директории для sFTP. Вторая команда создаст директорию "/sftp/admin", которая будет доступна только пользователю "admin".

Либо это можно сделать одной командой с ключом -p:

 

mkdir -p /sftp/admin



Настройка sFTP

Чтобы ограничить доступ пользователя "admin" только к его директории "/sftp/admin", необходимо внести изменения в файл конфигурации SSH (/etc/ssh/sshd_config). Откройте файл в текстовом редакторе и добавьте следующие строки в конец файла:

 

 

 

 

 

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

 

 



Где:

Match User admin - указывает, что указанные ниже параметры будут применяться только для пользователя "admin".
ForceCommand internal-sftp - указывает, что при подключении по sFTP пользователь "admin" будет ограничен доступом только к встроенному sFTP-серверу, а все другие команды будут заблокированы.
PasswordAuthentication yes - разрешает аутентификацию по паролю.
ChrootDirectory /sftp/admin - ограничивает доступ пользователя только к указанному каталогу "/" и его подкаталогам.
PermitTunnel no - запрещает создание туннелей.
AllowAgentForwarding no - запрещает использование агента авторизации.
AllowTcpForwarding no - запрещает перенаправление TCP-трафика.
X11Forwarding no - запрещает перенаправление графических приложений.


Эти настройки указывают, что при подключении по sFTP пользователь "admin" будет ограничен доступом только к директории "/sftp/admin". Пользователь не сможет перейти на уровень выше этой директории или получить доступ к другим директориям на сервере.

Перезапуск службы SSH

После внесения изменений в файл конфигурации SSH необходимо перезапустить службу SSH на сервере. Для этого выполните следующую команду:

 

 

 

 

 

systemctl restart sshd

 



Подключение к серверу по sFTP

Теперь пользователь "admin" может подключиться к серверу по протоколу sFTP, используя свой логин и пароль. Для этого можно использовать любой FTP-клиент, который поддерживает протокол SFTP (например, FileZilla, WinSCP или Cyberduck). При подключении пользователь должен указать IP-адрес сервер.




Как видим, создать и добавить дополнительного пользователя для подключения по sFTP несложно. А это, в свою очередь, упрощает аудит доступа к серверу и установление ответственности в случае возникновения проблем.