FTP와 SFTP란?

최정태·2024년 5월 14일

FTP란?

파일을 주고 받을 수 있는 통신규약이다.

클라이언트와 서버간에 대량의 파일들을 전송하기 위해서는 HTTP, 즉 텍스트문서 전송 규약이 아닌
파일 전송에 대한 규약이 필요했다. 파일을 전송하기위한 방법은 어떤 방법이 있을까?

파일을 전송하는 방법

  1. 첫번째는 브라우저를 통해 파일을 주고 받을 수 있도록 하는 것이다.
    브라우저에 ftp프로토콜을 입력하여 ftp서버에 접속하면 ftp서버에 있는 디렉토리 목록들이 보인다.

  2. 두번째는 파일 전송 프로그램을 통해서 파일을 편리하게 주고 받을 수 있게끔 하는 것이다.
    첫번째 방법은 최근 보안상의 이슈로 브라우저에서는 FTP 지원을 중단하고있다.
    현재는 FTP 클라이언트 프로그램을 사용하는 것을 권장한다.
    클라이언트 프로그램은 파일질라, 알드라이브 등이 있다.

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

데이터를 전달하는 방식

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

보안상의 문제

ftp는 두개의 포트를 이용한다. 혹여 21번 포트로 접속이 되더라도
사용 모드에 따라 서버의 20번 포트 또는 클라이언트의 방화벽 정책에 따라서 접속만 되고 실제 파일은 받거나 올리지 못하는 일이 발생한다. 이 경우는 모드를 변경하거나 방화벽 정책을 확인해보면 된다.
Telnet과 FTP는 데이터를 모두 평문으로 전송한다.
즉 데이터가 암호화되지 않고 원래의 형태로 전송된다는 의미이다.
telnet은 ssh 로 , ftp는 sftp로 암호화된 프로토콜 SSL을 사용하여 모든 패킷을 암호화 해서 주고 받으므로 보안을 강화하려면, SSH(Secure Shell)나 SFTP(Secure File Transfer Protocol)와 같이 데이터를 암호화하여 전송하는 보다 현대적인 프로토콜을 사용하는 것이 권장된다.
크롬과 파이어폭스는 2020년부터 FTP지원 중단되었다.

SFTP란?

SSL 프로토콜을 이용하여 FTP의 보안 문제를 보완한 SFTP 프로토콜이다.
SSH기반으로 동작하는 FTP가 아니며 국제 인터넷 표준화 기구(IETF) SECSH 워킹 그룹에 의해
처음부터 설계된 새로운 프로토콜이다.

  • SFTP는 SSH의 확장 프로토콜이다.

SFTP 사용 시 주의사항

  • SFTP를 통해 제출할 때는 압축 여부에 관계 없이 파일의 크기가 4GB를 넘지 않아야한다.
  • SFTP를 사용하려면 SSH 서버가 설치되어 있어야한다.
  • SFTP는 일반적으로 SSH 프로토콜을 사용하는 포트 22를 사용한다.

SFTP의 특징

  • 보안성 : SFTP는 SSH 프로토콜 위에서 작동해서 데이터 전송이 암호화된다.
  • 인증 : 서버와 클라이언트 간의 안전한 인증이 가능하다.
  • 안정성 : 안정적인 파일 전송을 지원한다. 네트워크 연결이 불안정한 경우에도 중단된 전송을 재개할 수 있는 기능을 제공한다.
  • 편의성 : SFTP는 FTP와 유사한 사용자 경험을 제공하지만, 보안 및 안정성 측면에서 우수하다.
  • 프로토콜 호환성 : SFTP는 여러 플랫폼과 시스템 간에 호환성이 뛰어나며, 다양한 운영체제 및 네트워크 환경에서 사용할 수 있다.
  • 확장성 : 필요한 경우 확장 가능한 설정을 통해 세부적으로 제어할 수 있다.

SFTP를 통한 파일 전송 방법

  1. 연결 설정 : 클라이언트를 실행한 후, SFTP서버에 연결하기 위해 필요한 정보를 입력한다.
    이 정보는 호스트 주소, 포트 번호, 사용자 이름 및 암호가 포함될 수 있다.
  2. 인증 설정 : SFTP 서버에 연결할 때 인증 방법을 선택해야한다. 사용자 이름과 암호를 사용하는 패스워드 인증 또는 SSH 키를 사용하는 키 기반 인증일 수 있다.
  3. 서버 탐색 : 연결이 설정되면 원격 서버의 파일 시스템을 탐색할 수 있다. SFTP 클라이언트는 로컬 파일 시스템과 원격 파일 시스템 간에 파일 및 폴더를 드래그 앤 드롭하여 전송할 수 있는 사용자 친화적인 인터페이스를 제공한다.
  4. 파일 전송 : 파일을 로컬 시스템에서 원격 서버로 끌어다 놓거나, 반대로 파일을 원격 서버에서 로컬 시스템으로 드래그하여 전송할 수 있다.
  5. 전송 상태 확인 : 파일 전송이 완료되면 클라이언트는 전송된 파일의 상태를 표시합니다. 일반적으로 성공적으로 전송된 파일은 목록에서 확인할 수 있고, 실패한 파일은 관련 오류 메세지와 함께 표시된다.]

0개의 댓글