Создание дополнительного пользователя для 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 несложно. А это, в свою очередь, упрощает аудит доступа к серверу и установление ответственности в случае возникновения проблем.