일반적으로 파일 송수신이 필요한 이유는
송신측
- 보낼파일 선택
수신측
- 받은파일을 어떻게 할지 read, write, execute
(viewer 에 보여주기, 디스크에 저장, DB에 저장, 파일을 변경, 실행)
그럼 파일 송수신 관련해서 HTTP, FTP, SFTP, FTPS 에 대해 차이를 확인해보려고 한다.
간단하게 FTP 의 종류는 아래와 같다.
# HTTP
1. 장점
- 크기가 작은 파일 여러개를 다운받을 때
# FTP
1. 장점
- 이어받기, 실시간 압축전송 등을 지원 (HTTP 도 지원하는듯 확인필요)
- 서버 입장에서 HTTP 비해 부하가 적음 (HTTP Header 가 FTP 보다 훨씬 큼, 하지만 경우에 따라 다를수 있다.)
2. 특징
- 파일 전송을 위해 2개의 port 를 연다.
- ID, PW 인증하고, TCP 로 데이터 송수신
3. 기타
* 접근 제한
/etc/ftpusers 파일에 적힌 사용자들에 대한 접근 제한
/etc/hosts.deny특정 IP 접근 제한
/etc/hosts.allow 특정 IP 접근 허용
* FTP Mode
- Active Mode
(ftp client 에서 ftp server 21번 포트로 접속)
(ftp client 에서 ftp server 20번 포트로 데이터 전송)
- Passive Mode
(ftp client 에서 ftp server 21번 포트로 접속)
(client 는 랜덤포트를, server 는 data 를 수신할때 랜덤포트 사용, 1024 ~ 65535 범위의 랜덤포트를 선택)
* FTP log
* 알려진 보안취약점이 다수
* 서버구축 필요 (패키지 설치 및 설정 등)
# FTPS (FTP over SSL)
1. 특징
- TLS/SSL(공개키 암호화 방식) 을 이용한 FTP 의 확장판 (21번, 20번 포트 사용, 설정에 따라 변경 가능)
- SSL 레이어 위에서 FTP 를 수행함으로써 command 와 data 모두 암호화된다.
- 인증 및 명령 전달 포트, 파일 전송에 대한 포트 사용
- 리버스 프록시 구성에서는 그다지 필요성이 줄어듬
# SFTP (SSH File Transfer Protocol)
1. 특징
- SSH (TELNET 의 보안버전) 로 파일 전송하는 방법
- 단일 포트만 사용 (22번포트, 보안에 유리)
- 정확히 말하면 SFTP 는 FTP 를 사용하지 않는다. (SSH 기반의 새로운 파일전송프로토콜이다.)
- 신원이 확인이 우선시 됨
- SSH 서버가 구축되어 있어야한다. (일반적으로 리눅스는 sshd subsystem 인 sftp 기능을 포함한다.)
- 구축 및 유지비용이 적다.
- 파일 업로드시 필요한 정보
접근할 서버의 ip, port, id, pw
전송할 file, 업로드할 path
# FTP over SSH (Secure FTP)
SSH 연결 위에 일반 FTP 로 터널링 연결을 함으로써 접속 시에 계정정보가 암호화되어 노출되지 않지만,
데이터는 암호화가 되지 않는다.
이 방법은 SSH 를 이용하여 터널링을 구성한 다음, 일반 FTP 로 접속하는 방법이기에 사용하기는 쉽지않다.
결론
경우에 따라 적절한 프로토콜을 사용하여 파일 송수신을 하면 된다.
참고
출처
zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_SFTP_%EC%84%9C%EB%B2%84_%EC%82%AC%EC%9A%A9
'IT > 네트워크' 카테고리의 다른 글
NFS 주요 옵션 (0) | 2022.12.19 |
---|---|
HTTP MIME 타입 정리 (0) | 2021.07.14 |
스프링부트 웹소켓 리뷰 (0) | 2021.06.28 |
SSE (Server Sent Events), Websocket 리뷰 (0) | 2021.06.28 |
SSH 와 TLS/SSL 란? (0) | 2021.05.09 |