특정 사용자에게 셸 접근을 제한하고 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
댓글