Rocky Linux 9 SFTP only + Chroot

특정 사용자에게 셸 접근을 제한하고 SFTP만 허용하며, Chroot를 활성화하여 특정 디렉터리 하위만 접근할 수 있도록 설정할 수 있습니다.

특정 유저 SFTP 허가 설정

예시로서 [/home]을 Chroot 디렉터리로 설정하기 위해 SFTP 전용 그룹을 작성합니다. 그리고 sshd_config 파일을 열어 138번째 줄에 아래 붉은색 내용을 추가합니다.

[root@samplehost ~]# groupadd sftp_users
[root@samplehost ~]# vi /etc/ssh/sshd_config

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

가장 마지막 줄에는 아래 내용을 추가합니다.

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home
  ForceCommand internal-sftp

설정이 끝나면 재기동 해줍니다. 그리고 예시로서 유저 testuser02에게 SFTP만을 허가해줍니다.

[root@samplehost ~]# systemctl restart sshd
[root@samplehost ~]# usermod -aG sftp_users rocky

동작 확인

해당 유저로 SSH나 SFTP로 접속해 동작을 확인해봅니다. SSH로 접속해보면 접속이 거부되고, SFTP로 접속해야 성공적으로 연결되는 것을 확인할 수 있습니다.

[root@localhost-live ~]# ssh dlp.srv.world
Enter passphrase for key '/home/rocky/.ssh/id_rsa':
This service allows sftp connections only.
Connection to dlp.srv.world closed.

[root@localhost-live ~]# sftp dlp.srv.world
Enter passphrase for key '/home/rocky/.ssh/id_rsa':
Connected to dlp.srv.world.
sftp> ls -l
drwx------    3 rocky    rocky         111 Jul 16 06:06 rocky
sftp> pwd
Remote working directory: /
sftp> exit

댓글

제목과 URL을 복사했습니다