SFTP 상위 접근 제한하기

2014.08.08 01:14

소울 조회 수:141051

1. /etc/ssh/sshd_config 파일을 수정하자


1. SSH 폴더로 이동을 합니다.

root@localhost # cd /etc/ssh

2. Vi에디터로 sshd_config 파일을 불러옵니다. 

root@localhost ssh # vi sshd_config

3. 아래의 부분을 찾아 다음과 같이 수정합니다.

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/sftp-server
Subsystem      sftp    internal-sftp


4. 마지막 줄에 아래와 같이 입력합니다. 그리고 저장합니다.
(위에 소스를 자세히 보시면 이와 같은 예제가 있을 것입니다. 이 내용 역시나 소스의 내용 중에서 파생된 것입니다.) 

Match Group sshgroup
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no

참고 :

1. %u는 로그인한 사용자의 계정을 뜻합니다. - 자세한 내용은 http://www.openbsd.org 에서 확인하기 바랍니다.
2. Match Group sshgroup   =   실제 리눅스의 그룹을 칭합니다.
3. ForceCommand internal-sftp     =     Sftp 내부 명령을 할수 있습니다.



2. sshgroup 으로서 그룹을 주었으니 group을 만들어야 하겠지요?

root@localhost # groupadd sshgroup


3. 예제 계정으로서 mark를 만들도록 하겠습니다.


1. 아래와 같이 사용자를 만드는 명령어를 입력해서 계정을 만들어 봅니다.

root@localhost # useradd mark
root@localhost # usermod -g sshgroup mark
root@localhost # usermod -s /bin/false mark
root@localhost # usermod -d /home/mark mark

 1줄 부터 4줄을 간략하게 정리하자면,
useradd -g mark -s /bin/false -d /home/mark mark

useradd mark
usermod -g sshgroup mark
usermod -s /bin/false mark
usermod -d /home/mark mark


2. 암호를 만듭니다.

root@localhost # passwd mark


4. 사용자 계정에 폴더와 권한을 부여합니다. 

1. 폴더를 Public_html을 만들어 보겠습니다.

root@localhost home # mkdir /home/mark/public_html


2. 폴더에 권한을 부여합니다. 755으로

root@localhost home # chmod 755 ~mark


3. 소유권을 root로 부여합니다.

root@localhost home # chown root.root ~mark


4. Public_html 폴더의 소유권을 부여합니다.

root@localhost home # chown mark.sshgroup /home/mark/public_html


출처 : http://yyman.tistory.com/104