이 페이지의
FTP ALG
파일 전송 프로토콜은 일반적으로 IP 네트워크를 통해 파일을 교환하는 방법으로 널리 사용되고 있습니다. FTP ALG는 포트, PASV 및 227 명령을 모니터링합니다. 필요에 따라 IP, 포트 또는 디바이스의 메시지 및 게이트 열기 모두에서 NAT를 수행합니다.
FTP ALG 개요
FTP(File Transfer Protocol)는 널리 사용되고 있으며 일반적으로 IP 네트워크를 통해 파일을 교환하는 방법입니다. 주요 제어 연결 이외에도 클라이언트와 서버 간의 데이터 전송을 위해 데이터 연결이 이루어집니다. 호스트, 포트 및 방향은 제어 채널을 통해 협상됩니다.
활성 모드 FTP의 경우, Junos OS stateful 방화벽 서비스는 서버가 연결하는 IP 주소 및 포트 번호를 제공하는 포트 명령에 대한 클라이언트 투 서버 애플리케이션 데이터를 검사합니다. 패시브 모드 FTP의 경우, Junos OS stateful 방화벽 서비스는 PASV 명령에 대한 클라이언트 투 서버 애플리케이션 데이터를 검사한 다음 클라이언트가 연결하는 IP 주소와 포트 번호가 포함된 227 응답에 대해 서버 간 응답을 검사합니다.
FTP는 ASCII의 주소와 포트 번호를 나타냅니다. 따라서 주소와 포트를 다시 작성하면 TCP 시퀀스 번호가 변경될 수 있으며, 이후 NAT 서비스는 모든 후속 패킷에서 시퀀스 NAT를 수행하여 이 델타를 SEQ 및 ACK 번호로 유지해야 합니다.
FTP ALG는 다음을 지원합니다.
동적 데이터 연결을 위해 데이터 포트 및 방화벽 권한을 자동으로 할당
액티브 모드와 패시브 모드 모두에서 제어 연결 모니터링
적절한 NAT 주소 및 포트 정보로 제어 패킷 재작성
NAT-PT(Network Address Translation, Protocol Translation)
보안 메커니즘으로서의 TLS(Transport Layer Security)
라우팅을 위한 IPv6 FTP ALG
포트/PASV 요청 및 FTP의 해당 200/227 응답은 호스트가 FTP 데이터 연결을 수신하는 TCP 포트를 발표하는 데 사용됩니다.
이러한 요청 및 응답에는 EPRT/EPSV/229 명령이 사용됩니다. FTP ALG는 이미 EPRT/EPSV/229를 지원하지만 IPv4 주소에만 해당됩니다.
Junos OS 릴리스 10.4에서는 IPv4 및 IPv6 주소를 모두 지원하도록 EPRT/EPSV/229 명령이 업데이트되었습니다.
FTP ALG는 사전 할당된 objcache를 사용하여 세션 쿠키를 저장합니다. IPv4 및 IPv6 주소가 FTP ALG에서 모두 지원되면 세션 쿠키 구조는 256비트(32바이트)로 확대되어 IPv6 주소를 저장합니다.
IPv6를 위한 FTP ALG 지원
FTP ALG는 FTP 제어 채널의 명령 및 응답을 모니터링하여 신실적 정확성을 확인하고 해당 핀홀을 열어 데이터 채널 연결이 설정될 수 있도록 합니다. Junos OS 릴리스 10.4에서 FTP ALG는 IPv4 라우팅, IPv6 라우팅 및 NAT 모드만 지원합니다. Junos OS 릴리스 11.2 이상에서 FTP ALG는 IPv6 NAT 및 NAT-PT 모드도 지원합니다.
FTP 명령 이해하기
FTP ALG는 FTP 제어 채널의 명령 및 응답을 모니터링하여 신실적 정확성을 확인하고 해당 핀홀을 열어 데이터 채널 연결이 설정될 수 있도록 합니다. Junos OS Release 10.4에서 FTP ALG는 IPv4 라우팅 및 NAT 모드와 IPv6 라우팅 모드만 지원합니다. Junos OS 릴리스 11.2 이상에서 FTP ALG는 IPv6 NAT 및 NAT-PT 모드도 지원합니다.
포트 명령
포트 명령은 활성 FTP 모드에서 사용됩니다. 포트 명령은 서버가 연결해야 하는 주소와 포트 번호를 지정합니다. 이 명령을 사용하면 인수는 32비트 인터넷 호스트 주소와 16비트 TCP 포트 주소의 연결입니다. 주소 정보는 8비트 필드로 나뉘며 각 필드의 값은 10진수로 전송됩니다(문자 문자열 표현). 쉼표로 필드가 분리됩니다.
다음은 h1이 인터넷 호스트 주소의 가장 높은 순서인 8비트인 샘플 포트 명령입니다.
포트 h1,h2,h3,h4,p1,p2
PASV 명령
PASV 명령은 서버가 서버의 기본 데이터 포트가 아닌 데이터 포트를 수신 대기하고 다른 연결을 시작하는 대신 연결을 기다릴 것을 서버에게 요청합니다. PASV 명령에 대한 응답에는 서버가 수신 중인 호스트 및 포트 주소가 포함됩니다.
확장된 FTP 명령어
확장 FTP 명령은 FTP가 IPv4 이외의 네트워크 프로토콜에 대한 데이터 연결 단말 장치 정보를 통신할 수 있는 방법을 제공합니다. 확장 FTP 명령은 RFC 2428에 지정됩니다. RFC 2428에서 확장된 FTP 명령어 EPRT 및 EPSV는 FTP 명령 포트와 PASV를 각각 대체합니다.
EPRT 명령
EPRT 명령어로 데이터 연결에 대한 확장 주소의 규격을 허용합니다. 확장 주소는 네트워크 프로토콜과 네트워크 및 전송 주소로 구성되어야 합니다.
EPRT의 형식은 다음과 같습니다.
EPRT<space><d><net-prt><d><net-addr><d><tcp-port><d>
매개 변수 |
설명 |
---|---|
net-prt |
IANA에서 정의한 주소 제품군 번호입니다. |
net-addr |
프로토콜별 네트워크 주소 문자열 |
tcp 포트 |
호스트가 데이터 연결을 수신하는 TCP 포트 번호입니다. |
구분 기호 |
구분 기호 문자는 33-126 범위의 ASCII 문자 중 하나여야 합니다. 문자 "|"(ASCII 124)를 권장합니다. |
다음 명령은 IPv4 주소를 사용하여 TCP 포트 6275에서 132.235.1.2를 호스트하는 데이터 연결을 여는 서버를 지정하는 방법을 보여줍니다.
EPRT |1|132.235.1.2|6275|
다음 명령은 IPv6 네트워크 프로토콜과 네트워크 주소를 사용하여 포트 5282에서 TCP 데이터 연결을 열 서버를 지정하는 방법을 보여줍니다.
EPRT |2|1080::8:800:200C:417A|5282|
이 모드에서 FTP ALG는 EPRT 명령에만 초점을 맞춥니다. EPRT 명령에서 IPv6 주소와 포트를 추출하고 핀홀을 엽니다.
EPSV 모드
EPSV 명령은 서버가 데이터 포트에서 수신 대기하고 연결을 기다릴 것을 요청합니다. 이 명령에 대한 응답에는 수신 대기 연결의 TCP 포트 번호만 포함됩니다.
응답 문자열 예는 다음과 같습니다.
Entering Extended Passive Mode (|||6446|)
확장된 주소를 사용하여 패시브 모드를 입력하기 위한 응답 코드는 229이어야 합니다. 229개의 페이로드에서 TCP 포트를 추출하고 핀홀을 여는 데 사용해야 합니다.
예: FTP ALG 구성
이 예에서는 FTP ALG에 대한 NAT-PT를 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전:
소스 NAT 풀의 모든 IP 주소에 대해 프록시 ARP를 구성합니다.
ALG for FTP의 개념에 대해 알아보십시오. FTP ALG 개요를 참조하십시오.
개요
이 예에서, ALG for FTP는 주니퍼 네트웍스 장비의 반대편에 있는 클라이언트와 서버 간에 FTP 트래픽을 모니터링하고 교환할 수 있도록 구성됩니다.
이 예에서는 FTP ALG에 대한 NAT-PT를 구성하는 방법을 보여줍니다.
구성
NAT 소스 풀 구성, NAT 정적 풀 및 규칙 세트
CLI 빠른 구성
예제의 이 섹션을 신속하게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여넣고, 줄 바꿈을 제거하고, 네트워크 구성에 필요한 세부 정보를 변경하고, 명령을 계층 수준에서 CLI [edit]
에 복사하여 붙여넣은 다음 구성 모드에서 입력 commit
합니다.
set security nat static rule-set rs1 from zone untrust set security nat source rule-set rs-source to zone trust set security nat source rule-set rs-source rule src-nat match source-address 3333::130/128 set security nat source rule-set rs-source rule src-nat match destination-address 40.0.0.211/32 set security nat source rule-set rs-source rule src-nat then source-nat interface set security nat static rule-set rs2 from zone untrust set security nat static rule-set rs2 rule r2 match destination-address 4444::141/128 set security nat static rule-set rs2 rule r2 then static-nat prefix 40.0.0.211/32
단계별 절차
다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. 그 방법에 대한 지침은 CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.
소스 NAT 풀을 구성하려면 다음을 수행합니다.
소스 NAT, 정적 NAT 및 인터페이스 NAT 규칙 세트를 만듭니다.
[edit ] user@host# set security nat source rule-set rs-source from zone untrust user@host# set security nat source rule-set rs-source to zone trust user@host# set security nat source rule-set rs-source rule src-nat match source-address 3333::130/128 user@host# set security nat source rule-set rs-source rule src-nat match destination-address 40.0.0.211/32 user@host# set security nat source rule-set rs-source rule src-nat then source-nat interface user@host# set security nat static rule-set rs2 from zone untrust user@host# set security nat static rule-set rs2 rule r2 match destination-address 4444::141/128 user@host# set security nat static rule-set rs2 rule r2 then static-nat prefix 40.0.0.211/32
정책을 사용하여 NAT-PT 애플리케이션에 연결합니다.
[edit] user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match source-address any user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match destination-address any user@host# set security policies from-zone trust to-zone untrust policy ftp-basic match application junos-ftp user@host# set security policies from-zone trust to-zone untrust policy ftp-basic then permit
결과
구성 모드에서 명령을 입력하여 구성을 show security nat
확인합니다. 출력이 의도한 구성을 표시하지 않는 경우 이 예제의 구성 지침을 반복하여 수정합니다.
user@host# show security nat static { rule-set rs2 { from zone untrust; rule r2 { match { destination-address 4444::141/128; } then { static-nat { prefix { 40.0.0.211/32 } } } } } }
[edit] user@host# show security policies from-zone untrust to-zone trust { policy ftp-basic { match { source-address any; destination-address any; application [ junos-ping junos-mgcp junos-ftp junos-rsh junos-h323 ]; } then { permit; } } } default-policy { permit-all; }
디바이스 구성을 완료한 경우 구성 모드에서 입력 commit
합니다.
확인
구성이 올바르게 작동하는지 확인하려면 다음 작업을 수행합니다.
NAT 소스 풀, NAT 정적 풀 규칙 세트 검증
목적
FTP ALG를 지원하는 데 사용되는 NAT 소스 풀 및 규칙 집합이 제대로 작동하는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show configuration security nat
.