[FTP, SFTP] FTP, SFTP 란 무엇인가

Welcome to Seoyun Dev Log·2023년 7월 10일
1

[WORK] 학습내용

목록 보기
3/25

FTP란?

File Transfer Protocol: 파일을 전송하는 통신규약 (Port = 21)
포트는 보안이 좋지 않아서 실무에 사용하지 않는다.
보인이 이루어지지 않은 채로 통신이 이루어지는 옛 버전
대표적인 공개 FTP 접속 프로그램이 Filezilla이다.

FTP는 명령어를 전달하는 21포트와 데이터를 전달하는 20(혹은 랜덤) 포트가 존재
데이터를 전달하는 방식에 따라 액티브와 패시브 모드가 있다.

  • 액티브 모드 : 클라이언트가 서버에게 포트 번호를 알려줘서 서버가 동작을 하는 것
  • 패시브 모드 : 서버가 클라이언트에게 포트 번호를 알려줘서 클라이언트가 동작을 하는 것

ftp는 두개의 포트를 이용하는데 그래서 21번 포트로 접속이 되더라도 사용 모드에 따라 서버의 20번 포트 혹은 클라이언트의 방화벽 정책에 따라 접속만 되고 실제 파일은 받거나 올리지 못하는 일이 발생합니다.
이 경우는 모드를 변경하거나 방화벽 정책을 확인해보자

📌telnet 과, ftp 인 경우는 패킷을 캡쳐해서 보면, 평문이기 때문에.
보여져서는 안될부분(패스워드, 계정 이정도 겠죠)이 쉽게 보여집니다.
이는 아주 큰 문제를 발생시킬 수 있습니다.

이런 취약점을 보안하기 위해서 telnet은 ssh 로 , ftp는 sftp로 암호화된 프로토콜 SSL을 사용하여, 모든 패킷을 암호화 해서 주고 받으므로 패킷을 잡아내더라도, 해독하는데 슈퍼컴퓨터로 1달 이상 걸리게 됩니다. 그렇기 때문에 패킷을 잡아도 사용할수 없도록 하는 것

  • 장점
    • 동시에 여러 파일을 전송하고 연결이 끊긴 경우 전송을 재개할 수 있으며 전송 일정을 예약할 수있다.
  • 단점
    • 암호화되지 않아서 보안이 취약하다 (패킷 공격을 통해 비교적 쉽게 데이터를 읽을 수 있다) ex: Google chrome, firefox는 2020년부터 FTP 지원 중단

SFTP

ssh의 파일 전송 버전: port = 22
FTP에서 보안이 추가된 것이 SFTP
ssh 기반으로 동작하는 FTP가 아니며 국제 인터넷 표준화 기구(IETF) SECSH 워킹 그룹에 의해 처음부터 설계된 새로운 프로토콜이다. SFTP는 SSH의 확장 프로토콜이다.

  • 파일을 다운로드하거나 인터넷에 업로드 할 때 일반적으로 사용. 일반 텍스트 파일은 전송되지 않는다

  • SFTP를 통해 제출할 때는 압축 여부에 관계없이 파일의 크기가 4GB를 넘지 않아야 한다.

  • 일반적인 FTP와 달리 PC와 서버간의 데이터 전송을 암호화하기 때문에 해킹이나 보안상의 문제점을 방지,
    안전한 호스팅 서비스를 이용할 수 있습니다.

  • ssh은 텔넷의 보안 버전
    SSH는 3개의 프로토콜로 이루어져 있다.

    1. 전송 프로토콜: 키를 교환하여 암호화하는 것이며 ssh-1은 보안 취약점으로 ssh-2버전을 사용한다.
  1. SFTP (SSL File Transfer Protocol)
    FTP와는 완전히 관계가 없는 파일 전송 프로토콜이다, SSL을 이용한다

  2. SecureFTP (FTP/SSH)
    SSH 연결 위에 일반 FTP로 접속을 하지만 실제 데이터는 암호화 되지 않는다

  3. FTPS (or FTP/SSL) implicit & explicit
    FTP가 TLS/SSL 보안 연결에서 동작한다. TLS(Transport Layer Security)/SSL(Secure Sockets Layer) 연결을 구성하는데에 따라 'implicit' 또는 'explicit'으로 구분이 된다.


참고

https://nhj12311.tistory.com/76
https://m.blog.naver.com/marnet/220357215031
https://www.nhn-commerce.com/customer/guide/ftp-setting.gd
https://studyforus.tistory.com/236

profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글