SELinux 상태에서 SFTP chroot 적용하기

오늘 어느 고객의 서비스 지원 요청을 받았습니다. SFTP의 chroot 적용에 대한 문의였습니다. 해당 문의를 확인해보니 야간에 요청을 했으나, 시원하게 처리가 되지 않았던 것같습니다. 그래서 서버에 접속해서 설정 확인 및 조치를 취했습니다.

  1. 서버 환경 점검
[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
  1. 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
  1. SELinux 상에서 SFTP chroot 설정된 사용자가 read/write 할 수 있도록 설정
[root@localhost /]# setsebool -P ssh_chroot_rw_homedirs on
  1. SFTP 전용 사용자 그룹에 사용자 추가 및 홈폴더의 소유자, 권한 변경
[root@localhost /]# gpasswd -a ysyukr sftpuser
[root@localhost /]# cd /home
[root@localhost home]# chown root.root ysyukr
[root@localhost home]# chmod 755 ysyukr
  1. 테스트