본문 바로가기

Linux/일반

sftp 상위디렉토리 접근 제한

1. 퍼미션 조정

2. sshd_config chroot 설정 

 

 

 

[test 방법]

: 일반계정 jujin을 생성하고, sftp로 접속 시 /home/jujin 디렉토리만 접근할수 있도록 테스트

 

 

 

1. 퍼미션 조정

jujin 일반계정 생성 후 /etc/passwd 파일을 보면

jujin에 대한 홈디렉토리가 /home/jujin 으로 확인할수 있다.

보통 일반계정을 생성하면 /home 디렉토리 밑에 계정에 대한 홈디렉토리가 생성된다.

/etc/passwd

 

 

/home/jujin 디렉토리 파일에 퍼미션을 조정해서 sftp 접속 시, 상위 디렉토리로 접근할수 없도록 한다.

--- /home/jujin 디렉토리 소유자 및 권한 변경 ---

chown root:root /home/jujin

chmod 755 /home/jujin

--- /home/jujin/하위폴더 소유자 및 권한 변경 ---

chown root:jujin /home/jujin/*

chmod 775 /home/jujin/*

 

 

 

2. sshd_config chroot 설정

※ chroot 설정 시 설정한 사용자 및 그룹은 ssh를 사용할 수 없음

 

/etc/ssh/sshd_config

 

 

기존의 Subsystem sftp /usr/libexec/openssh/sftp-server 주석처리

Subsystem sftp internal-sftp 추가

chroot 설정 추가

Match User jujin

ChrootDirectory /home/jujin

ForceCommand internal-sftp

X11Forwarding no

AllowTCPForwarding no

chroot 설정을 반드시 홈 디렉토리로 설정할 필요는 없고, 다른 디렉토리로 지정해도 상관없음.

 

 

 

 

위 사진과 같이 여러개의 계정을 설정할 수 있다.

또한 user 외에도 group으로도 설정이 가능하다.

모든 설정이 끝나면 ssh 재시작

# service sshd restart

 

 

 

 

filezilla로 테스트 시, 최상위 디렉토리가 /home/jujin으로 설정되었고 하위 폴더들만 접속할 수 있다.