FTP와 SFTP 소개 및 비교
Created 2024-07-01
Last Modified 2024-08-01
FTP(파일 전송 프로토콜)와 SFTP(SSH 파일 전송 프로토콜)는 네트워크를 통해 파일을 전송하는 두 가지 방법입니다. 이 두 프로토콜은 파일 전송을 위해 사용되지만, 보안, 인증 및 전송 방식에 있어서 차이점이 있습니다.
FTP (File Transfer Protocol)
FTP는 네트워크를 통해 파일을 전송하기 위해 사용되는 표준 프로토콜입니다. 클라이언트-서버 모델을 기반으로 하며, 주로 인터넷을 통해 파일을 업로드하거나 다운로드하는 데 사용됩니다.
주요 특징은 다음과 같습니다.
비암호화 전송
- 기본적으로 FTP는 데이터를 암호화하지 않고 전송합니다. 이로 인해 전송 중에 데이터가 도청될 가능성이 있습니다.
포트 사용
- FTP는 제어 연결을 위해 포트 21을 사용하고, 데이터 전송을 위해 별도의 포트를 사용합니다. 기본적으로 포트 20이 데이터 전송에 사용되지만, 이는 PASV(수동) 모드에서는 다를 수 있습니다.
명령어 기반
- FTP는 다양한 명령어를 사용하여 서버와 상호 작용합니다.
익명 접근
- 일부 FTP 서버는 익명 사용자 접근을 허용하여, 사용자 인증 없이 파일을 다운로드할 수 있게 합니다.
모드
- 액티브 모드 : 서버가 데이터 연결을 클라이언트에 직접 개설합니다.
- 패시브 모드 : 클라이언트가 데이터 연결을 서버에 개설합니다.
SFTP (SSH File Transfer Protocol)
SFTP는 SSH(보안 셸) 프로토콜을 통해 파일 전송을 수행하는 프로토콜로, FTP와는 다르게 데이터와 명령어를 암호화하여 전송합니다. 이는 SSH의 확장으로 간주될 수 있습니다.
주요 특징은 다음과 같습니다.
암호화 전송
- 모든 데이터 전송이 SSH 프로토콜을 통해 암호화되어 보안성이 높습니다. 이는 전송 중 데이터 도청 및 변조를 방지합니다.
단일 포트 사용
- SFTP는 SSH와 동일한 포트(기본적으로 포트 22)를 사용하여 제어 및 데이터 전송을 모두 수행합니다.
SSH 인증
- SFTP는 SSH 프로토콜을 사용하여 사용자 인증을 수행합니다. 이는 비밀번호 기반 인증, 공개 키 인증 등 다양한 인증 방법을 포함합니다.
명령어 기반
- SFTP는 자체 명령어 셋을 사용하여 파일 전송 작업을 수행합니다. 이는 FTP와 다르지만, 전송 작업은 비슷하게 수행됩니다.
보안 기능
- SFTP는 SSH의 보안 기능을 모두 상속받아 데이터 무결성 및 기밀성을 보장합니다.
주요 차이점
보안
- FTP : 데이터가 암호화되지 않은 상태로 전송되므로 보안에 취약합니다.
- SFTP : SSH를 통해 암호화된 채널로 데이터를 전송하므로 높은 보안성을 제공합니다.
포트 사용
- FTP : 제어 연결에 포트 21을 사용하며, 데이터 전송을 위해 추가 포트를 사용합니다.
- SFTP : 제어 및 데이터 전송 모두를 위해 포트 22를 사용합니다.
사용 용도
- FTP : 보안이 크게 요구되지 않는 환경에서 주로 사용됩니다.
- SFTP : 보안이 중요한 환경에서 주로 사용됩니다.
인증 방법
- FTP : 기본적으로 사용자 이름과 비밀번호를 사용한 간단한 인증 방식을 사용합니다.
- SFTP : SSH 프로토콜의 다양한 인증 방법을 사용합니다(예: 공개 키 인증).
마치며
FTP와 SFTP는 각각 파일 전송을 위한 유용한 도구이지만, 보안 요구사항에 따라 선택이 달라질 수 있습니다. 보안이 중요한 환경에서는 SFTP가 더 적합하며, FTP는 보안이 덜 중요한 환경에서 사용될 수 있습니다. 이 두 프로토콜의 장단점을 이해하고, 사용 환경에 맞게 적절한 프로토콜을 선택하는 것이 중요합니다.