개발개발/LINUX

sftp 접속시 최상위 폴더 접근 제한

꾸냥 2014. 2. 17. 18:38

[목표]

1. 리눅스에서 sftp 접속 가능하게 하기

2. sftp 접속시 최상위 폴더 접근 제한

3. sftp 만 접근 가능하게 세팅


아이디 : sftponlyuser

그룹 : sftponly

위치 : /home/sftponly/sftponlyuser


[작업]

// sftp 만 접근 가능한 그룹을 만든다.

# group add sftponly


// /etc/ssh/sshd_config 에 설정값 수정

#Subsystem      sftp    /usr/libexec/openssh/sftp-server

=> Subsystem       sftp    internal-sftp


Match Group sftponly

        ChrootDirectory %h

        AllowTcpForwarding no

        X11Forwarding no

        ForceCommand internal-sftp


// 사용자 등록

# useradd -M -g sftponly sftponlyuser 


// 사용자 ssh 로그인 못하게 막기

# vim /etc/passwd

sftponlyuser:x:123:123::/home/sftponly/sftponlyuser:/bin/bash

=> sftponlyuser:x:123:123::/home/sftponly/sftponlyuser:/bin/false


// selinux 해당 폴더 보안 재설정(?)

restorecon -R /home/sftponly

or

restorecon -R /home/sftponly/sftponlyuser


[권한]

폴더 : /home/sftponly/sftponlyuser

/home/sftponly/ 의 소유주와 권한은 755 와 root:sftponly 

/home/sftponly/sftponlyuser/ 의 소유주와 권한은 755 와 sftponlyuser:sftponly


권한은 777 로 주거나 하면 안됨

접속해서 처음으로 보여지는 폴더의 소유주와 권한은 root:sftponly 와 755 이여야만 하고

접속 후 저장을 할 수 있는 폴더의 소유주와 권한은 sftponlyuser:sftponly 와 755 여야만 한다.


[기타]

해당 권한 개념에서 어려워 엄청 헤매였음. 야매로 하려니 뭐 다 그렇지. 중간에 selinux 관련 해서도 저게 맞는진 모르겠지만 우선 저렇게 세팅됨.

반응형