FTP
FTP 포트 안내: 포트 20, 21에서 파일 전송
FTP 제어 및 데이터 연결 작동 방식, 수동 포트 범위가 중요한 이유, SFTP 또는 FTPS가 일반적으로 새로운 파일 전송 작업 흐름에 더 안전한 이유를 이해합니다.
- 기본 포트
- 20/21
- 프로토콜
- TCP
- 주요 용도
- 레거시 파일 전송
FTP 포트는 무엇인가요?
FTP(파일 전송 프로토콜)는 파일 업로드 및 다운로드를 위한 레거시 프로토콜입니다. FTP는 일반적으로 제어 연결에 TCP 포트 21을 사용합니다. 활성 FTP에서는 TCP 포트 20이 서버의 데이터에 사용될 수 있습니다. 수동 FTP에서는 서버가 구성된 수동 데이터 포트 범위를 엽니다.
포트 21은 FTP 제어 포트입니다.
클라이언트는 TCP 21에 연결하여 인증, 디렉터리 나열, 업로드 요청, 다운로드 요청 및 데이터 연결 개방 방법 협상을 수행합니다.
데이터 포트는 활성 또는 수동 모드에 따라 다릅니다.
FTP는 파일 데이터가 명령과 별도의 연결을 통해 이동하는 경우가 많기 때문에 최신 프로토콜보다 방화벽이 더 어렵습니다.
FTP 작동 방식
FTP는 명령을 파일 데이터와 분리합니다. 클라이언트는 TCP 21에서 서버에 연결하고 로그인한 후 목록, 검색, 저장, 이름 바꾸기 또는 삭제와 같은 명령을 보냅니다. 파일 목록 및 전송에는 별도의 데이터 연결이 사용됩니다.
이러한 설계는 기존 네트워크에서는 적합하지만 NAT, 방화벽 및 클라우드 보안 그룹에 문제를 일으킵니다. 포트 검사기는 포트 21에 연결할 수 있는지 여부를 표시할 수 있지만 성공적인 파일 전송은 허용되는 데이터 채널에 따라 달라집니다.
액티브 FTP와 패시브 FTP
활성 FTP에서 클라이언트는 서버의 제어 포트에 연결한 다음 서버는 클라이언트에 대한 데이터 연결을 다시 엽니다. 이러한 역방향 연결은 NAT 또는 엄격한 클라이언트 방화벽을 통해 실패하는 경우가 많습니다.
패시브 FTP에서는 클라이언트가 서버에 대한 제어 연결과 데이터 연결을 모두 엽니다. 수동 모드는 인터넷 연결 FTP에 더 일반적이지만 서버는 정의된 수동 포트 범위를 게시해야 하며 방화벽은 해당 범위를 허용해야 합니다.
FTP 대 FTPS 대 SFTP
일반 FTP는 사용자 이름, 비밀번호, 명령 또는 파일 내용을 암호화하지 않습니다. FTPS는 FTP에 TLS를 추가하지만 여전히 FTP 제어 및 데이터 채널 모델을 유지합니다. SFTP는 다릅니다. 일반적으로 TCP 22에서 SSH를 통해 실행되며 FTP 포트를 사용하지 않습니다.
새로운 배포의 경우 SFTP는 방화벽 및 작동이 더 간단한 경우가 많습니다. 파트너 호환성을 위해 FTPS가 필요할 수 있습니다. 일반 FTP는 격리된 레거시 워크플로로 제한하거나 가능하면 교체해야 합니다.
FTP를 열어야 하는 경우
레거시 파트너, 장치, 애플리케이션 또는 워크플로가 SFTP, FTPS, HTTPS 업로드, 개체 스토리지 또는 관리형 파일 전송 서비스를 사용할 수 없는 경우에만 FTP를 엽니다. 일반적인 예로는 이전 EDI 피드, 스캐너, 내장형 장치, 공급업체 통합 등이 있습니다.
의도적으로 공개 파일을 제공하고 엄격한 업로드 제어 기능이 있는 경우를 제외하고 공개 익명 FTP를 피하세요. 인터넷에 노출된 쓰기 가능 FTP는 악성 코드 준비, 데이터 도난, 저장소 오용 등으로 자주 악용됩니다.
FTP를 열기 전
FTP를 허용하기 전에 서버가 활성 모드, 수동 모드 또는 둘 다를 사용할지 결정하십시오. 패시브 포트 범위, 외부 IP 주소, 사용자 격리 모델, chroot 또는 감옥 동작, 로깅, 할당량 및 TLS 필요 여부를 정의합니다.
포트 21에 대한 TCP 검사는 제어 경로만 확인합니다. 수동 범위, NAT, TLS 검사 및 파일 시스템 권한이 여전히 전송을 중단시킬 수 있으므로 네트워크 외부에서 실제 업로드 및 다운로드를 테스트하세요.
Windows, Linux 및 클라우드 서버에서 FTP를 활성화하는 방법
Windows Server에서 IIS FTP는 FTP 또는 FTPS를 제공할 수 있습니다. 서버가 NAT 뒤에 있는 경우 사용자 격리, TLS 정책, 수동 포트 범위, 방화벽 규칙 및 외부 IP 설정을 구성합니다.
Linux에서는 vsftpd, ProFTPD, Pure-FTPd 등의 서버가 일반적입니다. 로컬 사용자 또는 가상 사용자, chroot 동작, 수동 포트 범위, FTPS를 사용하는 경우 TLS 인증서, TCP 21 및 데이터 포트에 대한 호스트 방화벽 규칙을 구성합니다.
클라우드 서버에서는 가능하면 필요한 소스만 허용하세요. TCP 21과 클라우드 보안 그룹 및 호스트 방화벽의 수동 범위를 엽니다. 좁은 수동 범위를 정의할 수 없으면 FTP를 깔끔하게 보호하기가 어렵습니다.
- 제어 경로: 클라이언트는 TCP 21에 도달해야 합니다.
- 데이터 경로: 수동 FTP에는 서버 측 수동 포트 범위가 필요합니다. 활성 FTP에는 서버-클라이언트 연결이 필요할 수 있습니다.
- ID 계층: 명명된 계정, 최소 권한, chroot 또는 사용자 격리 및 강력한 자격 증명을 사용합니다.
- 마이그레이션 계층: FTP가 남아 있는 이유를 문서화하고 SFTP, FTPS, HTTPS 업로드 또는 관리형 전송으로의 전환을 계획합니다.
FTP 포트 테스트 방법
TCP 21에 대한 외부 포트 확인부터 시작합니다. 제어 포트가 열려 있으면 네트워크 외부에서 실제 FTP 클라이언트로 테스트합니다. 로그인, 디렉토리 목록 작성, 업로드, 다운로드, 이름 바꾸기 및 삭제 동작을 적절하게 확인하십시오.
로그인은 작동하지만 디렉터리 목록 또는 전송이 중단되는 경우 수동 모드 설정, 수동 포트 범위, 외부 IP 광고, NAT, 클라우드 보안 그룹 및 TLS 설정을 검사하십시오. 많은 FTP 오류는 포트 21 오류가 아닌 데이터 채널 오류입니다.
일반적인 FTP 문제 해결 사례
포트 21이 닫히면 FTP 서비스가 중지되거나, 개인 인터페이스에 바인딩되거나, 호스트 방화벽에 의해 차단되거나, 클라우드 보안 그룹에 의해 거부될 수 있습니다. 포트 21이 열려 있지만 전송이 실패하는 경우 먼저 수동 포트나 NAT를 확인해야 합니다.
인증이 실패하면 사용자 이름 형식, 비밀번호 정책, 계정 잠금, chroot 권한, 파일 시스템 소유권, TLS 요구 사항 및 서버 로그를 검사합니다. 일부 클라이언트만 실패하는 경우 활성 모드와 수동 모드를 비교하고 클라이언트가 제한적인 NAT 뒤에 있는지 여부를 비교하십시오.
FTP 보안 체크리스트
자격 증명이나 개인 파일에는 일반 FTP를 사용하지 마세요. 가능하면 FTPS 또는 SFTP를 사용하고, 익명 업로드를 비활성화하고, 소스 IP를 제한하고, 사용자를 격리하고, 할당량을 설정하고, 자세한 전송 로그를 유지하세요.
FTP를 공개 상태로 유지해야 하는 경우 서버를 패치하고, 수동 포트를 제한하고, 실패한 로그인 및 업로드 볼륨을 모니터링하고, 업로드된 파일을 검사하고, 오래된 계정을 제거하세요. 소유자 및 마이그레이션 계획을 통해 FTP를 레거시 예외로 처리하세요.
자주 묻는 질문
FTP는 어떤 포트를 사용하나요?
FTP는 제어 연결을 위해 TCP 포트 21을 사용합니다. 활성 FTP는 서버 측 데이터 연결에 TCP 20을 사용할 수 있는 반면, 수동 FTP는 구성된 서버 측 수동 포트 범위를 사용합니다.
FTP는 안전한가요?
일반 FTP는 자격 증명이나 파일 내용을 암호화하지 않기 때문에 안전하지 않습니다. 민감한 전송에는 SFTP 또는 FTPS를 사용하세요.
FTP 포트 21이 열려 있는데 전송이 실패하는 이유는 무엇입니까?
데이터 연결이 차단된 상태에서도 제어 연결이 작동될 수 있습니다. 패시브 모드, 패시브 포트 범위, NAT, 외부 IP 설정, 방화벽, TLS 정책을 확인하세요.
SFTP는 FTP와 같은가요?
아니요. SFTP는 일반적으로 TCP 22에서 SSH를 통해 실행되는 다른 프로토콜입니다. FTP는 포트 21과 별도의 데이터 연결을 사용합니다.