CentOS7 SFTP 설치 및 접속하기

반응형
반응형

 

 

이번 포스팅은 openssh를 이용한 SFTP 서버 구성입니다.

openssh는 기본적으로 설치가 되어있기 때문에 설치 내용은 생략하고 진행하겠습니다.

 

 

1단계. SFTP 테스트 계정 생성

 

보안을 고려하여 ssh 접속이 불가능하도록 설정하여 계정을 생성하였습니다. 

useradd -s /sbin/nologin test_1

 

계정 생성 확인

[root@ftp01 ~]# cat /etc/passwd | grep test_1
test_1:x:1006:1007::/home/test_1:/sbin/nologin

 

 

2단계. sshd_config 설정 파일 수정

 

우선, 설정 파일 위치 아래와 같습니다.

/etc/ssh/sshd_config

 

파일을 열어서 아래 이미지의 첫 번째 라인은 주석처리, 두 번째 라인의 내용은 추가를 해줍니다.

#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp -l INFO

 

설정 파일 끝에는 아래 내용을 추가 후 저장하고 나옵니다.

test_1 계정에 대한 홈 디렉터리 및 sftp 설정 내용입니다. 

Match User test_1                            
        ChrootDirectory /home/test_1/UPLOAD         
        X11Forwarding no                     
        AllowTcpForwarding no
        ForceCommand internal-sftp -l INFO

 

 

 

 

 

 

3단계. 데몬 재구동 및 로컬 접속

 

 

sshd 데몬을 재구동 합니다.

 systemctl restart sshd

 

로컬에서 접근 테스트 -> 접속 실패

원인은 -> ChrootDirectory로 지정된 /home/test_1 디렉터리의 소유자(UID)가 root가 아니기 때문이다.

 

[root@ftp01 home]# ll /home | grep test_1
drwxr-xr-x  4 root        test_1      88 10월  7 20:22 test_1

 

그럼 root로 소유자 변경하고 권한은 755로 설정 후 다시 한번 접속해 보겠습니다.

[root@ftp01 home]# chown root.test_1 test_1
[root@ftp01 home]# ll /home | grep test_1
drwx------  3 root        test_1      74 10월  7 20:18 test_1

 

다시 접속 시도 -> 성공!!!!

접속은 성공했는데 test_1 계정으로는 write를 할 수 없습니다. 권한이 없기 때문에요

해당 경로는 홈 디렉터리 이기 때문에 가능한 해당 경로에는 write권한 없이 운영하는 게 좋습니다. 보안 측면에서요

[root@ftp01 home]# sftp test_1@localhost
test_1@localhost's password:
Connected to localhost.
sftp> pwd
Remote working directory: /
sftp> put test.txt
Uploading test.txt to /test.txt
remote open("/test.txt"): Permission denied

 

그럼, 실제 데이터는 어디에 올리냐면

/home/test_1/ 하위에 별도의 디렉터리를 생성하여  test_1 권한 할당 후 사용을 하면 됩니다.

 

테스트로 UPLOAD 디렉터리를 생성하였고요, test_1 소유자로 지정을 했습니다

[root@ftp01 test_1]# ll /home/test_1/
합계 0
drwxr-xr-x 2 test_1 test_1 6 10월  7 20:22 UPLOAD

 

다시 접속을 한 뒤, UPLOAD 디렉터리로 이동을 하고 로컬에 있는 test.txt 파일 업로드까지 성공했습니다.

[root@ftp01 tmp]# sftp test_1@localhost
test_1@localhost's password:
Connected to localhost.
sftp> ls
UPLOAD
sftp> cd UPLOAD/
sftp> put test.txt
Uploading test.txt to /UPLOAD/test.txt
test.txt                                                                           100%    0     0.0KB/s   00:00
sftp> ls
test.txt

 

 

 

 

 

 

4단계. 파일 질라(filezilla)에서 접속

 

이번엔 파일 질라를 통해 SFTP 서버 접근을 해보겠습니다

 

 

아래 이미지와 같이 설정을 해주시 접속합니다.

 

상태창을 보시면 정상적으로 접근이 된 것을 보실 수 있고요

테스트로 업로드한 test.txt 파일도 확인 가능합니다.

반응형

댓글

Designed by JB FACTORY

loading