Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ALG 개요

ALG(Application Layer Gateway)는 게이트웨이가 애플리케이션 계층 페이로드를 구문 분석하고 애플리케이션 서버에 대한 트래픽 허용 또는 거부 여부를 결정할 수 있도록 지원합니다. ALG는 애플리케이션이 데이터 연결을 여는 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 포트를 전달하기 위해 애플리케이션 계층 페이로드를 사용하는 FTP(Transfer Protocol) 및 다양한 IP 프로토콜과 같은 애플리케이션을 지원합니다.

ALG 개요

ALG(Application Layer Gateway)는 Junos OS를 실행하는 주니퍼 네트웍스 장치에서 SIP(Session Initiation Protocol) 또는 FTP와 같은 특정 프로토콜을 관리하도록 설계된 소프트웨어 구성 요소입니다. ALG 모듈은 스위치에서 애플리케이션 레이어 인식 패킷 처리를 담당합니다.

ALG 기능은 보안 정책에서 구성된 서비스 또는 애플리케이션에 의해 트리거될 수 있습니다.

  • 서비스는 애플리케이션 서비스(예: Telnet, FTP 및 SMTP)를 위한 Layer 4 정보(표준 및 허용 TCP 및 UDP 포트 번호 등)를 사용하는 애플리케이션 프로토콜을 식별하는 객체입니다.

  • 애플리케이션은 Layer 4 서비스에 매핑되는 레이어 7 애플리케이션을 지정합니다.

사전 정의된 서비스에는 이미 Layer 7 애플리케이션에 대한 매핑이 있습니다. 그러나 맞춤형 서비스의 경우 특히 ALG를 적용하려는 경우 서비스를 애플리케이션에 명시적으로 연결해야 합니다.

잘 알려진 포트로 향하는 패킷의 ALG는 서비스 유형에 따라 트리거됩니다. ALG는 지정된 트래픽을 가로채 분석하고 리소스를 할당하며 트래픽이 장치를 통해 안전하게 전달될 수 있도록 동적 정책을 정의합니다.

  1. 패킷이 장치에 도착하면 플로우 모듈은 정책에 설정된 보안 규칙에 따라 패킷을 전달합니다.

  2. 정책이 패킷을 허용하는 것으로 확인되면 관련 서비스 유형 또는 애플리케이션 유형이 할당되고 이러한 유형의 트래픽에 대한 세션이 생성됩니다.

  3. 패킷에 대한 세션이 발견되면 정책 규칙 일치가 필요하지 않습니다. 특정 서비스 또는 애플리케이션 유형에 지원되는 ALG 처리가 필요한 경우 ALG 모듈이 트리거됩니다.

또한 ALG는 패킷 페이로드에 내장된 IP 주소 및 포트 정보를 패킷에 검사하고 필요한 경우 NAT(Network Address Translation) 처리를 수행합니다. 메시지 버퍼는 패킷이 처리 준비가 된 경우에만 할당됩니다. 패킷이 페이로드 수정, NAT 수행, 클라이언트와 서버 간의 새로운 연결을 위한 핀홀 열기, 주니퍼 네트웍스 장비의 반대편에 있는 클라이언트와 서버 간 데이터 전송 등 ALG 처리를 완료한 후 버퍼가 해제됩니다.

jbuf의 최대 크기는 9Kb입니다. 메시지 버퍼 크기가 9Kb를 초과하면 전체 메시지가 ALG 패킷 처리기로 전송될 수 없습니다. 이로 인해 세션의 후속 패킷이 ALG 처리를 우회하여 트랜잭션 장애가 발생합니다. ALG 메시지 버퍼 최적화가 향상되어 대용량 메모리 소비를 줄입니다.

또한 ALG는 IP 주소 및 포트 번호에 대한 게이트를 열어 제어 및 데이터 세션에 대한 데이터 교환을 허용합니다. 제어 세션과 데이터 세션은 타임아웃 값과 동일한 값을 가지도록 결합하거나 독립적일 수 있습니다.

ALG는 섀시 클러스터에서 지원됩니다.

맞춤형 ALG 서비스 이해

기본적으로 ALG는 사전 정의된 서비스에 구속됩니다. 예를 들어, FTP ALG는 junos-ftp에 바인딩되고 RTSP ALG는 junos-rtsp 등과 연결됩니다.

사전 정의된 서비스에는 이미 Layer 7 애플리케이션에 대한 매핑이 있습니다. 그러나 맞춤형 서비스의 경우 특히 ALG를 적용하려는 경우 서비스를 애플리케이션에 명시적으로 연결해야 합니다.

사전 정의된 서비스를 정책에 적용하면 서비스와 일치하는 트래픽이 추가 처리를 위해 해당 ALG로 전송됩니다. 그러나 일부 상황에서는 다음을 달성하기 위해 사용자 지정 서비스를 정의해야 할 수도 있습니다.

  • ALG 핸들러를 활용하여 고객 지정 프로토콜, 대상 포트 등에서 특수 트래픽을 처리합니다.

  • 트래픽이 ALG와 결합된 사전 정의된 서비스와 일치할 때 트래픽을 허용하지만 ALG 프로세싱을 우회합니다.

  • 현재 ALG의 애플리케이션 세트에 더 많은 애플리케이션을 추가합니다.

다음 예제에서는 구성 계층에서 다양한 레벨을 탐색해야 합니다. 그 방법에 대한 지침은 CLI 사용자 가이드의 Configuration 모드에서 CLI Editor를 사용하는 것을 참조하십시오.

MS-RPC ALG를 예로 들면 다음과 같이 사용자 지정 서비스의 세 가지 사용이 아래에 설명되어 있습니다.

  • Utilize the ALG handler to process special traffic:

    추가 처리를 위해 TCP 대상 포트 6000을 이용한 트래픽이 MS-RPC ALG로 전송됩니다.

  • Permit traffic but bypass ALG processing:

    TCP 대상 포트 135를 사용하는 트래픽은 모든 ALG를 무시합니다.

  • Add more applications to an ALG’s application set—디바이스에 미리 정의되지 않은 MS-RPC 또는 Sun RPC 서비스와 같은 애플리케이션을 추가하려면 다음을 수행합니다.

    TCP, uuid e3514235-4b06-11d1-ab04-00c04fc2dcd2를 이용한 MS-RPC 데이터 트래픽은 사용자 정의 msrpc가 다른 사전 정의된 junos-ms-rpc** 애플리케이션과 함께 정책에 적용되면 허용됩니다.

라우팅, NAT 및 NAT-PT를 위한 IPv6 DNS ALG 이해

DNS(Domain Name System)는 ALG의 일부로 DNS 트래픽을 처리하고 DNS 쿼리 및 회신 패킷을 모니터링하며 DNS 플래그가 패킷이 응답 메시지임을 나타내는 경우 세션을 닫습니다.

DNS ALG는 Junos OS Release 10.0 및 이전 릴리스의 라우트 모드에서 IPv4를 지원합니다. Junos OS Release 10.4에서 이 기능은 라우팅, NAT(Network Address Translation) 및 NAT-PT(Network Address Translation-Protocol Translation)를 위한 DNS ALG에서 IPv6 지원을 구현합니다.

DNS ALG가 DNS 클라이언트로부터 DNS 쿼리를 수신하면 DNS 패킷에서 보안 검사가 수행됩니다. DNS ALG가 DNS 서버로부터 DNS 회신을 받으면 유사한 보안 검사가 수행되고 DNS 트래픽에 대한 세션이 종료됩니다.

NAT 모드의 IPv6 DNS ALG 트래픽

IPv6 NAT는 IPv4와 IPv6 주소가 지정된 네트워크 디바이스 간 주소 변환을 제공합니다. 또한 IPv6 호스트 간 주소 변환을 제공합니다. IPv6 호스트 간의 NAT는 유사한 방식으로 수행되며 IPv4 NAT와 유사한 용도로 수행됩니다.

DNS 트래픽이 NAT 모드에서 작동하는 경우 DNS ALG는 DNS 클라이언트가 프라이빗 네트워크에 있는 경우 DNS 응답의 퍼블릭 주소를 전용 주소로 변환하고, DNS 클라이언트가 공용 네트워크에 있는 경우 전용 주소를 공용 주소로 변환합니다.

Junos OS 릴리스 10.4 IPv6 NAT에서 지원:

  • 소스 NAT 변환

  • 대상 NAT 매핑

  • 정적 NAT 매핑

참고:

IPv6 DNS ALG NAT는 정적 NAT 매핑만 지원합니다.

NAT-PT 모드의 IPv6 DNS ALG 트래픽

IPv6 NAT-PT는 IPv4와 IPv6 주소가 지정된 네트워크 장치 간에 주소 할당 및 프로토콜 변환을 제공합니다. 변환 프로세스는 Stateless IP/ICMP Translation(SIIT) 방법을 기반으로 합니다. 그러나 각 통신의 상태와 컨텍스트는 세션 수명 동안 유지됩니다. IPv6 NAT-PT는 ICMP(Internet Control Message Protocol), TCP(Transmission Control Protocol) 및 UDP(User Datagram Protocol) 패킷을 지원합니다.

IPv6 NAT-PT는 다음과 같은 유형의 NAT-PT를 지원합니다.

  • 기존 NAT-PT

  • 양방향 NAT-PT

DNS 기반 메커니즘은 IPv6 주소를 IPv4 전용 서버에 동적으로 매핑합니다. NAT-PT는 DNS ALG를 사용하여 변환을 투명하게 수행합니다.

예를 들어, 내부 IPv6 네트워크를 사용하는 기업은 IPv6 주소가 없는 외부 IPv4 서버와 통신할 수 있어야 합니다.

동적 주소 바인딩을 지원하려면 DNS를 이름 해석에 사용해야 합니다. IPv4 호스트는 로컬 구성된 IPv4 DNS 서버에서 IPv6 노드의 이름을 조회한 다음 NAT-PT를 사용하여 디바이스를 통해 IPv6 DNS 서버로 쿼리를 전달합니다.

DNS 트래픽이 NAT-PT 모드에서 작동하는 경우 DNS ALG는 DNS 클라이언트가 IPv6 네트워크에 있고 서버가 IPv4 네트워크에 있고 그 반대의 경우도 마찬가지일 때 IPv4 주소와 IPv6 주소 사이의 DNS 응답 패킷에서 IP 주소를 변환합니다.

참고:

NAT-PT 모드에서는 DNS ALG에서 IPV4에서 IPV6 주소 변환만 지원됩니다. DNS ALG에서 NAT-PT 모드를 지원하려면 NAT 모듈이 NAT-PT를 지원해야 합니다.

DNS ALG가 DNS 클라이언트로부터 DNS 쿼리를 수신하면 DNS ALG는 DNS 패킷에 대해 다음과 같은 보안 및 상태 검사를 수행합니다.

  • 최대 DNS 메시지 길이 적용(기본값은 512바이트, 최대 길이는 8KB)

  • 도메인 이름 길이 255바이트 및 레이블 길이 63바이트 적용

  • DNS 메시지에서 압축 포인터가 발생하면 포인터가 참조하는 도메인 이름의 무결성을 검증합니다.

  • 압축 포인터 루프가 있는지 확인

DNS ALG가 DNS Server로부터 DNS 회신을 수신한 후 이 DNS 트래픽에 대한 세션이 닫힙니다.

FTP ALG의 IPv6 지원 이해

FTP(File Transfer Protocol)는 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 모드도 지원합니다.

EPRT 모드

EPRT 명령어로 데이터 연결에 대한 확장 주소의 규격을 허용합니다. 확장 주소는 네트워크 프로토콜과 네트워크 및 전송 주소로 구성되어야 합니다.

EPRT의 형식은 다음과 같습니다.

EPRT<space><d><net-prt><d><net-addr><d><tcp-port><d>

  • <net-prt>: IANA에서 정의한 주소 제품군 번호

  • <net-addr>: 네트워크 주소의 프로토콜별 문자열

  • <tcp-port>: TCP 포트 번호

다음은 IPv6에 대한 EPRT 명령 샘플입니다.

EPRT |2|1080::8:800:200C:417A|5282|

이 모드에서 FTP ALG는 EPRT 명령에만 초점을 맞춥니다. EPRT 명령에서 IPv6 주소와 포트를 추출하고 핀홀을 엽니다.

EPSV 모드

EPSV 명령은 서버가 데이터 포트에서 수신 대기 중이며 연결을 대기할 것을 요청합니다. 이 명령에 대한 응답에는 수신 대기 연결의 TCP 포트 번호만 포함됩니다.

응답 문자열 예는 다음과 같습니다.

참고:

확장된 주소를 사용하여 패시브 모드를 입력하기 위한 응답 코드는 229이어야 합니다. 229개의 페이로드에서 TCP 포트를 추출하고 핀홀을 여는 데 사용해야 합니다.

ALG를 위한 TAP 모드 지원 이해

TAP(Terminal Access Point) 모드는 스위치를 통해 미러 트래픽을 검사하는 대기 장치입니다. TAP 모드는 ALG 활성화 또는 비활성화 상태에 의존하지 않습니다. ALG 구성은 비 TAP 모드와 동일하게 유지됩니다.

TAP 모드에서 작동하도록 SRX 시리즈 디바이스를 구성하면 디바이스가 보안 로그 정보를 생성하여 감지된 위협, 애플리케이션 사용량 및 사용자 세부 정보를 표시합니다. 디바이스가 TAP 모드에서 작동하도록 구성되면 디바이스는 구성된 TAP 인터페이스에서만 패킷을 수신합니다. 구성된 TAP 인터페이스를 제외하고, 다른 인터페이스는 관리 인터페이스로 사용되거나 외부 서버에 연결된 일반 인터페이스로 구성됩니다. SRX 시리즈 디바이스는 수신 트래픽에 따라 보안 보고서 또는 로그를 생성합니다.

ALG는 페이로드 NAT와 같은 애플리케이션을 지원하고 데이터 트래픽을 동적으로 허용합니다.

참고:

TAP 모드에서 디바이스를 운영할 때 하나의 TAP 인터페이스만 구성할 수 있습니다.

TAP 모드에서 ALG 활성화 및 비활성화

이 항목에서는 TAP 모드에서 ALG 상태를 활성화 또는 비활성화하는 방법을 보여줍니다.

시작하기 전:

  • ALG용 Understanding TAP Mode Support 를 읽고 TAP 모드에 대한 ALG 지원에 대해 알아보십시오.

    • SRX300, SRX320, SRX340, SRX345, SRX380 및 SRX550M 디바이스의 기본 ALG 상태는 다음과 같습니다.

    • SRX4100 디바이스의 기본 ALG 상태는 다음과 같습니다.

  • 기본적으로 비활성화된 ALG를 사용하려면 다음 명령을 사용합니다.

    활성화된 ALG를 기본 상태로 되돌리려면 다음 명령을 사용합니다.

  • 기본적으로 활성화된 ALG를 비활성화하려면 다음 명령을 사용합니다.

    비활성화된 ALG를 기본 상태로 변경하려면 다음 명령을 사용합니다.

  • IKE ALG를 활성화하려면 다음 명령을 사용합니다.

    활성화된 IKE ALG를 기본 상태로 변경하려면 다음 명령을 사용합니다.