Server 운영 환경에서는 Application 배포, Log 관리, Backup 데이터 이동 등 다양한 상황에서 파일 전송 기능이 필요합니다.
대표적으로 사용되는 방식이 FTP(File Transfer Protocol)와 SFTP(SSH File Transfer Protocol)입니다.
두 기술 모두 Server와 Client 사이에서 파일을 주고받는 목적을 가지고 있지만 보안 방식과 동작 구조에는 큰 차이가 있습니다.
예:
Client↓File Transfer Protocol↓Server
FTP는 오래된 파일 전송 Protocol이며 SFTP는 SSH 기반의 보안 파일 전송 방식입니다.
| 구성 요소 | 역할 |
|---|---|
| FTP | 기본 파일 전송 Protocol |
| SFTP | SSH 기반 보안 파일 전송 |
| Client | 파일 요청 및 전송 |
| Server | 파일 저장 및 제공 |
| SSH | 암호화 통신 제공 |
SFTP와 FTP 구조를 이해하면 Linux Server 관리, Cloud Storage 운영, Application 배포 환경을 효과적으로 구성할 수 있습니다.
FTP(File Transfer Protocol)란?
FTP는 File Transfer Protocol의 약자로 Server와 Client 사이에서 파일을 전송하기 위해 사용하는 Network Protocol입니다.
기본 구조:
FTP Client↓FTP Server↓File Storage
사용자는 FTP Client 프로그램을 통해 Server에 접속하고 파일을 업로드하거나 다운로드합니다.
대표적인 FTP 활용:
- Web Server 파일 업로드
- Server Backup
- 대용량 파일 이동
- 내부 파일 공유
FTP 동작 방식
FTP는 Control Connection과 Data Connection 두 개의 연결을 사용합니다.
구조:
Client↓Control Connection↓FTP ServerClient↓Data Connection↓File Transfer
Control Connection
명령 전달을 담당합니다.
예:
- Login
- Directory 이동
- File 목록 확인
Data Connection
실제 파일 데이터를 전송합니다.
예:
- Upload
- Download
- File Transfer
FTP의 문제점
FTP는 오래된 Protocol이기 때문에 보안 측면에서 한계가 있습니다.
대표적인 문제:
데이터 암호화 부족
FTP는 기본적으로 데이터를 평문 형태로 전송합니다.
구조:
Username↓Password↓File Data↓Network
Network를 감청하면 정보가 노출될 수 있습니다.
계정 정보 노출 위험
FTP Login 과정에서:
- ID
- Password
가 암호화되지 않을 수 있습니다.
따라서 Internet 환경에서는 보안 문제가 발생할 수 있습니다.
SFTP(SSH File Transfer Protocol)란?
SFTP는 SSH 기반의 안전한 파일 전송 Protocol입니다.
FTP와 이름은 비슷하지만 동작 방식은 완전히 다릅니다.
구조:
Client↓SSH Encryption↓SFTP Server↓File Storage
모든 데이터가 SSH Tunnel을 통해 암호화됩니다.
SFTP 동작 방식
SFTP는 SSH Connection 위에서 동작합니다.
구조:
SFTP Client↓SSH Port 22↓SFTP Server
사용하는 기본 Port:
22
SSH 인증 방식을 사용하기 때문에 안전한 파일 전송이 가능합니다.
SFTP와 FTP 차이점
| 구분 | FTP | SFTP |
|---|---|---|
| 정식 명칭 | File Transfer Protocol | SSH File Transfer Protocol |
| 보안 | 암호화 없음 | SSH 암호화 |
| Port | 21 | 22 |
| 인증 | ID/Password | SSH 인증 |
| 전송 방식 | 별도 Control/Data 연결 | SSH Tunnel |
| 보안 수준 | 낮음 | 높음 |
SFTP와 FTPS 차이
FTP 보안을 강화한 방식에는 FTPS도 있습니다.
| 구분 | SFTP | FTPS |
|---|---|---|
| 기반 기술 | SSH | SSL/TLS |
| Port | 22 | 21 또는 990 |
| 암호화 방식 | SSH Tunnel | TLS Encryption |
| 관리 방식 | SSH 계정 | FTP 계정 |
SFTP와 FTPS는 모두 보안 파일 전송 방식이지만 기반 기술이 다릅니다.
Linux Server에서 SFTP 사용
Linux Server에서는 SSH 서비스가 실행되고 있다면 SFTP 사용이 가능합니다.
접속:
sftp user@server-ip
동작:
Client↓SSH Authentication↓SFTP Session↓File Transfer
SFTP 주요 명령어
접속 후:
현재 위치 확인:
pwd
Server 파일 확인:
ls
파일 다운로드:
get filename
파일 업로드:
put filename
접속 종료:
exit
FTP Server 운영 구조
FTP 환경:
Client↓FTP Server↓Storage
대표 FTP Server:
- vsftpd
- ProFTPD
Linux 환경에서 많이 사용됩니다.
SFTP Server 운영 구조
SFTP는 별도 FTP Server 설치보다 SSH 기반으로 운영됩니다.
구조:
User↓SSH Server↓SFTP Subsystem↓Storage
Linux OpenSSH 환경에서 기본적으로 제공됩니다.
SFTP 보안 설정 방법
운영 환경에서는 추가 보안 설정이 필요합니다.
권장:
SSH Key 인증 사용
Password 대신 Key 기반 인증을 사용할 수 있습니다.
구조:
Private Key↓Authentication↓SFTP Access
사용자 권한 제한
특정 Directory만 접근하도록 설정할 수 있습니다.
예:
User↓/upload Directory↓Restricted Access
Root Login 제한
보안을 위해 Root 직접 접속은 제한하는 것이 좋습니다.
Cloud 환경에서 파일 전송
Cloud 환경에서는 SFTP 대신 Object Storage를 사용하는 경우도 많습니다.
구조:
Application↓Cloud Storage↓Backup / Distribution
대표:
- AWS S3
- Azure Blob Storage
- Google Cloud Storage
대규모 환경에서는 파일 Server보다 Cloud Storage Architecture를 많이 사용합니다.
SFTP와 Server 운영
Server 관리에서는 다음 상황에서 SFTP가 활용됩니다.
- Application 배포 파일 전달
- Configuration 파일 이동
- Log 다운로드
- Backup 데이터 이동
특히 Linux Server 관리 환경에서는 SSH와 함께 가장 많이 사용하는 기능 중 하나입니다.
SFTP와 FTP 장애 분석
파일 전송 문제가 발생하면 다음 순서로 확인합니다.
Client↓Network 연결 확인↓Port 확인↓Authentication 확인↓Permission 확인↓File Path 확인
확인 항목:
- Firewall 설정
- SSH 서비스 상태
- 사용자 권한
- Disk 공간
SFTP와 FTP Best Practice
권장:
- Internet 환경에서는 SFTP 사용
- SSH Key 인증 적용
- 사용자 권한 최소화
- Log Monitoring 구성
- Backup 정책 운영
안전한 파일 전송 환경을 구축할 수 있습니다.
자주 묻는 질문
SFTP와 FTP는 같은 프로그램인가요?
아닙니다.
이름은 비슷하지만 FTP는 File Transfer Protocol이고 SFTP는 SSH 기반 파일 전송 Protocol입니다.
SFTP는 왜 Port 22를 사용하나요?
SFTP는 SSH 위에서 동작하기 때문에 SSH 기본 Port인 22번을 사용합니다.
FTP를 사용하면 안 되나요?
내부 Network처럼 제한된 환경에서는 사용할 수 있지만 Internet 환경에서는 암호화가 적용된 SFTP 사용을 권장합니다.
마무리
SFTP와 FTP는 모두 Server와 Client 사이에서 파일을 전송하는 기술이지만 보안 방식과 Architecture는 다릅니다.
| 구성 요소 | FTP | SFTP |
|---|---|---|
| 보안 | 낮음 | 높음 |
| 기반 기술 | FTP Protocol | SSH |
| Port | 21 | 22 |
| 암호화 | 지원하지 않음 | 지원 |
| 운영 환경 | 내부 환경 | Cloud 및 Production 환경 |
SFTP와 FTP 차이를 이해하면 Linux Server, Cloud Infrastructure, Application 배포 환경에서 안전한 파일 전송 Architecture를 설계할 수 있습니다.
함께 보면 좋은 글
- SFTP와 FTP 차이점은 무엇인가? 안전한 파일 전송 방식 비교하기
- SSH란 무엇인가? 원격 Server 관리 기술 이해하기
- Linux Permission denied 오류 해결 방법
- Linux File System 구조 이해하기
- AWS S3 Storage Architecture 완벽 가이드