Вопрос или проблема
Я настроил 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. Рассмотрим теоретические аспекты, примеры настройки и их практическое применение.
Теория
-
Права доступа в Windows: Операционная система Windows предоставляет гибкие настройки контроля доступа (ACL), которые позволяют определять, какие пользователи могут читать, записывать, изменять или выполнять файлы в определенных каталогах. Важным шагом является тщательная настройка этих параметров, чтобы точно определить доступ пользователя к нужной папке.
-
Chroot в OpenSSH: OpenSSH поддерживает использование функции chroot, которая позволяет "запереть" пользователя в определенной директории, препятствуя просмотру других частей файловой системы. Эта функция эффективна для ограничения перемещений пользователя в системе.
-
Пользовательские параметры в OpenSSH: В файле конфигурации OpenSSH
sshd_config
можно использовать параметрыMatch
для индивидуальной настройки подключения пользователей. Это позволяет применять специфические параметры, такие как ChrootDirectory и ForceCommand, для отдельных пользователей или групп.
Пример
Для ограничения доступа пользователя, предположим, User1, выполните следующие действия:
-
Создание и настройка папки: Создайте папку, например
E:\user1folder
, и назначьте ей соответствующие права доступа.- Перейдите в
E:\user1folder
, щелкните правой кнопкой мыши и выберите "Свойства". - На вкладке "Безопасность" убедитесь, что добавлен пользователь "User1" с разрешениями на чтение и запись, и удалите или измените доступ для любой другой группы или пользователя, если это необходимо.
- Перейдите в
-
Настройка 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 перенаправление.
Применение
-
Применение настроек:
- Перезапустите службу OpenSSH для применения настроек:
net stop sshd net start sshd
- Перезапустите службу OpenSSH для применения настроек:
-
Проверка доступа:
- Подключитесь к серверу через SFTP от имени пользователя User1, используя, например, программу WinSCP.
- Убедитесь, что по умолчанию открывается папка
E:\user1folder
и что видимость и доступы к другим частям файловой системы отсутствуют.
-
Дополнительные меры безопасности:
- Убедитесь, что структура папок соответствует требованиям chroot, то есть находятся ли необходимые системные директории и файлы внутри
E:\user1folder
, если они необходимы для работы пользователя. - Рассмотрите возможность создания символьных ссылок (junctions) или использования пермишенов Windows для скрытия или изоляции других частей системы.
- Убедитесь, что структура папок соответствует требованиям chroot, то есть находятся ли необходимые системные директории и файлы внутри
Следуя данным шагам и рекомендациям, вы сможете ограничить доступ локального пользователя Windows только к указанной директории, обеспечив безопасность системы и соответствие корпоративным политикам доступа.