CentOS7 SFTP 설치 및 접속하기
- IT
- 2020. 10. 7.
이번 포스팅은 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 파일도 확인 가능합니다.
'IT' 카테고리의 다른 글
[Linux] SSL (자가 서명)사설 인증서 생성하기 (0) | 2020.10.10 |
---|---|
[Linux] 디스크 추가 후 리부팅 없이 인식시키기 (0) | 2020.10.09 |
CentOS7 FTP(vsftpd) 서버 설치 및 접속하기 (0) | 2020.10.06 |
[WAS] apache tomcat 연동(Feat. mod_proxy_ajp) (0) | 2020.09.29 |
[Linux] nc 명령어 (0) | 2020.09.28 |