본문으로 건너뛰기

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 설정 관련 문의 사항