AWS/Project

EC2에서 SFTP 서버 구축하기 (2) - ssh, sftp 모두 사용

jih0ssang 2024. 11. 1. 18:10

참고 사이트: https://aegypius.tistory.com/entry/CentOS-ssh와-sftp-설정 [기억과 흔적:티스토리]

 

프로젝트에서 개발자 분이 솔루션 계정과 개인 계정을 만들어달라고 요청하셨다.

개인 계정은 ssh 통해 접속이 필요하고 솔루션 계정은 sftp 통해 파일 전송 용도라고 하셨다.

일반 사용자들에게는 파일 전송만을 허용하고, 관리자가 사용할 계정은 sftp와 ssh모두를 허용하도록 설정해 볼 것이다.

 

1. ssh 설정 파일 수정

SSH 사용하지 않고 SFTP만 사용하는 사용자 계정 설정 - 루트 디렉터리 제한

$ sudo vi /etc/ssh/sshd_config 

아래줄에 다음 내용 추가

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

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server
Match Group usera				<<<<<추가된 내용<<<<<
    ChrootDirectory /shd/usera			<<<<<추가된 내용<<<<<
    ForceCommand internal-sftp			<<<<<추가된 내용<<<<<
    AllowTcpForwarding no			<<<<<추가된 내용<<<<<
    X11Forwarding no				<<<<<추가된 내용<<<<<

 

처음에는 Match Group이 아닌, Match User usera를 사용했으나 제대로 적용이 되지 않았다.

사용자명과 사용자 그룹명을 동일하게 해두어, Match Group으로 지정하여 활용하였다.

 

  • Match Group usera
    • usera 그룹에서만 설정 적용

  • ChrootDirectory /shd/usera
    • usera 그룹에 속한 사용자의 루트 디렉터리를 /shd/usera로 제한함
    • /shd/usera 상위의 디렉터리 접근 불가
  •  ForceCommand internal-sftp
    • 사용자가 SSH로 접속하면 제한하고 무조건 SFTP를 통해 접속하도록 강제함

  • AllowTcpForwarding no
    • SSH를 통한 TCP 포트 포워딩 기능을 비활성화

  • X11Forwarding no
    • X11 포워딩 기능 비활성화
    • 원격 GUI 연결 방지

수정 내역 적용을 위해서 sshd 재시작
$ systemctl restart sshd

 

2. 해당 디렉터리 소유권 및 권한 변경


읽기, 실행 권한만 부여
$ sudo chmod -R 755 /lghnh
$ sudo chown -R root:root /lghnh

 

 

결론

SSH, SFTP 모두 사용하는 사용자 계정은 루트 디렉터리 제한이 불가하고

SSH 사용하지 않고 SFTP만 사용하는 사용자 계정은 루트 디렉터리 제한이 가능하다.