오늘 어느 고객의 서비스 지원 요청을 받았습니다. SFTP의 chroot 적용에 대한 문의였습니다. 해당 문의를 확인해보니 야간에 요청을 했으나, 시원하게 처리가 되지 않았던 것같습니다. 그래서 서버에 접속해서 설정 확인 및 조치를 취했습니다.
- 서버 환경 점검
[root@localhost /]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
- SFTP 전용 사용자 그룹 생성 및 SFTP 설정
[root@localhost /]# groupadd sftpuser
[root@localhost /]# vi /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftpuser
ForceCommand internal-sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
- SELinux 상에서 SFTP chroot 설정된 사용자가 read/write 할 수 있도록 설정
[root@localhost /]# setsebool -P ssh_chroot_rw_homedirs on
- SFTP 전용 사용자 그룹에 사용자 추가 및 홈폴더의 소유자, 권한 변경
[root@localhost /]# gpasswd -a ysyukr sftpuser
[root@localhost /]# cd /home
[root@localhost home]# chown root.root ysyukr
[root@localhost home]# chmod 755 ysyukr
- 테스트