FTP는 1971년 처음 제안된 프로토콜로 데이터 전송 시 암호화를 제공하지 않는 “평문 기반 프로토콜”로 명령어 포트 (21번)를 통해 전송되는 제어 정보는 모두 암호화되지 않은 텍스트 형태로 오고간다.
Kaist FTP Server, 리눅스 ISO 이미지 파일 배포 등 누구에게나 공개된 오픈소스 소프트웨어 혹은 학술자료나, 암호화 연산 자체가 필요없는 초 경량형 임베디드, IoT장비와 같은 경우에는 FTP Protocol을 사용해도 상관없으나, 보안이 필요한 운영서버에서는 절대 사용해서는 안되는 프로토콜이다.
Cmd에 ftp protocol을 사용해 kaist ftp에 접속한 뒤, id : anonymous, pw : 1234를 입력한뒤, 와이어샤크에서 ftp 패킷을 캡처해 보았다.

다음 실험 결과와 같이 사용자가 입력한 ID와 PW가 그대로 노출되는 것을 확인 가능하다.
만약 동일한 네트워크망(LAN)에 있는 공격자가 스니핑(Sniffing)을 하거나, 라우터를 장악한 경우 해당 정보는 손쉽게 탈취당할 위험이있다.

보안 대책
FTP의 보안 취약점을 해결하기 위해서는 데이터 채널을 암호화하는 프로토콜로 전환해야 한다. 대표적으로 FTP에 SSH 암호화 기능을 결합해 모든 데이터 전송을 완전하게 암호화하는 SFTP(Secure File Transfer Protocol)가 사용된다.
기반이되는 SSH(Secure Shell) 프로토콜은 기본적으로 22번 포트를 사용하며 클라이언트 서버간 모든 통신을 암호화하여 안전한 원격 제어를 지원한다. 특히 AWS와 같은 클라우드 인프라를 운영하는 경우 보안을 위해 반드시 SSH를 통해 서버에 안전하게 접근하거나, AWS 콘솔에서 제공하는 관리 도구를 이용해 직접 제어해야 한다.
'Security' 카테고리의 다른 글
| [Security] Note1. Nginx Version 숨기기 (0) | 2026.02.14 |
|---|