http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny
위의 링크를 참고하여 시도하였으나 원할하게 돌아가지 않았습니다.
그래서 저는 sftp를 chroot 방법 보다는 sftp와 ssh 의 사용권한에 대해서 포스팅하겠습니다.
제가 다룰 ssh 의 권한을 설정하는 부분은 3가지 입니다.
- ssh는 사용가능하고 sftp를 사용 불가능하게 한다.
- ssh와 sftp 모두 사용 불가능하게 한다.
- ssh는 사용 불가능하고 sftp를 사용가능하고 home 디렉토리 이상으로 가지 못하게 한다.
1. ssh 는 사용 가능하고 sftp를 사용 불가능하게 한다. ( 전체 user 적용 )
이 경우는 아래의 파일을 수정함으로써 설정이 가능합니다.
/etc/ssh/ssh_config
위의 파일에서 subsystem sftp /usr/lib/openssh/sftp-server 부분을 주석처리 한 후 ssh를 재시작 하면
ssh는 사용가능하지만 sftp는 사용하지 못하게 됩니다.
2. ssh와 sftp 모두 사용 불가능하게 한다. ( 개별 user 적용 )
이 경우는 아래 파일을 수정해 설정이 가능합니다.
/etc/passwd
위의 파일에서 사용하지 못하게 설정할 유저의 line을 찾은 후 bin/bash 부분을 bin/nologin 으로 바꿔주면 됩니다.
3. 마지막으로 sftp 사용가능 ssh 사용 불가능 방법입니다.
이 방법은 포스팅 가장 처음에 나왔던 링크를 따라 시도했지만 잘 되지 않았던 방법입니다.
/etc/ssh/sshd_config
위의 파일을 열어 Subsystem sftp /usr/lib/openssh/sftp-server 라고 설정된 부분을
Subsystem sftp internal-sftp로 변경했습니다.
그리고 파일 맨 끝부분에 새로 아래의 부분을 추가해줬습니다.
Match User 유저명
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
그리고 저장 후 ssh를 재시작해주었습니다.
이 후에 나타난 문제점은 위처럼 설정한 유저는 ssh 에 접속되지 않았습니다.
putty라는 프로그램을 사용하고 있는데 위처럼 설정한 유저는 로그인창에서 튀어버리는 현상이 발생했습니다.
sftp의 경우에는 /home 폴더까지 chroot 를 할수는 있었지만 그 이상으로 즉, /home/user 까지 설정해주면
인증이 실패했다는 메세지와 함께 로그인이 되지 않았습니다.
또한 internal-sftp를 초기의 /usr/lib/openssh/sftp-server 값으로 변경할 경우에도
역시 로그인이 되지 않았습니다.
어쩔 수 없이 /home 까지 접근 가능하게 한 후 각자의 디렉토리만 볼 수 있도록 퍼미션을 조정하는 것으로 끝났습니다.
결국은 ssh 권한을 주지 않는 방향으로 나아가게 되었는데
이 문제에 대한 해결책이 있는분은 연락주세요.
결국 위의 코드를 입력해 chmod로 권한 설정해주는 것으로 끝냈습닏
이것으로 이번 포스팅을 끝내겠습니다.
출처 - http://www.daclick.co.kr/bbs/board.php?bo_table=adm_server&wr_id=620
'System > Common' 카테고리의 다른 글
AWK & SED 예제 (0) | 2012.04.05 |
---|---|
PATH 환경변수 우선순위 (0) | 2012.04.05 |
/bin/false VS /sbin/nologin (0) | 2012.04.04 |
리눅스 파티션 나누기 (0) | 2012.04.03 |
HP ProLiant DL160 G6 Server series (491532-B21) - specifications and warranty (0) | 2012.03.31 |