카테고리 없음

FTP - SFTP(리눅스)

파란별빛아래 2024. 3. 12. 12:29
반응형

참고 : https://aegypius.tistory.com/entry/CentOS-ssh%EC%99%80-sftp-%EC%84%A4%EC%A0%95

 

 

sftp는 ftp 와는 다르게 ssh 프로토콜을 이용함

 

계정 접속 컨트롤은 sshd config 내에

Allowusers // AllowGroups // DenyUsers // DenyGroups 활용이 용이

 

 

 

1. ssh 설정 변경

[vi /etc/sshd/config]

Match User [유저명]
        ChrootDirectory /home/[디렉토리명]     ## 상위 디렉토리 이동 불가
        ForceCommand internal-sftp     ## ssh 접속x, sftp 강제

 

1.  Chroot 구문을 생략할 경우 ssh 접속은 불가능하나 sftp 접속 후 모든 상위 디렉토리로 접근이 가능해짐

2.  ForceCommand 구문을 생략할 경우, ssh와 sftp 접속 모두 불가능해짐

 

 

ex)

Match User [유저명]
         ChrootDirectory %h				## %h로 유저명을 따라감
         ForceCommand internal-sftp

Port 6666						##  ssh 6666번 선언 
Port 5555						##  ssh 포트 추가선언
Match LocalPort 5555                   
        ForceCommand internal-sftp

1. Port 5555의 경우 sftp로만 접속 가능, Port 6666은 ssh와 sftp 모두 사용가능

2. Chroot %h 선언은 /home/[유저명]을 기본적으로 따라감

 

 

 

2. sftp 권한 

home directory

1) 소유권이 root 에 있어야 함, 서버 접속 간에 디렉토리가 root가 아닐 경우 접속이 거부됨

2) 그룹 소유권한이 최소 Read 권한이 있어야 디렉토리 접근이 가능함

   -> 040의 경우 접근은 가능하나, 내부 파일을 볼 수 없음

   -> 050의 경우 접근하여, 다운로드 가능

 

3) chroot 사용 시

- root 이외의 사용자에게 쓰기 권한이 있는 경우, sftp 접속불가

- 업로드가 필요할 시, 해당 chroot 디렉토리 하위에 있는 디렉토리를 별도로 생성해야 함

ex) 

mkdir -p /sftp_home/sftpuser/uploads
chown sftpuser:sftp-only /sftp_home/sftpuser/uploads

 

drwxr-xr-x root root /sftp_home/sftpuser/
drwxr-xr-x sftpuser sftp-only /sftp_home/sftpuser/uploads

 

출처 : https://zetawiki.com/wiki/SFTP%EB%A7%8C_%EB%90%98%EB%8A%94_%EA%B3%84%EC%A0%95_%EC%83%9D%EC%84%B1

 

 

 

Error

fatal: bad ownership or modes for chroot directory 

 

-> chroot로 지정된 디렉토리의 소유자가 root 가 아닐 경우, 뜬다고 함

해결 : chown root:[유저명] [디렉토리명]

 

 

vi /etc/

#수정 후 Subsystem sftp /usr/lib/openssh/sftp-server -f local5 -l INFO

 

 

 

반응형