ВОЙТИ
    opened image

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