PowerScale OneFS. Настройка SFTP и настройка chroot
Summary: В этом документе описывается, как разрешить доступ к кластеру PowerScale по протоколу безопасной передачи файлов (SFTP).
Instructions
В этом документе описывается, как разрешить доступ к кластеру PowerScale через SFTP. Существуют некоторые ограничения и соображения, которые следует учитывать при запуске этого процесса.
- Пользователи/группы, которым необходим доступ по SFTP, должны иметь
ISI_PRIV_LOGIN_SSHпривилегию, связанную с пользователем. - Доступ по протоколам SSH и SFTP работает только в пределах системной зоны.
- Не все варианты конфигурации ssh доступны; PowerScale поддерживает операторы Match и Subsystem для
isi ssh modifyнабор команд.
Вне этих факторов PowerScale работает так же, как и любой другой сервер FreeBSD OpenSSH. Проверьте версию OpenSSH в кластере с помощью команды ssh -V.
Инструкции по настройке ролей и привилегий см. в CLI или руководствах по веб-администрированию для вашего выпуска в разделе «Административные роли и привилегии».
Проверка наличия у пользователя или группы ISI_PRIV_LOGIN_SSH
Убедитесь, что пользователь, о котором идет речь, ISI_PRIV_LOGIN_SSH. Ниже приведен пример с пользователем-администратором по умолчанию.
p930-1# isi auth mapping token admin | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
Если выходные данные отсутствуют, пользователю должна быть назначена роль, которая включает в себя эту привилегию. Дополнительные сведения о том, как это сделать, можно найти в руководствах по администрированию для соответствующего выпуска в разделе «Административные роли и привилегии».
Базовый доступ по SFTP для локальных пользователей
После проверки правильности прав доступа пользователи должны иметь доступ по протоколу SFTP к частям файловой системы на основе токена сопоставления пользователей.
p930-1# sftp admin@localhost
(admin@localhost) Password:
Connected to localhost.
sftp> dir
sftp> cd ..
sftp> dir
admin ftp
Базовый доступ к Chroot SFTP
Чтобы ограничить пользователя определенным подмножеством файловой системы, используйте команду OpenSSH ChrootDirectory в операторе Match. В результате путь входа будет отображаться как / и делает так, чтобы они не могли покинуть это подмножество файловой системы. ChrootDirectory имеет строгие требования к разрешениям каталога на всем пути к ChrootDirectory что каждый каталог в пути имеет разрешения Posix root:wheel drwxr-xr-x Для получения более подробной информации обратитесь к man-странице сопровождающих OpenSSH.
Вот общий оператор Match для реализации ChrootDirectory при сопоставлении группы. Первые три строки необходимы для ChrootDirectory без вспомогательных файлов. Последняя строка ограничивает возможности пользователя по использованию функций X11Forwarding в OpenSSH.
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp
X11Forwarding no
Ниже приведен простой пример подготовки пути для chroot, когда любые совпадающие пользователи могут записывать в файл /ifs/sftp/home . root:wheel владеет каталогами /ifs и /ifs/sftp, с разрешениями, установленными на 755 для ChrootDirectory А /ifs/sftp/home Имеет разрешения 777, что позволяет пользователю получать доступ для записи.
p930-1# isi auth settings acls modify --calcmode-group=group_only --calcmode-owner=owner_only
p930-1# mkdir -p /ifs/sftp/home
p930-1# chmod 755 /ifs/
p930-1# chmod 755 /ifs/sftp
p930-1# chmod 777 /ifs/sftp/home
p930-1# isi ssh settings modify --match="Match Group admin
dquote> ChrootDirectory /ifs/sftp
dquote> ForceCommand internal-sftp"
p930-1# sftp admin@localhost
(admin@localhost) Password:
Connected to localhost.
sftp> ls
home
sftp> pwd
Remote working directory: /
Настройка нескольких строк соответствия
Проще управлять несколькими совпадениями в файле, а затем передавать их в наш isi ssh команды. Использование этого процесса позволяет гарантировать, что sshd Проверяет файл и применяет изменение, только если оно действительно.
Ниже приведены примеры успеха и неудачи.
p930-1# cat /ifs/sshMatches
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp
X11Forwarding no
Match All
X11Forwarding no
p930-1# sshd -t -f /ifs/sshMatches && isi ssh settings modify --match="$(cat /ifs/sshMatches)"
p930-1# sshd -t -f /ifs/sshMatchBad && isi ssh settings modify --match="$(cat /ifs/sshMatchBad)"
Missing Match criteria for Allk
/ifs/sshMatchBad line 6: Bad Match condition
Рекомендации по сопоставлению строк.
При настройке строк соответствия в строке «Match User» или «Match Group» можно использовать любой идентификатор пользователя или группы, о котором известно кластеру. Таким образом, ссылки на группы Active Directory можно создавать с помощью RFC2307 domain\user.
Если пользователь не направляется по неверному пути или с параметрами в строке «Сопоставить пользователя», убедитесь, что пользователя можно найти в кластере с помощью команды isi auth mapping token <username> взятие имени пользователя из вашей Match String.
Если пользователь не направляется по неверному пути или параметрам в строке «Сопоставить группу», убедитесь, что он является членом соответствующей группы с помощью команды isi auth mapping token <username> | grep <groupname>.
Укажите имя пользователя и возьмите имя группы из строки соответствия.
Ниже приведен пример пользователя, который неправильно прокладывает маршрут к пути из-за ошибки в инструкции «Match Group». Пользователь stateroot работает неправильно, пока пользователь prodroot Чтобы исправить это, исправьте ошибку в имени группы, используемой в операторе Match Group.
p930-1# isi auth mapping token stageroot | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
p930-1# isi auth mapping token prodroot | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
p930-1# cat /ifs/sshMatches
Match Group Stage-Root-SFTP
ChrootDirectory /ifs/home/Stage-Root
X11Forwarding no
ForceCommand internal-sftp
Match Group Prod-Root
ChrootDirectory /ifs/home/Prod-Root
X11Forwarding no
ForceCommand internal-sftp
p930-1# isi auth mapping token stageroot | grep "Stage-Root-SFTP"
p930-1# isi auth mapping token prodroot | grep "Prod-Root"
Name: Prod-Root
p930-1# isi auth mapping token stageroot | grep "Stage-Root"
Name: Stage-Root
Устаревшие конфигурации
До OneFS 8.2 эту функцию можно было выполнить, но isi ssh Командования еще не существовало. Вместо использования isi ssh settings modify --match="" Редактирование файла /etc/mcp/templates/sshd_config с теми же строками соответствия, которые будут использоваться в описанных выше шагах. Добавьте их в конец /etc/mcp/templates/sshd_config.
Приведенные инструкции должны работать в версиях OneFS до OneFS 8.2, но любые изменения конфигурации, выполненные таким образом, будут отменены после модернизации до версии OneFS с поддержкой интерфейса прикладного программирования (API). Пользователям, использующим доступ по протоколу SFTP, по-прежнему требуется ISI_PRIV_LOGIN_SSH Привилегия.