CentOS 6에서 OpenSSH의 SFTP 기능만 사용하는 chroot 환경은 어떻게 설정하나요?
💡 요약 정리
- CentOS 6.4에서 OpenSSH 5.3.X sftp 기능으로 chroot 환경을 구성합니다
- sftp만 사용 가능하며 ssh는 허용하지 않는 설정입니다
- groupadd sftpusers로 그룹 생성 후 useradd로 유저를 생성합니다
- sshd_config에서 internal-sftp를 사용하고 ChrootDirectory를 설정합니다
- /home/sftp/%u 경로 에 홈 디렉토리를 생성하여 사용합니다
설치환경
- CentOS 6.4 x86 (64bit) / opessh 버전 5.3.X
Centos 6.x에서 openssh(5.x) sftp기능을 이용한 chroot 환경구성하기
(sftp만 사용할수 있으며, ssh는 허용하지 않는 방법입니다)
1. chroot Group 생성( 예시 sftpuser)
chroot를 적용할 group을 생성합니다. 이 group에 속하는 유저는 자동으로 chroot sftp의 적용을 받습니다.
# groupadd sftpusers
2. 유저 생성 또는 기존 유저 변경 (예시 cafe3)
sftp만 허용하고 ssh를 허용하지 않기 위해서 쉘 접근 권한이 없는 유저를 생성합니다.
# useradd -g sftpusers -d /www -s /sbin/nologin cafe3
# passwd guestuser
/etc/passwd 를 보면 다음과 같이 생성이 되어 있을 것입니다.
# grep cafe3 /etc/passwd
cafe3:x:504:501::/www:/sbin/nologin
기존 유저의 sftp 사용 방법
# usermod -g sftpusers -d /incoming -s /sbin/nologin webmaster
3. sshd_config 에서 sftp-server Subsystem 설정
/etc/ssh/sshd_config에서 기본 설정 sftp-server 대신에 internal-sftp 를 사용합니다.
/etc/ssh/sshd_config 파일을 다음과 같이 수정합니다.
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
4. sftp userGroup에 대한 Chroot Directory 적용
/etc/ssh/sshd_config 파일에 다음 사항 추가
Match Group sftpusers
ChrootDirectory /home/sftp/%u
ForceCommand internal-sftp
ForceCommand internal-sftp – 내부 SFTP의 실행을 강제하고 ~ / .ssh / RC 파일에 언급 된 모든 명령을 무시
5. sftp Home Directory 생성
# mkdir /home/sftp
# mkdir -p /home/sftp/cafe3/www
# chmod 777 /home/sftp/cafe3/www
6. ssh 재시작
/etc/init.d/sshd restart
7. sftp 접속테스트
문제가 해결되지 않았나요?
궁금하신 사항은 언제든지 1:1 문의게시판으로 문의해 주세요.
문의 시 포함 정보:
- 카페24 아이디
- 서비스 ID: 서버호스팅 서비스 ID
- 서버 OS: CentOS 6.x 등
- OpenSSH 버전: ssh -V 명령 실행 결과
- sshd_config 설정: /etc/ssh/sshd_config 내용
- 에러 로그: /var/log/secure 내용
- 문의 내용: SFTP chroot 설정 관련 문의 사항