PowerScale OneFS:SFTP の構成と chroot のセットアップ
Summary: このドキュメントでは、Secure File Transfer Protocol (SFTP)を介したPowerScaleクラスターへのアクセスを許可する方法について説明します。
Instructions
このドキュメントでは、SFTP経由でPowerScaleクラスターへのアクセスを許可する方法について説明します。このプロセスを開始する際には、いくつかの制限事項と考慮事項に留意する必要があります。
- SFTPアクセスを必要とするユーザー/グループには、
ISI_PRIV_LOGIN_SSHユーザーに関連づけられた権限。 - SSHおよびSFTPアクセスは、システム ゾーン内でのみ機能します。
- すべての ssh 構成オプションが使用できるわけではありません。PowerScaleは、MatchおよびSubsystemステートメントを
isi ssh modifyコマンド セット。
これらの要因を除けば、PowerScaleは他のFreeBSD OpenSSHサーバーと同様に動作します。次のコマンドを使用して、クラスター上のOpenSSHバージョンを確認します。 ssh -Vの詳細を確認してください。
役割と権限の設定に関するガイダンスについては、「管理の役割と権限」セクションにあるご使用のリリースのCLIまたはWeb管理ガイドを参照してください。
ユーザー/グループが 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 パス内のすべてのディレクトリが root:wheel drwxr-xr-x 詳細については、OpenSSH メンテナの マニュアルページを参照してください。
以下は、実装するための一般的な Match ステートメントです ChrootDirectory グループのマッチング中。最初の 3 行は、 ChrootDirectory サポート ファイルなし。最後の行は、ユーザーが OpenSSH 内の X11Forwarding 機能を利用する機能を制限します。
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp
X11Forwarding no
以下は、一致するユーザーが /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
一致文字列に関する考慮事項。
一致文字列を設定する場合、クラスターが認識している任意のユーザーまたはグループ識別子を「一致ユーザー」または「一致グループ」文字列で使用できます。したがって、Active Directoryグループの参照は、RFC2307を使用して実行できます。 domain\userの詳細を確認してください。
ユーザーが正しいパスにルーティングしていない場合、またはユーザーの一致文字列の設定にルーティングしていない場合は、次のコマンドを使用して、ユーザーがクラスターで検索できることを確認します isi auth mapping token <username> 一致文字列からユーザー名を取得します。
一致グループ文字列内の正しいパスまたは設定にユーザーがルーティングしていない場合は、次のコマンドを使用して、ユーザーが問題のグループのメンバーであることを確認します isi auth mapping token <username> | grep <groupname>.
ユーザー名を入力し、一致文字列からグループ名を取得します。
以下は、一致グループ ステートメントの誤りにより、パスに正しくルーティングされていないユーザーの例です。ユーザー 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 8.2より前のOneFSバージョンでは機能しますが、この方法で行った構成調整は、アプリケーション プログラミング インターフェイス(API)をサポートするOneFSバージョンにアップグレードすると削除されます。SFTP アクセスを使用するユーザーには、引き続き ISI_PRIV_LOGIN_SSH 特権。