FTP

파일 전송 프로토콜은 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다. 파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속하며, 역사는 오래 되었지만 지금도 인터넷에서 자주 사용된다

FTP 프로토콜

FTP(파일 전송 프로토콜)는 인터넷을 통해 파일을 전송하는 데 사용되는 표준 프로토콜입니다. 컴퓨터 간에 파일을 전송하기 위해 가장 오래되고 널리 사용되는 프로토콜 중 하나입니다. FTP는 데이터 포트제어 포트의 두 포트에서 작동합니다. 제어 포트는 클라이언트와 서버 간에 명령을 전송하는 데 사용되며 데이터 포트는 파일 전송에 사용됩니다.

FTP 작동 방식 Flow

  • 클라이언트가 서버와 연결 설정: 클라이언트는 포트 21에서 FTP 서버에 연결하라는 요청을 보냅니다. 서버는 서버 이름, * 버전 및 기타 정보가 포함된 인사말 메시지를 보내 응답합니다.
  • 클라이언트가 서버에 인증: 클라이언트는 로그인 자격 증명(사용자 이름 및 암호)을 서버로 보냅니다. 로그인에 성공하면 서버는 인증을 확인하는 메시지를 보냅니다.
  • 클라이언트가 서버에 명령을 보냅니다. 인증이 완료되면 클라이언트는 서버에 명령을 보낼 수 있습니다. 일반적인 명령은 다음과 같습니다.

    • 디렉토리 내용 나열: 이 명령을 사용하면 클라이언트가 서버의 디렉토리 내용을 볼 수 있습니다.
    • 파일 업로드: 이 명령은 클라이언트가 파일을 서버로 보낼 수 있도록 합니다.
    • 파일 다운로드: 이 명령을 사용하면 클라이언트가 서버에서 파일을 검색할 수 있습니다.
  • 서버가 클라이언트 명령에 응답: 서버는 성공 또는 실패를 나타내는 메시지로 클라이언트 명령에 응답합니다. 예를 들어 클라이언트가 존재하지 않는 파일을 요청하면 서버는 오류 메시지로 응답합니다.
  • 데이터 전송: 클라이언트가 파일 업로드 또는 다운로드를 요청하면 별도의 데이터 포트에서 새로운 연결이 설정됩니다. 데이터 전송은 활성 또는 수동의 두 가지 모드가 될 수 있습니다.

    • 활성 모드에서 클라이언트는 데이터 전송을 시작하고 서버는 데이터를 클라이언트로 보냅니다.
    • 수동 모드에서 서버는 데이터 전송을 시작하고 클라이언트는 서버에서 데이터를 받습니다.
  • 전송 종료: 파일 전송이 완료되면 클라이언트는 서버에 전송 종료를 알리는 메시지를 보냅니다. 서버는 전송 완료를 확인하는 메시지로 응답합니다.
  • 연결 종료: 파일 전송이 완료되면 클라이언트는 서버에 연결을 종료하라는 명령을 보낼 수 있습니다. 서버는 작별 메시지로 응답하고 연결을 닫습니다.

전반적으로 FTP는 인터넷을 통해 파일을 전송하는 간단하고 안정적인 방법을 제공합니다. 그러나 FTP는 로그인 자격 증명과 파일 데이터를 일반 텍스트로 보내기 때문에 안전하지 않으며 공격에 취약할 수 있습니다. 안전한 파일 전송을 위해 SFTP(SSH 파일 전송 프로토콜) 또는 FTPS(SSL을 통한 FTP)를 권장합니다.

FTP 서버의 종류

FTP 서버는 FTP를 통해 파일을 주고받을 수 있도록 컴퓨터에서 실행되는 프로그램이며, FTP 클라이언트는 컴퓨터에서 실행되어 FTP 서버에 연결하고 파일을 전송할 수 있도록 하는 프로그램입니다.

다음을 포함하여 Linux에 설치할 수 있는 여러 유형의 FTP 서버가 있습니다.

  • proftp: 구성하기 쉽고 다양한 인증 방법을 지원하는 오픈 소스 FTP 서버입니다.
  • vsftp: 보안을 위해 설계된 경량 FTP 서버로 chroot 감옥 및 SSL/TLS 암호화와 같은 기능이 있습니다.
  • Pure-FTPd: 다양한 인증 방법, 가상 사용자 및 SSL/TLS 암호화를 지원하는 안전하고 가벼운 무료 FTP 서버입니다.
  • Wu-FTPd: 아직 사용 중이지만 적극적으로 유지 관리되지 않고 보안 기능이 제한된 이전 FTP 서버입니다.
  • Tftpd: 네트워크 환경에서 파일을 전송하는 데 일반적으로 사용되는 간단한 TFTP(Trivial File Transfer Protocol) 서버입니다.

이러한 각 FTP 서버에는 고유한 장단점이 있으므로 보안 요구 사항, 구성 용이성 및 원하는 기능과 같은 요소를 기반으로 요구 사항에 가장 적합한 서버를 선택하는 것이 중요합니다.

FTP 클라이언트

다음을 포함하여 FTP 서버에 연결하는 데 사용할 수 있는 여러 유형의 FTP 클라이언트가 있습니다.

  • 명령줄 클라이언트: Linux 및 Windows의 기본 제공 ftp 명령과 같이 터미널 또는 명령 프롬프트에서 실행할 수 있는 텍스트 기반 FTP 클라이언트입니다.
  • 그래픽 클라이언트: FileZilla, WinSCP 및 Cyberduck과 같이 쉽게 사용할 수 있도록 그래픽 사용자 인터페이스(GUI)가 있는 FTP 클라이언트입니다.
  • 웹 기반 클라이언트: net2ftp 및 FTPbox와 같이 웹 브라우저에서 실행되는 FTP 클라이언트입니다.
  • 모바일 클라이언트: FTPManager 및 AndFTP와 같이 모바일 장치에서 실행되는 FTP 클라이언트입니다.

이러한 각 FTP 클라이언트에는 고유한 장단점이 있으므로 사용 용이성, 필요한 기능 및 운영 체제 또는 장치와의 호환성과 같은 요소를 기반으로 요구 사항에 가장 적합한 것을 선택하는 것이 중요합니다.

서브목차