Fedora 41
Sponsored Link

OpenSSH : SFTP only + Chroot2024/10/31

 
特定のユーザーに対して、シェルへの制限をかけて SFTP のみを許可し、且つ、Chroot を有効にして特定のディレクトリ配下のみアクセスできるよう設定します。
[1] 例として [/home] を Chroot ディレクトリとして設定します。
# SFTP 専用グループ作成

[root@dlp ~]#
groupadd sftp_users

# 例として, ユーザー [fedora] には SFTP のみを許可する

[root@dlp ~]#
usermod -aG sftp_users fedora

[root@dlp ~]#
vi /etc/ssh/sshd_config
# 123行目 : コメントにしてその下に追記

#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

# 最終行に追記

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home
  ForceCommand internal-sftp
[root@dlp ~]#
systemctl restart sshd

[2] 対象のユーザーで SSH や SFTP でアクセスして動作確認しておきます。
[fedora@node01 ~]$
ssh dlp.srv.world

Enter passphrase for key '/home/fedora/.ssh/id_ed25519':
This service allows sftp connections only.
Connection to dlp.srv.world closed.   # 設定通り拒否された

[fedora@node01 ~]$
sftp dlp.srv.world

Enter passphrase for key '/home/fedora/.ssh/id_ed25519':
Connected to dlp.srv.world.
sftp> ls -l
drwx------    ? 1000     1000          144 Oct 31 11:16 fedora
drwx------    ? 1001     1002           83 Oct 31 10:24 redhat

sftp> pwd
Remote working directory: /
sftp> exit
関連コンテンツ