리눅스
CentOS 7 sftp chroot
Link2Me
2021. 7. 22. 07:20
728x90
CentOS 7 에서 사용자(user)에게 Home 디렉토리를 지정하여 상위 디렉토리로는 이동을 못하게 막으면서 권한을 부여하는 방법이다.
# SFTP Configuration
mkdir -p /home/data/sftp
chmod 701 /home/data
# Group 사용자 등록
groupadd sftpusers
# 사용자 계정 자동 생성되면서 그룹에 추가되고 로그인 시 사용할 기본 쉘 지정
useradd -g sftpusers -d /upload -s /sbin/nologin jsonuser
# 사용자 계정 암호 지정
passwd jsonuser
# 암호 입력
# upload할 디렉토리 지정
mkdir -p /home/data/jsonuser/upload
# 그룹 권한 설정
chown -R root:sftpusers /home/data/jsonuser
# 사용자 계정 권한 설정
chown -R jsonuser:sftpusers /home/data/jsonuser/upload
# 설정된 권한 확인
ls -ld /home/
ls -ld /home/data/
ls -ld /home/data/jsonuser
ls -ld /home/data/jsonuser/upload
cat /etc/passwd | grep jsonuser
# vi 에디터에서 맨 아래줄로 이동하는 명령어 shift + g
# 맨 아래줄 하단에 아래 3줄을 추가한다. vi /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /home/data/%u
ForceCommand internal-sftp
# SSH 상태확인 및 재시작
service sshd status
service sshd restart
# 적용된 권한 확인
yum -y install nmap
nmap -n 192.168.1.20
sftp jsonuser@192.168.1.20
ssh jsonuser@192.168.1.20
|
실제 적용 테스트한 화면
Virtual Box에 CentOS 7 설치하여 테스트했고, IP address : 192.168.1.20
SFTP로는 접속이 가능하고, SSH로는 접속이 불가능함을 확인할 수 있다.