GNU/Linux >> Linux の 問題 >  >> Linux

CentOS / RHEL :特定のグループのみに SFTP を Chroot Jail に設定する方法

ユーザーごとに ChrootDirectory 機能を許可するには、条件付きで実行される sshd 構成を使用します (「Match 」キーワード) sshd_config ファイル。特定のグループに ChrootDirectory を設定すると、そのグループのユーザーがホーム ディレクトリから出られなくなり、他のユーザーが影響を受けることはありません。

1. chroot されるユーザーのグループを作成します。

# groupadd sftp_group

2. SFTP グループのユーザーを作成し、パスワードを設定します。

# useradd sftp_test1
# passwd sftp_test1
Changing password for user sftp_test1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

3. sftp_test1 ユーザーを sftp_group グループに追加します。ユーザー シェルを /bin/false にします ユーザーは sftp のみを許可され、ssh/scp は許可されないためです。

# usermod -g sftp_group -s /bin/false sftp_test1
# id sftp_test1
uid=1000(sftp_test1) gid=1001(sftp_test1) groups=1001(sftp_test1),1000(sftp_group)
注意 :このグループに属していないユーザーは、引き続き ssh 経由でホストにログインでき、それ以外の場合は通常どおり openssh と対話できます。

4. sshd 構成を編集して、sftp を構成します。 /usr/libexec/openssh/sftp-server を削除します 行を削除し、以下に示すように internal-sftp 行を追加します:
行を削除またはハッシュします:

# vi /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server

以下の行を追加:

# vi /etc/ssh/sshd_config
Subsystem sftp internal-sftp

5. 以下のコンテンツをファイル /etc/ssh/sshd_config の末尾に追加します。 sftp chroot 環境を追加するには:

# vi /etc/ssh/sshd_config
Match Group sftp_group
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home
ForceCommand internal-sftp

5. sshd サービスを再起動して、sftp 構成を有効にします。

# systemctl restart sshd

確認

1. 次に、他のクライアントから SSH および SFTP サービスを使用してシステムにアクセスしてみます。
a. SSH

# ssh [email protected]
The authenticity of host 'x.x.x.x (x.x.x.x)' can't be established.
ECDSA key fingerprint is 07:1c:34:30:f4:81:e1:e0:b3:13:30:b8:57:d9:d9:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known hosts.
[email protected]'s password:
Could not chdir to home directory /home/sftp_test1: No such file or directory
This service allows sftp connections only.
Connection to x.x.x.x closed.

上記のように、接続が閉じられ、SSH へのログインが許可されていません。

b. SFTP

# sftp [email protected]
[email protected]'s password:
Connected to x.x.x.x.
sftp> pwd
Remote working directory: /
sftp> ls
sftp_test1
sftp> cd /home
Couldn't canonicalize: No such file or directory
sftp>

上記の結果、sftp_test1 ユーザーは SFTP 経由でログインし、chroot 環境のためにディレクトリを変更できません

3. 「WinSCP」または「Filezilla」ソフトウェアを使用して、Windows クライアントから SFTP サーバー機能をテストすることもできます。


Linux
  1. CentOS / RHEL 7 :特定のインターフェイスでのみ IPv6 を無効にする方法

  2. CentOS / RHEL 7 :特定のカーネルだけにカーネル パラメータを追加する方法

  3. CentOS / RHEL 7 :ユーザーのグループに対して telnet を有効にする方法

  1. CentOS/RHEL で chroot を使用せずに SFTP ロギングを有効にする方法

  2. CentOS/RHEL で SSH と SFTP 用に個別のポートを構成する方法

  3. CentOS/RHEL 7 で udev サービスの children-max を設定する方法

  1. CentOS/RHEL 7 で SYSTEMD プロセスの CPU アフィニティを設定する方法

  2. CentOS/RHEL 7 で systemd サービスの環境変数を設定する方法

  3. CentOS / RHEL 7 :デフォルト ターゲット (デフォルト ランレベル) の設定方法