Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

패시브 모드 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.12 06:22

패시브 모드

이름

패시브 모드

영문명

Passive Mode

분류

FTP 동작 모드

목적

데이터 연결 설정 방식

역할

클라이언트가 서버로부터 데이터 포트 연결을 수신

대안 모드

액티브 모드

기술 상세

동작 방식

클라이언트가 서버에 데이터 포트를 알려주면, 서버가 해당 포트로 클라이언트에 연결을 시도합니다.

연결 방향

서버 → 클라이언트 (데이터 채널)

주요 사용 환경

클라이언트 측에 방화벽이나 NAT이 있는 경우

포트 사용

클라이언트가 임의의 포트를 서버에 알림

보안 고려사항

클라이언트 측에서 추가 포트를 열어야 할 수 있음

RFC 문서

RFC 959

명령어 예시

PASV

장점

클라이언트 측 방화벽 통과가 상대적으로 용이

단점

클라이언트 측에서 데이터 포트를 추가로 관리해야 할 수 있음

1. 개요

FTP는 파일 전송을 위한 표준 네트워크 프로토콜이다. 전통적인 FTP 연결은 제어 연결과 데이터 연결, 두 개의 별도 채널을 사용한다. 패시브 모드는 이 데이터 연결을 설정하는 방식 중 하나로, 액티브 모드와 대비되는 개념이다.

패시브 모드에서 데이터 연결은 클라이언트가 서버에 요청하는 것이 아니라, 서버가 클라이언트에게 수동적으로 연결을 기다리는 방식으로 이루어진다. 이 모드는 클라이언트 측에 방화벽이나 NAT 장비가 존재하는 현대적인 네트워크 환경에서 특히 유용하게 작동한다.

주요 FTP 클라이언트 소프트웨어들은 대부분 패시브 모드를 기본 동작 모드로 설정하고 있다. 이는 대부분의 최종 사용자 환경이 방화벽 뒤에 있기 때문이다.

2. 패시브 모드의 작동 원리

패시브 모드는 FTP 프로토콜에서 데이터 연결을 설정하는 방식 중 하나이다. 표준 FTP 연결은 명령어를 주고받는 제어 연결과 실제 파일을 전송하는 데이터 연결로 구분된다. 패시브 모드에서는 데이터 연결의 초기화를 클라이언트가 담당한다. 이는 서버가 클라이언트에게 접속을 시도하는 액티브 모드와 근본적으로 다르다.

작동 과정은 다음과 같다. 먼저 클라이언트는 서버의 21번 포트로 제어 연결을 수립한다. 파일 전송이나 디렉토리 목록 조회와 같은 데이터 연결이 필요할 때, 클라이언트는 PASV 명령을 서버에 보낸다. 이 명령을 받은 서버는 데이터 전송에 사용할 임시 포트를 하나 열고, 해당 포트 번호와 자신의 IP 주소를 클라이언트에게 응답으로 알려준다.

그 후 클라이언트는 알려받은 서버의 IP 주소와 포트 번호로 새로운 데이터 연결을 직접 시작한다. 이 연결은 제어 연결과는 별개의 TCP 세션이다. 데이터 전송이 완료되면 해당 데이터 연결은 종료되지만, 제어 연결은 계속 유지되어 다음 명령을 기다린다. 이 방식은 연결의 주도권이 클라이언트에 있기 때문에 '패시브(수동적)'라는 이름이 붙었다.

단계

주체

동작

포트

1

클라이언트

서버의 21번 포트로 제어 연결 시작

클라이언트 임의 포트 → 서버 21번

2

클라이언트

PASV 명령 전송

제어 연결 경유

3

서버

임의의 포트(P)를 열고, IP와 포트(P) 번호를 클라이언트에 알림

서버 포트 P

4

클라이언트

서버의 IP와 포트(P)로 데이터 연결 시작

클라이언트 임의 포트 → 서버 포트 P

2.1. 데이터 연결 설정 과정

FTP 세션은 제어 연결과 데이터 연결, 두 개의 별도 TCP 연결로 구성된다. 패시브 모드에서의 데이터 연결 설정 과정은 클라이언트가 서버로부터 연결 정보를 받아 클라이언트 측에서 데이터 연결을 시작하는 방식으로 진행된다.

먼저, 클라이언트는 제어 연결(일반적으로 서버의 21번 포트)을 통해 PASV 명령을 서버에 전송한다. 이 명령에 대한 응답으로, FTP 서버는 데이터 전송을 위해 임시로 열어둔 포트 번호를 클라이언트에 알린다. 서버의 응답에는 IP 주소와 포트 번호가 포함되며, 이는 일반적으로 "227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)"와 같은 형식으로 전달된다. 괄호 안의 숫자 중 h1부터 h4는 서버의 IP 주소를, p1과 p2는 계산된 포트 번호를 나타낸다[1].

서버로부터 수신한 IP 주소와 포트 번호 정보를 바탕으로, 클라이언트는 데이터 연결을 시작한다. 클라이언트는 자신의 임의의 포트(1024번 이상)에서, 서버가 알려준 특정 포트로 새로운 TCP 연결을 시도한다. 이 연결이 성공적으로 수립되면, 파일 목록 조회(LIST 명령)나 파일 전송(RETR 또는 STOR 명령)과 같은 실제 데이터 전송이 이 채널을 통해 이루어진다.

단계

주체

동작

설명

1

클라이언트

PASV 명령 전송

제어 채널을 통해 서버에 패시브 모드 진입 요청

2

FTP 서버

227 응답 코드 및 포트 정보 반환

데이터 채널용 임시 포트 번호와 서버 IP를 클라이언트에 알림

3

클라이언트

데이터 연결 시작

수신한 IP와 포트로 새로운 TCP 연결(데이터 채널) 개시

4

FTP 서버

데이터 연결 수락

클라이언트의 연결 요청을 수락하여 데이터 채널 확립

5

양측

데이터 전송

확립된 데이터 채널을 통해 파일 또는 디렉토리 목록 전송

이 과정의 핵심은 데이터 채널의 연결 방향이다. 액티브 모드에서는 서버가 클라이언트에 접속하지만, 패시브 모드에서는 모든 TCP 연결(제어 연결과 데이터 연결 모두)의 개시 주체가 클라이언트가 된다. 이 방식은 클라이언트 측에 방화벽이나 NAT(네트워크 주소 변환) 장치가 있는 환경에서 특히 유리하게 작동한다.

2.2. 포트 협상 절차

패시브 모드에서의 포트 협상 절차는 FTP 세션의 제어 연결이 수립된 후, 데이터 전송을 위한 별도의 데이터 연결을 설정하기 위해 이루어진다. 이 과정은 서버가 클라이언트에게 데이터 연결에 사용할 IP 주소와 포트 번호를 알려주는 방식으로 진행된다.

구체적인 절차는 다음과 같다. 먼저, FTP 클라이언트는 PASV 명령을 FTP 서버에 전송한다. 이 명령을 수신한 서버는 데이터 채널을 위해 미리 열어둔 포트 범위 중 하나를 선택한다. 이후 서버는 클라이언트에게 227 Entering Passive Mode라는 응답을 보내는데, 이 응답 메시지에는 서버의 IP 주소와 선택된 포트 번호가 포함된다. 이 정보는 일반적으로 괄호 안에 6개의 숫자로 표현되며, 처음 4개는 IP 주소의 옥텟, 마지막 2개는 포트 번호를 256진법으로 표현한 값이다[2].

단계

주체

동작

설명

1

클라이언트

PASV 명령 전송

서버에 패시브 모드 데이터 연결 시작을 요청한다.

2

서버

포트 번호 선택

서버 측에 구성된 패시브 포트 범위 내에서 사용 가능한 포트를 선택한다.

3

서버

227 응답 전송

선택된 IP 주소와 포트 번호를 클라이언트에게 알린다.

4

클라이언트

데이터 연결 시작

응답으로 받은 IP 주소와 포트 번호로 서버에 새로운 TCP 연결을 시작한다.

포트 번호 협상이 완료되면, FTP 클라이언트는 서버가 알려준 IP 주소와 포트 번호로 직접 TCP 연결을 개시한다. 이 연결이 성공적으로 수립되면, 실제의 파일 목록 조회나 파일 업로드/다운로드와 같은 데이터 전송이 이 채널을 통해 이루어진다. 이 방식은 클라이언트가 서버에 대한 아웃바운드 연결을 시작하므로, 클라이언트 측의 방화벽이나 NAT 장비를 통과하기가 상대적으로 용이해진다.

3. 액티브 모드와의 비교

액티브 모드와 패시브 모드의 근본적인 차이는 데이터 연결을 설정하는 주체와 방향에 있다. 액티브 모드에서는 클라이언트가 데이터 연결을 위한 포트를 열어두고, 서버가 그 포트로 접속을 시도한다. 반면, 패시브 모드에서는 서버가 데이터 연결을 위한 포트를 열어두고, 클라이언트가 그 포트로 접속을 시도한다. 이 차이는 제어 연결(포트 21)과 데이터 연결이 별도로 이루어지는 FTP의 특성에서 비롯된다.

두 모드의 적합성은 네트워크 환경, 특히 방화벽과 NAT의 존재 여부에 따라 결정된다. 액티브 모드는 클라이언트 측에 방화벽이 있을 경우 문제를 일으킨다. 서버가 클라이언트의 지정한 임의의 높은 번호 포트(예: 1024 이상)로 들어오는 연결을 시도할 때, 클라이언트의 방화벽이 이 인바운드 연결을 차단하기 때문이다.

비교 항목

액티브 모드

패시브 모드

데이터 연결 주체

서버가 클라이언트에 연결

클라이언트가 서버에 연결

클라이언트 방화벽 환경

연결에 불리함

연결에 유리함

서버 방화벽 환경

연결에 유리함

구성이 필요함

NAT 환경

문제가 발생할 수 있음

문제가 적음

따라서, 현대의 대부분의 인터넷 환경에서는 패시브 모드가 표준으로 사용된다. 대부분의 개인 사용자는 라우터나 운영체제의 방화벽 뒤에 위치하기 때문에, 서버가 자신의 컴퓨터에 들어오는 데이터 연결을 시작할 수 있는 액티브 모드를 사용하기 어렵다. 패시브 모드는 클라이언트가 서버로 나가는 연결을 모두 시작하므로, 이러한 방화벽 제약을 우회할 수 있다.

3.1. 연결 방식 차이

액티브 모드에서는 FTP 서버가 데이터 연결을 위해 클라이언트에게 접속을 시도합니다. 서버는 제어 연결(일반적으로 포트 21)을 통해 클라이언트가 수신 대기 중인 IP 주소와 포트 번호를 알게 되고, 서버의 포트 20에서 해당 주소로 데이터 연결을 시작합니다.

반면, 패시브 모드에서는 데이터 연결의 방향이 반대입니다. 클라이언트가 데이터 전송을 요청하면, 서버는 자신이 사용할 IP 주소와 임시 포트 번호를 클라이언트에게 알려줍니다. 이후 클라이언트가 서버가 알려준 포트로 데이터 연결을 시작합니다. 이는 서버가 클라이언트 측으로의 연결을 시작하지 않음을 의미합니다.

이 차이는 방화벽 뒤에 있는 클라이언트의 연결 성공 여부에 결정적 영향을 미칩니다. 액티브 모드에서는 클라이언트 측 방화벽이 서버로부터의 들어오는 데이터 연결을 허용해야 하지만, 이는 일반적인 보안 정책과 맞지 않을 수 있습니다. 패시브 모드는 클라이언트가 모든 아웃바운드 연결을 시작하므로, 클라이언트 측 방화벽 구성이 간단해지는 경우가 많습니다.

비교 항목

액티브 모드

패시브 모드

데이터 연결 시작 주체

FTP 서버

FTP 클라이언트

서버 데이터 포트

고정(주로 20)

임시 포트 범위 내

클라이언트 역할

데이터 포트에서 수신 대기

서버의 임시 포트로 연결

방화벽 친화성

클라이언트 측 구성 복잡

서버 측 구성 복잡

3.2. 방화벽 환경에서의 적합성

액티브 모드에서는 서버가 클라이언트에게 데이터 연결을 초기화하기 때문에, 클라이언트 측 방화벽이나 NAT 장비가 외부에서 들어오는 이 연결을 차단할 수 있습니다. 이는 특히 클라이언트가 기업 네트워크나 개인용 방화벽 뒤에 있을 때 흔히 발생하는 문제입니다.

반면, 패시브 모드는 모든 데이터 연결을 클라이언트가 서버로 향해 초기화합니다. 따라서 클라이언트 측에서는 방화벽 정책이 아웃바운드 연결을 허용하기만 하면 되며, 인바운드 연결을 위해 특별한 포트를 열어둘 필요가 없습니다. 이 방식은 클라이언트 측의 방화벽 구성이 간소화되어 대부분의 최종 사용자 환경에 더 적합합니다.

그러나 패시브 모드는 서버 측에 새로운 부담을 줍니다. 서버는 클라이언트의 데이터 연결을 받아들일 수 있도록 넓은 범위의 포트(예: 1024 이상의 포트)를 방화벽에서 열어야 합니다. 이는 서버의 보안 정책을 더 복잡하게 만들고, 무단 접근 시도에 대한 노출 영역을 넓힐 수 있습니다.

결론적으로, 방화벽 환경에서의 적합성을 평가할 때, 액티브 모드는 서버 관리자에게 유리한 반면 패시브 모드는 클라이언트 사용자에게 유리한 구조입니다. 네트워크 설계자는 양측의 방화벽 정책과 보안 요구사항을 고려하여 적절한 모드를 선택하거나 혼용해야 합니다.

4. 패시브 모드의 장점

패시브 모드의 주요 장점은 클라이언트 측의 방화벽이나 NAT 장비 뒤에 있는 사용자가 파일 전송을 쉽게 수행할 수 있게 한다는 점이다. 액티브 모드에서는 서버가 클라이언트의 지정된 포트로 데이터 연결을 초기화해야 하지만, 많은 개인용 방화벽과 NAT 장치는 외부에서 들어오는 이러한 연결 시도를 차단한다. 패시브 모드는 이 연결 방향을 반대로 하여, 데이터 채널 연결을 클라이언트가 서버에게 알려준 포트로 시작하게 함으로써 이 문제를 해결한다. 결과적으로, 클라이언트 측의 아웃바운드 트래픽만 허용하는 일반적인 방화벽 정책 하에서도 파일 전송이 원활하게 이루어진다.

이 방식은 특히 가정이나 사무실 네트워크와 같이 클라이언트가 사설 IP 주소를 사용하는 NAT 환경에서 유용하다. 액티브 모드에서는 서버가 클라이언트의 사설 IP로 연결을 시도할 수 없어 실패하는 경우가 많다. 패시브 모드에서는 클라이언트가 서버의 공개 IP와 열려 있는 포트로 아웃바운드 연결을 설정하기 때문에, NAT 장치가 주소 변환을 정상적으로 수행할 수 있다. 이는 최종 사용자에게 별도의 복잡한 방화벽 포트 개방 설정 없이도 FTP를 사용할 수 있는 편의성을 제공한다.

또한, 패시브 모드는 서버 측에서 사용할 수 있는 포트 범위를 관리자에게 명시적으로 제어할 수 있게 한다. 이는 보안 정책 수립에 도움이 될 수 있다. 서버는 특정 포트 범위(예: 60000-61000)만을 패시브 모드 데이터 전송용으로 개방하도록 구성할 수 있으며, 클라이언트는 협상 과정에서 서버가 알려준 그 범위 내의 특정 포트에만 연결을 시도한다. 이는 불필요한 모든 포트를 개방하는 것보다 더 제한적인 접근 방식을 가능하게 한다.

4.1. 클라이언트 측 방화벽 호환성

FTP 패시브 모드는 데이터 연결을 클라이언트가 서버로 초기화하는 방식을 사용합니다. 이는 클라이언트 측에 설치된 방화벽이나 NAT 장비와의 호환성을 크게 향상시키는 핵심적인 장점입니다.

액티브 모드에서는 서버가 클라이언트의 지정된 포트로 데이터 연결을 시도합니다. 클라이언트 측 방화벽은 외부에서 들어오는 이러한 연결 시도를 예기치 않은 침입 시도로 간주하고 차단하는 경우가 많습니다. 반면 패시브 모드에서는 데이터 채널 연결이 클라이언트에서 서버의 특정 포트로 나가는 방향으로 설정됩니다. 대부분의 방화벽 정책은 내부에서 외부로 향하는 연결은 허용하도록 구성되어 있기 때문에, 이 방식은 기존 방화벽 규칙을 크게 변경하지 않고도 FTP 전송이 가능하게 합니다.

이러한 특성은 가정이나 기업 네트워크와 같이 방화벽 뒤에 위치한 일반 사용자에게 특히 유리합니다. 사용자는 복잡한 방화벽 포트 개방 설정 없이도 FTP 클라이언트 소프트웨어에서 패시브 모드를 선택하는 것만으로 파일 전송을 수행할 수 있습니다. 이는 FTP 서비스의 접근성을 높이고 네트워크 관리의 부담을 줄입니다.

연결 방식

데이터 연결 방향

클라이언트 측 방화벽 영향

액티브 모드

서버 → 클라이언트

외부에서의 인바운드 연결을 차단할 수 있음

패시브 모드

클라이언트 → 서버

아웃바운드 연결은 일반적으로 허용됨

따라서 패시브 모드는 최종 사용자의 네트워크 환경을 고려할 때 실용성과 호환성 측면에서 액티브 모드에 비해 명확한 이점을 가집니다.

4.2. NAT 환경에서의 유용성

NAT 환경은 하나의 공인 IP 주소를 여러 내부 장치가 공유하는 네트워크 구성이다. 이러한 환경에서 액티브 모드 FTP는 연결 설정에 심각한 문제를 겪는다. 액티브 모드에서 서버는 클라이언트에 지정된 포트로 데이터 채널 연결을 시도하지만, NAT 장비 뒤에 있는 클라이언트의 사설 IP 주소는 서버가 직접 접근할 수 없는 주소이기 때문이다. 이로 인해 데이터 연결이 실패하게 된다.

패시브 모드는 이 문제를 근본적으로 해결한다. 데이터 채널 연결을 클라이언트에서 서버로 시작하도록 역전시킴으로써, NAT 환경의 표준 동작 방식을 따르게 된다. 클라이언트는 서버가 알려준 IP 주소와 포트 번호로 외부 연결을 시작하는데, 이는 일반적인 웹 브라우징이나 다른 클라이언트-서버 응용 프로그램과 동일한 방식이다. 따라서 NAT 장비는 외부로 나가는 이 연결을 쉽게 추적하고, 돌아오는 데이터 흐름을 올바른 내부 클라이언트에게 전달할 수 있다.

다수의 사용자가 공유기나 기업용 방화벽 뒤에서 인터넷에 접속하는 일반적인 현대 네트워크 환경에서 패시브 모드의 이점은 매우 크다. 사용자는 복잡한 포트 포워딩 규칙을 설정하거나 방화벽 정책을 특별히 조정할 필요 없이 FTP 서버에 접속하여 파일을 전송할 수 있다. 이는 다음과 같은 시나리오에서 특히 유용하다.

환경

액티브 모드 문제점

패시브 모드 해결 방식

가정/소규모 사무실 네트워크 (공유기 사용)

서버가 클라이언트의 사설 IP로 연결 실패

클라이언트가 서버의 공인 IP로 연결 성공

대규모 기업 네트워크 (게이트웨이 방화벽)

보안 정책상 수동적 인바운드 연결 차단

아웃바운드 연결만 허용하는 정책과 호환

데이터센터의 서버

클라이언트가 다양한 NAT 뒤에 있을 수 있음

클라이언트의 네트워크 환경에 관계없이 표준화된 연결 제공

결과적으로, 패시브 모드는 NAT가 보편화된 인터넷 인프라에서 FTP 프로토콜이 계속 기능할 수 있도록 하는 핵심 메커니즘이다.

5. 패시브 모드의 단점 및 제약사항

패시브 모드는 클라이언트 측 방화벽이나 NAT 환경에서 유리한 대신, 서버 측에서는 추가적인 구성과 관리가 필요하다. 주요 단점은 서버 측 방화벽 구성의 복잡성과 사용 포트 범위의 관리 부담에서 비롯된다.

서버 운영자는 패시브 모드 연결을 허용하기 위해 서버의 방화벽에서 넓은 범위의 포트를 열어야 한다. 일반적으로 FTP 서버 소프트웨어는 사전 정의된 포트 범위(예: 50000-55000)를 사용하여 데이터 채널을 연다. 이는 서버 보안 정책을 약화시킬 수 있으며, 열려 있는 포트들에 대한 포트 스캔 공격의 표적이 될 위험이 있다. 또한, 많은 클라이언트가 동시에 연결할 경우 필요한 포트 수를 예측하고 충분히 넓은 범위를 할당해야 하는 부담이 있다.

단점

설명

서버 방화벽 구성 복잡성

넓은 포트 범위를 열어야 하여 보안 정책 관리가 어려워진다.

포트 범위 관리 부담

동시 연결 수에 따라 적절한 포트 범위를 예측하고 할당해야 한다.

보안 취약점 증가

열린 포트가 많아질수악 공격 표면(Attack Surface)이 넓어질 위험이 있다.

NAT 환경에서의 서버 측 문제

서버가 NAT 뒤에 있을 경우, 클라이언트에 알려줄 공인 IP와 포트를 추가로 설정해야 한다.

또한, FTP 서버 자체가 NAT 장비 뒤에 위치하는 경우 추가적인 문제가 발생한다. 서버는 데이터 채널용으로 클라이언트에게 자신의 사설 IP 주소가 아닌, 공인 IP 주소를 알려줘야 한다. 이는 대부분의 FTP 서버 소프트웨어에서 수동으로 설정해야 하는 경우가 많아 관리의 복잡성을 가중시킨다. 결국, 패시브 모드는 클라이언트의 편의를 위해 서버의 운영 및 보안 관리 부담을 증가시키는 트레이드오프(Trade-off) 관계에 있다.

5.1. 서버 측 방화벽 구성 필요

FTP 서버가 패시브 모드를 사용할 경우, 데이터 채널 연결은 클라이언트가 서버의 임의 포트로 접속하는 방식으로 이루어진다. 이로 인해 서버 측 방화벽은 제어 채널(일반적으로 21번 포트)뿐만 아니라, 데이터 전송에 사용될 수 있는 넓은 범위의 포트들에 대한 인바운드 연결도 허용하도록 구성되어야 한다. 서버 방화벽이 이 데이터 포트들을 열어두지 않으면, 클라이언트는 데이터 채널을 성공적으로 설정할 수 없어 파일 목록 조회나 파일 전송이 실패하게 된다.

이를 관리하기 위해 서버 관리자는 특정 포트 범위를 지정하여 FTP 서버가 해당 범위 내의 포트만 사용하도록 구성하는 것이 일반적이다. 예를 들어, 포트 50000에서 51000까지의 범위를 데이터 포트로 할당할 수 있다. 이후 서버 방화벽 정책에서는 이 지정된 포트 범위에 대한 TCP 인바운드 연결을 허용하는 규칙을 추가해야 한다. 이 구성은 서버의 보안 정책을 명확히 하고, 불필요하게 넓은 포트 범위를 개방하는 위험을 줄이는 데 도움이 된다.

구성 요소

설명

제어 채널 포트

기본 21번 포트. 방화벽에서 항상 허용해야 함.

데이터 포트 범위

서버에서 설정한 임의의 포트 범위 (예: 50000-51000).

필요한 방화벽 규칙

설정된 데이터 포트 범위에 대한 인바운드 TCP 연결 허용.

잘못 구성된 경우, 서버는 클라이언트에게 데이터 포트 정보를 정상적으로 알려주지만, 실제 해당 포트로의 연결은 방화벽에 의해 차단될 수 있다. 이는 연결 시간 초과나 "연결할 수 없음" 오류로 나타난다. 따라서 패시브 모드 운영의 핵심은 서버 측에서 방화벽과 FTP 서버 소프트웨어의 포트 설정을 정확하게 일치시키는 것이다.

5.2. 포트 범위 관리

패시브 모드에서 FTP 서버는 데이터 연결을 위해 클라이언트에게 사용할 임의의 포트 번호를 알려준다. 이로 인해 서버 측에서는 넓은 범위의 포트를 데이터 전송용으로 개방해야 할 필요가 생긴다. 일반적으로 서버 소프트웨어는 사전에 정의된 특정 포트 범위(예: 50000-55000) 내에서 포트를 동적으로 할당한다.

이러한 포트 범위를 효과적으로 관리하기 위해 서버 관리자는 몇 가지 사항을 고려해야 한다. 첫째, 할당할 포트 범위의 크기를 결정해야 한다. 범위가 너무 좁으면 동시 다중 연결 상황에서 사용 가능한 포트가 고갈될 수 있다. 둘째, 해당 포트 범위가 서버의 방화벽 정책에서 인바운드 연결을 허용하도록 구성되어 있어야 한다. 또한, NAT 장비 뒤에 서버가 위치한 경우, 해당 포트 범위에 대한 포트 포워딩 규칙이 설정되어야 정상적인 연결이 가능하다.

포트 범위 관리는 보안 측면에서도 중요하다. 넓은 범위의 포트를 열어두는 것은 잠재적으로 공격 표면을 증가시킬 수 있다. 따라서 불필요하게 광범위한 포트를 개방하기보다는, 예상되는 동시 연결 수를 고려하여 필요한 최소한의 범위만 설정하는 것이 좋다. 일부 고급 FTP 서버 구현체는 포트 사용을 모니터링하고 비정상적인 연결 시도를 차단하는 기능을 제공하기도 한다[3].

6. 패시브 모드 설정 방법

FTP 서버에서 패시브 모드를 활성화하려면 서버 소프트웨어의 설정 파일을 수정해야 합니다. 일반적으로 사용할 포트 범위를 지정하는 것이 핵심이다. 예를 들어, vsftpd 서버의 경우 pasv_min_port와 pasv_max_port 지시어를 설정 파일에 추가하여 패시브 모드 연결에 사용할 포트의 최소값과 최대값을 정의한다. ProFTPD나 FileZilla Server와 같은 다른 서버 소프트웨어도 유사한 설정 옵션을 제공한다. 서버가 이 포트 범위를 클라이언트에게 알리게 되며, 서버 측 방화벽에서 이 전체 포트 범위에 대한 인바운드 연결을 허용하도록 구성해야 정상 작동한다.

클라이언트 측에서는 특별한 설정이 거의 필요하지 않다. 대부분의 현대 FTP 클라이언트 소프트웨어는 기본적으로 패시브 모드를 사용하도록 설정되어 있다. 사용자는 연결 설정 대화상자에서 "패시브 모드(PASV)" 옵션이 선택되어 있는지 확인하면 된다. 일부 클라이언트에서는 "수동 모드"라는 용어로 표시되기도 한다. 만약 클라이언트가 액티브 모드로 고정되어 있다면, 파일 전송이 실패할 수 있으므로 설정을 변경해야 한다.

FTP 서버 소프트웨어

설정 파일

주요 설정 지시어 (예시)

vsftpd

/etc/vsftpd.conf

pasv_min_port=60000

pasv_max_port=60100

ProFTPD

proftpd.conf

PassivePorts 60000 60100

FileZilla Server

관리 인터페이스

설정 대화상자의 "패시브 모드 설정" 섹션

설정을 완료한 후에는 FTP 서비스를 재시작하여 변경 사항을 적용해야 한다. 서버의 공인 IP 주소가 NAT 장비 뒤에 있는 경우, 설정 화면에서 "외부 IP 주소"를 명시적으로 지정해야 클라이언트가 올바른 주소로 데이터 채널을 연결할 수 있다.

6.1. FTP 서버 구성

FTP 서버에서 패시브 모드 지원을 활성화하려면 서버 소프트웨어의 설정 파일을 수정해야 합니다. 일반적으로 서버는 특정 포트 범위를 데이터 연결용으로 예약하고, 클라이언트에게 이 범위를 알려줍니다. 주요 설정 항목으로는 패시브 모드 활성화 플래그, 사용할 포트 범위의 최소값과 최대값, 그리고 서버의 외부 IP 주소(클라이언트가 연결할 주소) 지정이 포함됩니다.

서버 소프트웨어별로 설정 방법이 다릅니다. 널리 사용되는 vsftpd의 경우, 설정 파일(vsftpd.conf)에 다음과 같은 지시어를 추가하거나 수정합니다.

```

pasv_enable=YES

pasv_min_port=60000

pasv_max_port=60100

pasv_address=xxx.xxx.xxx.xxx

```

pasv_address는 서버가 공용 인터넷에 노출된 IP 주소로, NAT 환경에서 특히 중요합니다. ProFTPD나 Pure-FTPd와 같은 다른 서버도 유사한 설정 옵션을 제공합니다.

패시브 모드 포트 범위를 설정할 때는 서버의 방화벽 정책과 반드시 연동해야 합니다. 설정 파일에 정의한 pasv_min_port부터 pasv_max_port까지의 모든 포트는 서버의 방화벽에서 인바운드 연결을 허용하도록 열려 있어야 합니다. 이 포트 범위는 필요 최소한으로 제한하는 것이 보안상 좋은 관행입니다. 또한 서버가 다수의 클라이언트를 동시에 처리할 수 있도록 충분한 수의 포트를 할당해야 합니다.

6.2. 클라이언트 설정

대부분의 FTP 클라이언트 소프트웨어는 패시브 모드 사용을 기본값으로 설정하거나, 쉽게 전환할 수 있는 옵션을 제공한다. 연결 설정 시 '패시브 모드(PASV)' 또는 '수동 모드' 옵션을 활성화하면 된다. 일부 클라이언트에서는 '방화벽 친화적 모드'라는 명칭으로 표시되기도 한다.

주요 클라이언트별 설정 방법은 다음과 같다.

클라이언트

설정 위치 또는 방법

FileZilla

설정 → 연결 → FTP → 전송 모드 → '수동 모드' 선택

WinSCP

세션 설정 창 → 고급 → 환경 → '수동 모드 사용' 체크

명령줄 FTP

passive 명령어 입력 또는 연결 시 -p 옵션 사용

웹 브라우저

주소창에 ftp:// 대신 ftp://user:pass@host/ 형식으로 입력 시 일반적으로 패시브 모드로 시도함

클라이언트가 패시브 모드를 지원하지 않는 경우는 극히 드물다. 만약 클라이언트에서 패시브 모드로 설정했음에도 연결에 실패한다면, 서버 측이 패시브 모드를 지원하지 않거나, 서버의 패시브 모드 포트 범위가 방화벽에 의해 차단되었을 가능성이 있다. 이 경우 서버 관리자에게 문의해야 한다.

7. 보안 고려사항

패시브 모드 사용 시 서버가 임의의 포트를 클라이언트에 개방해야 하므로, 이는 포트 스캔에 노출될 위험을 증가시킨다. 공격자는 서버가 개방한 넓은 범위의 포트를 대상으로 취약점을 탐색하거나 무단 접근을 시도할 수 있다. 특히 서버 측 방화벽 정책이 허술할 경우, 이는 심각한 보안 위협이 될 수 있다.

이러한 위험을 완화하기 위해서는 서버 측에서 엄격한 방화벽 정책을 설정해야 한다. 일반적으로 FTP 서버 소프트웨어에서 패시브 모드용으로 사용할 포트 범위를 제한적으로 지정하고, 방화벽에서는 정확히 그 지정된 범위의 포트로만 인바운드 연결을 허용하는 규칙을 구성한다. 예를 들어, 포트 50000-51000 구간만을 패시브 모드 데이터 채널용으로 개방하는 방식이다.

또한, 상태 기반 방화벽을 사용하여 FTP 트래픽을 검사하는 것이 권장된다. 이는 FTP 제어 연결(일반적으로 포트 21)을 모니터링하고, 그 연결을 통해 협상된 패시브 모드 데이터 포트로의 연결만을 동적으로 허용하는 방식을 의미한다. 이렇게 하면 불필요하게 넓은 범위의 포트가 항상 열려 있는 상태를 방지할 수 있다. 최종적으로는 보다 강력한 암호화와 보안 기능을 제공하는 FTPS나 SFTP 같은 프로토콜로의 전환을 고려하는 것이 장기적인 보안 강화에 도움이 된다.

7.1. 포트 스캔 위험

패시브 모드에서 서버는 데이터 연결을 위해 클라이언트에게 사용할 임시 포트 번호를 알려준다. 이 과정에서 서버는 보통 사전에 구성된 넓은 범위의 포트(예: 1024-65535) 중 하나를 무작위로 선택하여 클라이언트에 통보한다. 이렇게 넓은 포트 범위를 열어두는 것은 잠재적인 포트 스캔 공격에 서버를 노출시킬 수 있다. 공격자는 열려 있는 이 포트들을 탐지하여 서비스 취약점을 찾거나, 비인가된 접근을 시도할 수 있다.

보다 구체적인 위험으로는 서버의 FTP 서비스가 예상보다 많은 수의 포트를 지속적으로 개방함으로써 공격 표면(Attack Surface)을 넓히는 점이 있다. 악의적인 사용자는 패시브 모드 FTP 서버가 데이터 전송용으로 개방하는 포트들을 스캔하여, 해당 포트에서 실행 중인 소프트웨어의 알려진 취약점을 악용하려 시도할 수 있다. 또한, 서버의 방화벽이 이 넓은 포트 범위에 대한 인바운드 연결을 모두 허용하도록 구성되어야 하므로, 실수로 다른 불필요한 서비스까지 외부에 노출될 가능성이 있다.

이러한 위험을 완화하기 위해 서버 관리자는 몇 가지 조치를 취할 수 있다. 가장 효과적인 방법은 패시브 모드에서 사용할 포트 범위를 가능한 한 좁게 제한하는 것이다. 예를 들어, 포트 50000-50010과 같이 10-20개 정도의 포트만 지정하여 개방한다. 이렇게 하면 스캔 가능한 포트 수가 크게 줄어들고, 방화벽 규칙 관리도 용이해진다. 또한, 방화벽에서 이 지정된 포트 범위에 대한 접근을 특정 클라이언트 IP 주소나 네트워크 대역으로만 제한하는 것이 좋다.

완화 조치

설명

효과

포트 범위 제한

데이터 연결용 포트를 최소한의 개수로 제한하여 구성함

스캔 대상 포트 수 감소, 관리 용이성 향상

방화벽 접근 제어

지정된 포트 범위에 대한 접근을 신뢰할 수 있는 클라이언트 IP로만 제한함

무단 접근 시도 차단

정기적인 감사 및 모니터링

패시브 모드 포트에 대한 연결 시도 로그를 주기적으로 점검함

이상 징후 조기 발견

일부 현대적인 FTP 서버 소프트웨어는 동적으로 포트를 할당하는 과정에서 보안을 강화하는 기능을 제공하기도 한다. 예를 들어, 각 세션에 대해 매우 짧은 시간 동안만 포트를 개방하거나, 연결 상태를 철저히 검증하는 메커니즘을 도입할 수 있다. 그러나 근본적으로 패시브 모드 자체가 내재한 이 위험은 FTP 프로토콜의 설계적 한계에서 비롯되므로, 보다 안전한 파일 전송을 위해서는 SFTP(SSH File Transfer Protocol)나 FTPS(FTP over SSL/TLS)와 같은 암호화된 프로토콜의 사용이 권장된다.

7.2. 방화벽 정책 설정

패시브 모드를 사용할 때 서버 측 방화벽 정책을 올바르게 구성하는 것은 보안과 기능성을 동시에 보장하는 핵심 요소이다. 패시브 모드는 데이터 채널 연결을 클라이언트가 서버의 특정 포트로 초기화하는 방식이므로, 서버는 제어 연결용 포트 21뿐만 아니라 데이터 전송에 사용될 일련의 포트 범위를 방화벽에서 열어둬야 한다. 이 포트 범위는 서버 소프트웨어에서 사전에 정의하며, 방화벽 규칙은 해당 범위의 모든 포트에 대해 인바운드 연결을 허용하도록 설정해야 한다.

잘못된 방화벽 정책은 연결 실패를 초래하거나 보안 취약점을 만들어낸다. 포트 범위를 지나치게 넓게 열면 불필요한 포트 스캔 공격에 노출될 위험이 증가한다. 따라서 최소 권한의 원칙에 따라, FTP 서버 애플리케이션에 필요한 최소한의 포트만 개방하는 것이 바람직하다. 일반적으로 사용되는 포트 범위는 50000~60000 또는 20000~30000 등이며, 이는 서버 설정에서 변경할 수 있다.

효과적인 방화벽 정책 설정을 위한 구체적인 단계는 다음과 같다.

설정 항목

설명 및 권장 사항

제어 채널 포트

기본 포트인 21번 TCP 포트를 인바운드 규칙으로 허용한다.

데이터 채널 포트 범위

서버 설정 파일(예: vsftpd.conf의 pasv_min_port, pasv_max_port)에 정의된 포트 범위 전체를 TCP 인바운드 규칙으로 허용한다.

출처 제한

보안을 강화하기 위해 데이터 채널 포트 범위에 대한 접근 출처를 특정 클라이언트 IP 대역으로 제한할 수 있다.

상태 기반 검사

방화벽이 FTP 프로토콜을 인식하고 관련 데이터 연결을 자동으로 허용할 수 있도록 상태 기반 검사(Stateful Inspection) 또는 FTP 애플리케이션 계층 게이트웨이(ALG) 기능을 활성화하는 것이 도움이 된다.

또한, 정기적으로 서버 로그와 방화벽 로그를 모니터링하여 비정상적인 접근 시도를 탐지하고, 설정된 포트 범위가 실제 사용 패턴에 적합한지 검토하는 것이 좋다. NAT 환경에서는 방화벽 규칙과 함께 포트 포워딩 설정이 정확히 이루어져야 하며, 클라이언트 측에서 패시브 모드를 명시적으로 선택하도록 안내하는 것이 연결 성공률을 높이는 방법이다.

8. 관련 문서

  • Wikipedia - File Transfer Protocol

  • 나무위키 - FTP

  • RFC 959 - File Transfer Protocol

  • Mozilla Developer Network - FTP

  • KISA - 파일전송 프로토콜(FTP) 보안 가이드

  • 국가기록원 - 기록관리시스템 연계(FTP) 표준 매뉴얼_%ED%91%9C%EC%A4%80_%EB%A7%A4%EB%89%B4%EC%96%BC.pdf)

리비전 정보

버전r1
수정일2026.02.12 06:22
편집자unisquads
편집 요약AI 자동 생성