Network

FTP / SFTP + SFTP 서버 구축 실습

gamjadori 2024. 8. 27. 11:07
728x90

FTP(File Transfer Protocol) 파일 전송 프로토콜

  • 21번 포트 (제어 포트): 클라이언트의 접속 관련 포트이며 명령어로 제어를 담당하고 있고 FTP를 사용하는 동안은 연결이 지속적으로 유지됨
  • 20번 포트 (데이터 포트): 데이터 전송 포트로 파일을 전송할 때만 연결이 유지됨반이중 전송 방식을 이용하여 단방향 전송

A. 액티브 모드 (20 포트 사용): 21번 포트로 클라이언트에서 서버로 연결 요청 및 1024 이상의 포트로 데이터 관련 정보를 전달 → 서버에서 클라이언트로 20번 포트를 이용하여 직접 연결

    • 반이중 전송 방식이란?
    • 두 대의 단말기 중 한쪽이 수신하면 한쪽은 받는 방식으로, 하나의 통신 채널을 이용한다. 하지만 송수신이 정해져 있는 것은 아니며 일방통행 방식

** 서버에서 클라이언트로 연결을 하는 것이 특징이고 방화벽 문제로 연결이 안 될 가능성전이중 전송 방식을 이용해 양방향 전송

B. 패시브 모드 (1024 이상의 포트 사용): 21번 포트를 이용해 클라이언트가 서버로 연결을 요청하며 서버에 등록된 포트를 이용하여 데이터 관련 정보를 전달 → 클라이언트에서 서버로 연결

전이중 전송 방식을 이용해 양방향 전송

  • 전이중 전송 방식이란?
  • 동시에 데이터를 송수신하는 것이 가능하며 두 개의 통신 채널을 사용

** 단방향 전송 방식: 한 방향만으로 통신이 가능하며 송신과 수신이 고정되어 있음

 

SFTP(Secure File Transfer Protocol) SSH를 기반으로 한 파일 전송 프로토콜

  • SSH를 이용하기 때문에 데이터가 암호화되어 전송되므로 데이터의 기밀성과 무결성 보장
  • 22번 포트 사용: 클라이언트가 서버로 22번 포트를 이용하여 연결을 요청하고 서버에서 공개키를 전송하여 신원을 증명

 

<SFTP 서버 구축해 보기>

  • ssh가 활성화 되어 있어야 함. (systemctl status ssh로 확인)
  • 보안그룹에 22번 포트가 열려 있어야 함.

  • SFTP 서버의 시스템 관리 계정 추가 및 공유할 디렉터리 생성 (adduser stfptest / mkdir sftp) >> SFTP 서버는 stfptest 계정이 관리하게 하며, 공유 디렉터리는 sftp
  • 공유 디렉터리 권한 설정 sudo chown stfptest:stfptest sftp
root@sechoi-server:~# ls -al
.
.
drwxr-xr-x  2 stfptest stfptest 4096 Aug 19 10:59 sftp
  • vi /etc/ssh/sshd_config로 ssh에 대한 설정 변경
Match User sftptest <사용자 ID>
		ChrootDirectory <공유할 폴더 경로>
		ForceCommand internal-sftp >> 다른 곳으로 갈 수 없고 오직 SFTP 인터페이스만 사용
		AllowTcpForwarding no >> 사용자가 SSH 포트 포워딩을 사용하지 못하게 하여, 터널링을 통한 네트워크 서비스 접근을 방지
		X11Forwarding no >> 사용자가 그래픽 사용자 인터페이스(GUI) 애플리케이션을 원격으로 실행하는 것을 방지
		PermitTunnel no
		AllowAgentForwarding no
  • systemctl restart ssh로 서비스 재시작으로 설정 적용

<SFTP 확인해 보기>

  • 내 컴퓨터의 CMD로 SFTP 접속 시도 후, 디렉터리(mkdir test2)를 만들어 공유되는지 확인
sftp root@223.130.***.*** (sftp 서버 IP 주소)
  • cmd 창과 sftp 서버 콘솔 창에서 생성된 test2 디렉터리 생성 확인

 

사용할 수 있는 명령어 목록

ls 서버의 디렉토리 목록

ls  서버의 디렉토리 목록
get + 파일 명 서버에서 로컬로 파일 다운로드
put + 파일 명 로컬에서 서버로 파일 업로드
cd 위치 이동
mkdir 디렉러티 생성
rmdir 디렉터리 삭제
rm 파일 삭제
chmod 파일의 권한 변경
exit 세션 종료

'Network' 카테고리의 다른 글

서버 이중화 및 HA / OPS / RAC  (0) 2024.08.28
Timeout과 3 Way-Handshake  (0) 2024.08.21
VPC Peering과 Transit Gateway(TGW)  (0) 2024.08.19
가상사설망 VPN과 IPSec VPN / SSL VPN  (0) 2024.08.18
IPv4와 IPv6 비교 / HTTP와 TCP 비교  (0) 2024.06.07