728x90

FTP chroot 를 설정하여 FTP 홈 디렉토리 상위 디렉토리로 이동이 불가능해진다.
하지만 SFTP 로 접속하면 홈 디렉토리 상위 디렉토리로 이동이 가능하다.
따라서 SSH chroot 적용 방법으로 적용해야 한다.
- Chroot를 지정한 유저 또는 그룹은 SSH를 사용할 수 없다.
- SFTP에서 Chroot를 설정하면, FTP로서의 기능만 하게 된다.

1. Group 사용자 등록
groupadd sftponly
useradd -g sftponly test
usermod -s /bin/false test

// 사용자 계정을 그룹에 등록하는 방법
usermod -g sftponly user1  // sftponly 그룹에 user1 멤버 등록

※ 일반 계정을 추가하고 SSH 접속을 하면 접속이 되어버림
  그러나 sftponly 그룹에 추가하고 SSH 접속을 시도하면 접속이 차단됨.
  SCP 이용하려면 SSH 권한이 되어야 이용이 가능함.


vi /etc/group
// sftponly 그룹을 찾아서 제한할 걸 사용자 계정 추가 (계정 구분은 콤마(,))

※ 그룹 사용자 추가/삭제/변경 방법은 http://link2me.tistory.com/500 참조

2. 사용자 홈 디렉토리 만들기 및 권한 적용
cd /
mkdir -p /home/test
chown root:sftponly /home/test
chmod 0664 /home/test

# 하위 디렉토리를 추가하고 쓰기 권한을 부여한다. (테스트 목적)
cd /home/test
mkdir web             
chown root:sftponly /home/test/web
chmod 664 /home/test/web

※ 일반사용자(Other)와 그룹사용자(group)에게 실행권한이 설정되지 않게 파일은 644 또는 664 로 퍼머션 설정 필요

# 사용자 패스워드 변경
passwd user계정명

# 사용자의 홈디렉토리 확인
cat /etc/passwd
test:x:500:500::/home/test:/bin/bash


3. chroot 설정
- chroot 계정을 격리시킬 디렉토리를 생성한다.

vi /etc/ssh/sshd_config
// 중간에 Subsystem sftp 부분을 # 처리 해준다
// # Subsystem sftp /usr/lib/openssh/sftp-server 처리하면 SSH는 사용 가능, SFTP는 사용불가
// 맨 하단에 아래줄을 추가한다. Match 구분은 sshd_config 파일의 가장 마지막에 존재해야 함
// %h : 사용자의 홈디렉터리를 뜻함
Subsystem sftp internal-sftp

Match Group sftponly
    ChrootDirectory %h
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

# SSH 재시작
service sshd restart

※ SFTP chroot 를 사용하려고 user를 추가하면 FTP 접속할 수 있는 계정이 생성되므로
  FTP 사용을 못하게 Port 20, 21 번을 방화벽에서 차단하는 것이 필요

블로그 이미지

Link2Me

,