Как ограничить доступ локального пользователя Windows только к определенной папке?

Вопрос или проблема

Я настроил SFTP-соединение OpenSSH с помощью документации и WinSCP и хочу, чтобы мой коллега мог загружать файлы на мой компьютер, используя это SFTP-соединение.

  • Я создал нового локального пользователя на своем компьютере, и когда я тестирую соединение, я могу просматривать все папки, корневой каталог и т. д., но не могу получить доступ к другим папкам, кроме той, которую я создал (что хорошо), однако мне нужно ограничить права, чтобы новый пользователь мог только просматривать папку, в которую он должен загрузить файл.
  • Я проверил права доступа через Свойства > Разрешения > Безопасность, чтобы увидеть, какие пользователи/группы имеют доступ, и удалил нового пользователя из группы users.
  • Новый пользователь, похоже, не имеет доступа ни к какой папке, но когда я подключаюсь через [WinSCP] SFTP, я все еще могу видеть все папки; однако, когда я нажимаю на папку, у меня нет доступа к ней, и я получаю ошибку.

Как я могу ограничить нового пользователя только доступом к просмотру одной папки, а также заставить SFTP-соединение открываться в этой папке при подключении?

Ниже должно помочь

> Match User User1 ChrootDirectory E:\user1folder Match Group
> administrators AuthorizedKeysFile
> __PROGRAMDATA__/ssh/administrators_authorized_keys X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp Match User
> Administrator X11Forwarding no AllowTcpForwarding no ForceCommand
> internal-sftp

Ответ или решение

Для ограничения доступа локального пользователя Windows только к одной конкретной папке, особенно если вы планируете использовать SFTP с OpenSSH, необходимо применять сочетание настроек безопасности и специализированных настроек OpenSSH. Рассмотрим теоретические аспекты, примеры настройки и их практическое применение.

Теория

  1. Права доступа в Windows: Операционная система Windows предоставляет гибкие настройки контроля доступа (ACL), которые позволяют определять, какие пользователи могут читать, записывать, изменять или выполнять файлы в определенных каталогах. Важным шагом является тщательная настройка этих параметров, чтобы точно определить доступ пользователя к нужной папке.

  2. Chroot в OpenSSH: OpenSSH поддерживает использование функции chroot, которая позволяет "запереть" пользователя в определенной директории, препятствуя просмотру других частей файловой системы. Эта функция эффективна для ограничения перемещений пользователя в системе.

  3. Пользовательские параметры в OpenSSH: В файле конфигурации OpenSSH sshd_config можно использовать параметры Match для индивидуальной настройки подключения пользователей. Это позволяет применять специфические параметры, такие как ChrootDirectory и ForceCommand, для отдельных пользователей или групп.

Пример

Для ограничения доступа пользователя, предположим, User1, выполните следующие действия:

  1. Создание и настройка папки: Создайте папку, например E:\user1folder, и назначьте ей соответствующие права доступа.

    • Перейдите в E:\user1folder, щелкните правой кнопкой мыши и выберите "Свойства".
    • На вкладке "Безопасность" убедитесь, что добавлен пользователь "User1" с разрешениями на чтение и запись, и удалите или измените доступ для любой другой группы или пользователя, если это необходимо.
  2. Настройка OpenSSH для SFTP: В файле конфигурации OpenSSH sshd_config, который обычно находится в директории C:\ProgramData\ssh\, добавьте или измените следующие строки:

    Match User User1
       ChrootDirectory E:\user1folder
       ForceCommand internal-sftp
       AllowTcpForwarding no
       X11Forwarding no
    • ChrootDirectory: ограничивает доступ пользователя только к указанной директории и ее поддиректориям.
    • ForceCommand: заменяет шелл командой internal-sftp, что делает подключение только по SFTP.
    • AllowTcpForwarding и X11Forwarding: отключает несанкционированное перенаправление портов и X11 перенаправление.

Применение

  1. Применение настроек:

    • Перезапустите службу OpenSSH для применения настроек:
      net stop sshd
      net start sshd
  2. Проверка доступа:

    • Подключитесь к серверу через SFTP от имени пользователя User1, используя, например, программу WinSCP.
    • Убедитесь, что по умолчанию открывается папка E:\user1folder и что видимость и доступы к другим частям файловой системы отсутствуют.
  3. Дополнительные меры безопасности:

    • Убедитесь, что структура папок соответствует требованиям chroot, то есть находятся ли необходимые системные директории и файлы внутри E:\user1folder, если они необходимы для работы пользователя.
    • Рассмотрите возможность создания символьных ссылок (junctions) или использования пермишенов Windows для скрытия или изоляции других частей системы.

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

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

Капча загружается...