sftp + chroot 설정
-
환경
OS : CentOS Linux release 7.6.1810 (Core)
ssh : OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
-
유저 생성
useradd bob
passwd bob
- 유저설정 변경
[root@localhost home]# useradd bob
[root@localhost home]# passwd bob
[root@localhost home]# vipw
~~~ 수정
bob:x:1002:1002::/home/bob:/bin/false
~~~
- SSH 설정 변경
[root@localhost home]# vi /etc/ssh/sshd_config
~~~ 부분 수정
Subsystem sftp internal-sftp -f local6 -l info
# Example of overriding settings on a per-user basis
Match Group bob
ChrootDirectory /home/bob
ForceCommand internal-sftp -f local6 -l info
AllowTcpForwarding no
~~~ 부분 수정
- 홈디렉토리 퍼미션 변경 및 업로드 디렉토리 생성
[root@localhost home]# cd /home
[root@localhost home]# ll
drw------ 3 bob bob 106 8월 23 19:16 bob
[root@localhost home]# chown root bob
[root@localhost home]# chmod 750 bob
drwxr-x--- 3 root bob 106 8월 23 19:16 bob
[root@localhost home]# cd bob
[root@localhost bob]# mkdir upload
[root@localhost bob]# chown bob:bob upload
[root@localhost bob]# ls -ald upload
drwxr-xr-x 2 bob bob 15 8월 23 19:17 upload
- 로그파일 설정
[root@localhost bob]# vi /etc/rsyslog.conf
~~~추가
# sftp log
local6.* /var/log/sftp.log
~~~
※ 참고
Match Group bob 부분에서 bob 그룹에 매칭될 경우 아래 chroot 정책이 수행되는 것으로 특정 유저로 하거나 관리할 Group을 만들어 준 후 ChrootDirectory /home/%u 로 설정해 주는 것이 좋음