本文へ移動
TURNKEYGNU / LINUX
アプリドキュメントブログスクリーンショットGitHubTurnKey Hub
文日本語
EnglishEspañol中文日本語PortuguêsDeutsch
ふりがな/ジェイルドSFTPユーザーを作成する方法(chroot jail)

ドキュメント

ジェイルドSFTPユーザーを作成する方法(chroot jail)

AWSマーケットプレイスのユーザーにとって重要な注意:

Marketplaceサーバーでrootアカウントを有効にしていない場合は、sudoで以下のコマンドを実行する必要があります。 終了時に、sudo シェルと終了時に行う最も簡単な方法は、次のコマンドで開始します。

sudo su

終了するとき:

exit

ここは...

すべてのTurnKey アプライアンスは、SFTP事前構成と有効になっています。ただし、デフォルトでは、すべてのユーザーは、すべてのファイルシステムへのアクセスを読み取ります。 ファイルの読み込みを気にしない限り、デフォルトでは新しい非特権ユーザがホームディレクトリ以外の場所でアクセスを記述していないため、問題ではないかもしれません。 (通常、/home/USERNAME), と、明示的に書き込みアクセスを付与する場所。SFTP が SSH によって提供されるため、デフォルトでは SSH のシェルにログアウトすることもできます。 できることは、また制限されるが、これはまだ望ましくない。

そのため、SFTP ユーザが SFTP 経由でログインするだけを望むシナリオで、SSH ではなく、独自のディレクトリにロックされた状態をしたい場合 (つまり、SSH ではなく)。 "chroot jail" として知られ、SSH/SFTP を構成して、その操作を行えます。

以下に、コマンドを要求しました。スクリプト形式なので、コマンドラインにコピー/ペーストすることができます。 注意して、コマンドの idempotent を作るようにしました(つまり、) 何度も走っても、あまりはっきりとテストしていない。だから、その部分を再走すれば、予期しない結果が得られるかもしれない。 ユーザ関連のコマンドは、新しいユーザ(NEW_USERの値を変更)で再実行できますが、sftp_users グループとSSH configを追加すると、一度だけ実行する必要があります。 SSH 設定の設定を微調整する必要がある場合は、手動で設定ファイルを編集することをお勧めします。

一度実行

必要なグループを作成します。

groupadd sftp_users

新規ユーザー1回実行

新規ユーザーを追加 ここに「newuser」という名前をつけていますが、好きな名前は何でも使えますが、スペースや特殊な文字を使わずに、文字を下げるだけを強くお勧めしています。 追加ユーザーを追加したい場合は、「NEW_USER」の値を(下の最初の行で)変更します。

NEW_USER="newuser"
useradd -G sftp_users -s /sbin/nologin $NEW_USER
passwd $NEW_USER

パスワードを設定して新規ユーザーを確認したら、新規ユーザーアカウントの作成を完了します。

mkdir -p /home/$NEW_USER/files
chown root:root /home/$NEW_USER
chown $NEW_USER:$NEW_USER /home/$NEW_USER/files
chmod 700 /home/$NEW_USER/files
usermod -d /files $NEW_USER

一度だけ走る!

次に、SSH/SFTP を再構成する必要があります。SSH config ファイルを編集する必要があることを確認するには(/etc/ssh/sshd_config). 簡単にするには、スクリプトフォームに提供しました。 注意して、これだけは行わなければならない 一度に.:

CONF=/etc/ssh/sshd_config
SEARCH="Subsystem sftp \/usr\/lib\/openssh\/sftp-server"
NEW_LINE="Subsystem sftp internal-sftp"

sed -i "/^$SEARCH/ s|^|#|" $CONF
sed -i "/$NEW_LINE/d" $CONF
sed -i "/$SEARCH/a\\$NEW_LINE" $CONF
if ! grep "Match Group sftp_users" $CONF >/dev/null; then
    cat >> $CONF <<EOF

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home/%u
  ForceCommand internal-sftp
EOF
fi

最終ステップはSSHを再起動します:

service ssh restart

SSH の設定をさらに調整する必要がある場合は、 config ファイルを手動で nano などのテキストエディタを使用して編集してください。 例:

nano /etc/ssh/sshd_config

ユーザーは自動的に自分のchrootedホームにsftpされます(/home/user/files).) 親ディレクトリ(/home/user))にcdを渡すことができますが、アクセスを読めば何も持っていません(そして、これ以上は閲覧できません)。

追加ノート: chrooted SFTP ユーザをもう少し柔軟にできるようにしたい場合 (例えば、scp や rsync を許可)、/sbin/nologin シェルを渡す代わりに、/sbin/nologin シェルをインストールします。 サーシュ (apt-get は rssh をインストール) して、/usr/bin/rssh シェルを 与えます。

TURNKEYGNU / LINUX

ゼロから始めずに、自分のインフラを管理できます。

TurnKey を見る
概要ドキュメントよくある質問ブログGitHub
フリーでオープンソース初期設定から安全すぐに展開可能