OS X Server ssh 사용자의 상위 디렉토리 접근 제한하기

OS X Server 설정에서 ssh 원격로그인을 활성화하였을 경우 사용자는 Server로 SFTP(SSH원격로그인) 접근이 가능합니다.
기본적으로 SFTP(SSH 원격로그인)는 사용자의 홈 디렉토리에서 최상위 디렉토리인 root 까지 접근이 가능합니다.
이때 특정 사용자가 최상위 디렉토리(root)로 접근하지 못하도록 제한하는 방법을 소개합니다.

– OS X Server 에서 ssh 원격로그인을 활성화하기
wpid-screen00-2013-02-21-00-56.jpg

  1. 준비 단계

– Xcode 설치 후 Xcode의 preferences(command + “,”) 열어서 Downloads 탭에서 Command Line Tools를 설치한다.
wpid-screen01-2013-02-21-00-56.jpg

– MacPort 설치(URL : http://www.macports.org)
: MacPort 홈페이지에서 MacPort 설치파일을 받아 설치한다.
wpid-screen02-2013-02-21-00-56.jpg

– port selfupdate 로 MacPort 패키지 정보를 갱신한다.
command > sudo port selfupdate
wpid-screen04-2013-02-21-00-56.jpg

– fuse4x 패키지를 설치한다.
command > sudo port install fuse4x
wpid-screen05-2013-02-21-00-56.jpg

– fuse4x bindfs 패키지를 설치한다.
command > sudo port install fuse4x bindfs
wpid-screen06-2013-02-21-00-56.jpg

  1. root 소유자 및 권한을 변경한다.

1) command > sudo chown root /
2) command > sudo chmod 755 /

  1. chroot의 사용자 홈폴더를 생성한다.

1) command > sudo mkdir -p /chroot/사용자
2) command > sudo chown -R root /chroot
3) command > sudo chown 사용자 /chroot/사용자
4) command > sudo chmod -R 755 /chroot

  1. sshd_config 파일을 수정하기 전 원본파일을 백업한다.

1) sshd_config 파일 경로 : /etc/sshd_config
2) command > sudo cp sshd_config sshd_config.backup

  1. sshd_config 파일을 수정한다.

– sshd_config 내용 중 Subsystem 정보를 수정한다.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
wpid-screen08-2013-02-21-00-56.jpg

– sshd_config에 사용자 디렉토리 설정 정보를 추가한다.
Match User 사용자ID
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/사용자ID/

wpid-screen09-2013-02-21-00-56.jpg

  1. 사용자 디렉토리 bind 하기

– command > sudo /opt/local/bin/bindfs -u 사용자ID 사용할 디렉토리 경로 /chroot/사용자ID
ex) command > sudo /opt/local/bin/bindfs -u user01 /User/user01/Documents /chroot/user01

작업을 다하신 후에는 OS X Server의 ssh 서비스를 재시작해 주셔야합니다.

이후 사용자가 SFTP(SSH)로 접근하였을 경우 최상의 디렉토리는 “/chroot/사용자ID” 가되며 더이상의 상위 디렉토리로의 이동은 불가능합니다.

Posted by E4.

댓글을 달아 주세요