SFTP 대 FTPS 대 FTP 이해

FTP 또는 파일 전송 프로토콜은 다양한 사용 사례에 사용할 수 있는 가장 널리 사용되는 데이터 전송 방법 중 하나입니다.

FTP에는 FTPS 및 SFTP로 알려진 다양한 보안 변형이 있으며 작동 방식에 약간의 미묘하고 미묘하지 않은 차이점이 통합되어 있습니다. 이러한 차이점은 데이터 교환 방식, 통신의 보안 수준 및 유형, 방화벽 고려 사항과 관련이 있습니다.

이러한 프로토콜의 작동 방식과 널리 사용되는 전송 메커니즘 간의 차이점을 알면 요구 사항에 가장 적합한 프로토콜을 선택하는 데 도움이 될 수 있습니다.

FTP

FTP는 원래 RFC 114에서 제안된 수십 년 된 파일 전송 프로토콜입니다. 이것은 나중에 오늘날 사용되는 표준인 RFC 959로 발전했습니다.

FTP는 정보를 교환하기 위해 두 개의 채널에서 작동합니다. 하나는 명령용이고 다른 하나는 데이터용입니다. FTP가 작동하려면 명령 채널과 데이터 채널이라는 두 개의 포트가 필요합니다.

명령 채널은 클라이언트의 연결을 수락하고 명령 전달을 처리하는 포트 21에서 작동합니다. 명령 채널은 클라이언트가 QUIT 명령을 보내거나 서버가 비활성 또는 기타 가능한 이유로 강제로 연결을 끊을 때까지 FTP 세션의 전체 기간 동안 열려 있습니다.

데이터 채널은 서버(수동 모드) 또는 클라이언트(능동 모드)에서 수신 대기하는 주문형 임시 포트를 사용합니다. 이 채널은 디렉토리 목록 및 파일 전송의 형태로 서버와 클라이언트 간에 실제 데이터를 공유하는 역할을 합니다.

명령 채널과 달리 데이터 채널은 파일 전송 기간 동안만 열려 있고 완료되는 즉시 데이터 채널이 닫힙니다. 여러 파일 또는 디렉터리 목록을 동시에 전송하려면 여러 데이터 채널 포트가 필요합니다.

FTP는 명령 채널과 데이터 채널이 모두 암호화되지 않은 형태로 정보를 전송하기 때문에 본질적으로 안전하지 않은 프로토콜로, 메시지 가로채기 공격을 사용하는 사람이 가로채기 쉽습니다.

  인터넷 트롤이란 무엇입니까? (및 트롤 처리 방법)

앞에서 설명한 것처럼 FTP는 명령 채널에 대해 서버 측의 포트 21/tcp에서 인바운드 연결이 필요합니다. 수동 포트 범위는 파일 전송 및 디렉터리 목록에 대해 정의되며 인바운드 연결을 허용합니다. 이 정의 프로세스는 사용 중인 FTP 서버에 따라 다를 수 있습니다. 자세한 내용은 해당 설명서를 참조하십시오. 클라이언트 측에서는 서버에 정의된 수동 포트 범위와 함께 포트 21/tcp의 아웃바운드 연결이 허용되어야 합니다.

FTP에서 인증

FTP 인증 정보는 초기 연결 설정 중에 명령 채널을 통해 전달됩니다. FTP는 인증을 위해 사용자 이름과 암호를 사용하거나 익명으로 사용하여 누구나 서버에 로그인하고 액세스할 수 있습니다.

능동 및 수동 FTP 모드

FTP는 연결 설정을 위해 능동 또는 수동 모드를 사용합니다.

활성 모드에서 사용자는 FTP 클라이언트의 임의 포트에서 서버의 FTP 포트 21/tcp로 연결하고 서버가 연결해야 하는 클라이언트 포트를 지정하는 PORT 명령을 보냅니다. 이 포트는 데이터 채널에 사용됩니다.

그런 다음 서버는 포트 20/tcp에서 이전에 클라이언트가 PORT 명령으로 지정한 클라이언트 포트로 연결합니다. 이 데이터 채널은 서버와 클라이언트 간의 파일 전송에 사용됩니다.

수동 모드에서 클라이언트는 FTP 클라이언트의 임의 포트에서 서버의 포트 21/tcp로 연결하고 PASV 명령을 보냅니다. 그런 다음 서버는 데이터 채널에 사용해야 하는 임의의 포트로 응답합니다. 그런 다음 클라이언트는 다른 임의의 포트를 사용하여 이전 단계에서 서버가 응답한 포트에 연결합니다. 이 데이터 채널 연결은 서버와 클라이언트 간의 파일 전송에 사용됩니다.

따라서 활성 모드에서 초기 연결 요청은 클라이언트에서 시작되고 데이터 채널 연결 요청은 서버에서 시작됩니다.

반면에 수동 모드에서는 초기 연결 요청과 후속 데이터 채널 요청이 모두 클라이언트에서 서버로 시작됩니다. 이 미묘한 차이는 때때로 방화벽이 인바운드/아웃바운드 연결 유형의 방향으로 인해 기존 FTP 요청을 허용/차단하는 방법에 영향을 줍니다.

FTPS

암호화되지 않은 데이터 전송 및 메시지 가로채기(main-in-the-middle) 공격과 함께 FTP와 관련된 위험을 감수할 의향이 있더라도 업계 요구 사항에 따라 비교적 훨씬 더 안전한 FTPS 및 SFTP와 같은 더 안전한 대안을 사용해야 합니다.

  iOS용 Gmail에서 텍스트 크기를 늘리는 방법

1990년, 보안 환경이 변화함에 따라 Netscape는 네트워크를 통한 통신을 보호하기 위해 SSL 또는 SSL(Secure Sockets Layer) 프로토콜을 만들었습니다. FTPS 또는 File Transfer Protocol Secure가 된 FTP에 SSL이 적용되었습니다. FTPS 또는 FTP/S는 일반적으로 포트 990/tcp에서 실행되지만 포트 21/tcp에서도 볼 수 있습니다. 마찬가지로 데이터 채널 포트 989/tcp의 경우 FTPS에 사용되는 공통 포트입니다. 명령 포트가 21/tcp인 경우 데이터 포트는 20/tcp로 예상됩니다.

FTP와 마찬가지로 FTPS는 명령 및 데이터 채널의 두 가지 통신 채널을 사용합니다. 데이터 채널을 FTPS로 암호화하거나 명령 및 데이터 채널을 모두 암호화하여 보안을 강화할 수 있습니다.

FTP와 마찬가지로 FTPS는 명령 및 데이터 채널에 여러 포트를 사용합니다. 따라서 초기 연결 및 인증 정보 전송을 위해 포트 21/tcp를 사용합니다. 나중에 클라이언트의 각 파일 전송 또는 디렉토리 목록 요청에 대한 데이터 채널을 설정하려면 다른 포트가 필요합니다. 따라서 FTP와 마찬가지로 방화벽에서 허용되는 포트 범위가 필요합니다.

FTPS에서 인증

FTPS 인증은 암호화를 위한 서버 인증서와 함께 사용자 이름 및 암호를 사용하여 작동합니다. FTPS 클라이언트가 서버에 연결할 때 서버의 인증서가 연결을 계속 진행하도록 신뢰할 수 있는지 확인합니다. 이 인증서는 클라이언트와 서버에서 요청할 수 있습니다.

SFTP

FTP 및 FTPS와 달리 SFTP(SSH 파일 전송 프로토콜)는 SSH(또는 Secure Shell)에 구축된 완전히 다른 프로토콜입니다. SFTP는 기본적으로 SSH와 동일한 포트 22/tcp에서 작동하지만 서버에서 사용자 지정 자유 포트를 사용하도록 구성할 수 있습니다.

SFTP는 SSH를 사용하여 파일을 보내고 받는 보안 FTP 프로토콜입니다. SSH가 완전히 암호화된 SFTP는 네트워크를 통해 파일을 전송하는 강력하고 안전한 방법입니다.

SFTP는 FTP 및 FTPS와 달리 단일 통신 채널을 사용하여 명령 및 데이터 트래픽을 전송하며 이 모든 것은 초기 인증과 함께 암호화된 형식으로 전달됩니다.

SFTP에서 인증

SFTP에서 인증은 간단한 사용자 이름과 암호를 통해 수행할 수 있지만 FTP와 달리 인증 세부 정보를 포함한 모든 정보는 네트워크를 통해 암호화되어 전달됩니다.

  Microsoft Excel에서 색상을 기반으로 셀을 잠그는 방법

SFTP는 또한 SSH 키 쌍, 개인 및 공개 키 조합을 사용하는 인증을 지원합니다. 여기서 클라이언트는 지정된 사용자에 대한 개인 키를 제공하고 서버는 인증에 성공하려면 해당 공개 키가 있어야 합니다. 사용자 이름/비밀번호 조합을 사용하는 것보다 더 안전합니다. SFTP 서버에서 두 가지 방법이 모두 구성된 경우 비밀번호와 SSH 키를 사용하여 동일한 사용자를 인증할 수 있습니다.

요약

이 문서에서는 FTP, FTPS 및 SFTP와 같은 널리 사용되는 다양한 파일 전송 프로토콜의 기본 기능을 요약하고 이러한 프로토콜 간의 미묘하고 주요 차이점을 강조합니다. 방화벽에서 작동하는 FTP/FTPS/SFTP 서버를 설정하는 데 필요한 포트를 설명하는 동시에 FTPS 및 SFTP와 같은 보다 안전한 프로토콜로 전환해야 할 필요성을 강조합니다.

여기서 FTP라고 하는 것은 이 기사에서 논의된 프로토콜을 말하는 것입니다. FTP가 된 이유는 수십 년이 지났고 심지어 최신 보안 버전도 일상적으로 사용하기 위해 지정된 이름 대신 FTP라고 하는 경우가 있습니다.

또한 최고의 FTP 서버 소프트웨어 및 FTP/SFTP 클라이언트를 알고 싶어할 수도 있습니다.