본문
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 711 /home chmod 711 /etc chmod 711 / chmod 711 /usr chmod 711 /usr/local chmod 711 /proc chmod 711 /mnt chmod 711 /opt chmod 711 /misc chmod 711 /dev chmod 711 /bin chmod 711 /boot chmod 711 /www chmod 711 /var
결국 위의 코드를 입력해 chmod로 권한 설정해주는 것으로 끝냈습
이것으로 이번 포스팅을 끝내겠습니다.
관련링크
댓글목록
등록된 댓글이 없습니다.