예: 프래그먼트를 처리하기 위한 상태 비저장 방화벽 필터 구성
이 예는 패킷 조각을 처리하는 상태 비저장 방화벽 필터를 생성하는 방법을 보여줍니다.
요구 사항
스테이트리스 방화벽 필터를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
개요
이 예에서는 10.2.1.0/24에서 시작되어 BGP 포트로 향하는 단편화된 패킷을 수용하는 무상태 방화벽 필터를 생성합니다.fragment-RE
이 예에는 다음과 같은 방화벽 필터 용어가 포함되어 있습니다.
not-from-prefix-term
-–10.2.1.0/24에 속하지 않은 패킷을 폐기하여 방화벽 필터의 후속 용어가 10.2.1.0/24의 패킷에만 일치하도록 합니다.small-offset-term
- 방화벽 필터의 후속 용어가 패킷의 모든 헤더와 일치할 수 있도록 작은(1-5) 오프셋 패킷을 버립니다. 또한 이 용어는 방화벽 기능의 시스템 로깅 대상에 레코드를 추가합니다.not-fragmented-term
- BGP 프로토콜을 지정하는 대상 포트를 통해 단편화되지 않은 TCP 패킷을 수락합니다. MF 플래그가 설정되지 않고 프래그먼트 오프셋이 0인 경우 패킷은 프래그먼트화되지 않은 것으로 간주됩니다.first-fragment-term
- BGP 프로토콜을 지정하는 대상 포트가 있는 단편화된 TCP 패킷의 첫 번째 부분을 수락합니다.- 에 의해 삭제되지 않은 모든 조각을 받아들입니다. (패킷 조각 6–8191).
fragment-term
small-offset-term
그러나 에서 수락한 첫 번째 프래그먼트를 포함하는 패킷의 일부인 프래그먼트만 대상 디바이스에 의해 리어셈블됩니다.first-fragment-term
패킷 조각 오프셋은 1에서 8191까지 가능합니다.
명령을 사용하여 방화벽 필터 내에서 용어를 이동할 수 있습니다 .insert
자세한 내용은 Junos OS CLI 사용자 가이드의 "삽입"을 참조하십시오.inserthttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
토폴로지
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit]
계층 수준에서 명령을 CLI로 복사해 붙여 넣습니다.
set firewall family inet filter fragment-RE term not-from-prefix-term from source-address 0.0.0.0/0 set firewall family inet filter fragment-RE term not-from-prefix-term from source-address 10.2.1.0/24 except set firewall family inet filter fragment-RE term not-from-prefix-term then discard set firewall family inet filter fragment-RE term small-offset-term from fragment-offset 1-5 set firewall family inet filter fragment-RE term small-offset-term then syslog set firewall family inet filter fragment-RE term small-offset-term then discard set firewall family inet filter fragment-RE term not-fragmented-term from fragment-offset 0 set firewall family inet filter fragment-RE term not-fragmented-term from fragment-flags "!more-fragments" set firewall family inet filter fragment-RE term not-fragmented-term from protocol tcp set firewall family inet filter fragment-RE term not-fragmented-term from destination-port bgp set firewall family inet filter fragment-RE term not-fragmented-term then accept set firewall family inet filter fragment-RE term first-fragment-term from first-fragment set firewall family inet filter fragment-RE term first-fragment-term from protocol tcp set firewall family inet filter fragment-RE term first-fragment-term from destination-port bgp set firewall family inet filter fragment-RE term first-fragment-term then accept set firewall family inet filter fragment-RE term fragment-term from fragment-offset 6-8191 set firewall family inet filter fragment-RE term fragment-term then accept
절차
단계별 절차
다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 Junos OS CLI 사용자 가이드를 참조하십시오.구성 모드에서 CLI 편집기 사용https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
무상태 방화벽 필터 구성하기:
무상태 방화벽 필터를 정의합니다.
[edit] user@host# edit firewall family inet filter fragment-RE
필터에 대한 첫 번째 용어를 구성합니다.
[edit firewall family inet filter fragment-RE ] user@host# set term not-from-prefix-term from source-address 0.0.0.0/0 user@host# set term not-from-prefix-term from source-address 10.2.1.0/24 except user@host# set term not-from-prefix-term then discard
필터에 대한 두 번째 용어를 정의합니다.
[edit firewall family inet filter fragment-RE] user@host# edit term small-offset-term
용어에 대한 일치 조건을 정의합니다.
[edit firewall family inet filter fragment-RE term small-offset-term] user@host# set from fragment-offset 1-5
용어에 대한 작업을 정의합니다.
[edit firewall family inet filter fragment-RE term small-offset-term] user@host# set then syslog discard
필터에 대한 세 번째 항을 정의합니다.
[edit] user@host# edit firewall family inet filter fragment-RE term not-fragmented-term
용어에 대한 일치 조건을 정의합니다.
[edit firewall family inet filter fragment-RE term not-fragmented-term] user@host# set from fragment-flags "!more-fragments" fragment-offset 0 protocol tcp destination-port bgp
용어에 대한 작업을 정의합니다.
[edit firewall family inet filter fragment-RE term not-fragmented-term] user@host# set then accept
필터에 대한 네 번째 항을 정의합니다.
[edit] user@host# edit firewall family inet filter fragment-RE term first-fragment-term
용어에 대한 일치 조건을 정의합니다.
[edit firewall family inet filter fragment-RE term first-fragment-term] user@host# set from first-fragment protocol tcp destination-port bgp
용어에 대한 작업을 정의합니다.
[edit firewall family inet filter fragment-RE term first-fragment-term] user@host# set then accept
필터의 마지막 용어를 정의합니다.
[edit] user@host# edit firewall family inet filter fragment-RE term fragment-term
용어에 대한 일치 조건을 정의합니다.
[edit firewall family inet filter fragment-RE term fragment-term] user@host# set from fragment-offset 6–8191
용어에 대한 작업을 정의합니다.
[edit firewall family inet filter fragment-RE term fragment-term] user@host# set then accept
결과
구성 모드에서 show firewall
명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
user@host# show firewall family inet { filter fragment-RE { term not-from-prefix-term { from { source-address { 0.0.0.0/0; 10.2.1.0/24 except; } } then discard; } term small-offset-term { from { fragment-offset 1-5; } then { syslog; discard; } } term not-fragmented-term { from { fragment-offset 0; fragment-flags "!more-fragments"; protocol tcp; destination-port bgp; } then accept; } term first-fragment-term { from { first-fragment; protocol tcp; destination-port bgp; } then accept; } term fragment-term { from { fragment-offset 6-8191; } then accept; } } }
디바이스 구성을 마쳤으면 구성 모드에서 commit
을 입력합니다.
검증
구성이 제대로 작동하는지 확인하려면 다음의 작업을 수행하십시오:
상태 비저장 방화벽 필터 구성 표시
목적
방화벽 필터의 구성을 확인합니다. 전체 구성을 표시하여 필터 용어의 흐름을 분석할 수 있습니다.
작업
구성 모드에서 show firewall
명령을 입력합니다.
의미
출력이 방화벽 필터의 의도된 구성을 보여주는지 확인합니다. 또한 패킷을 테스트하려는 순서대로 용어가 나열되어 있는지 확인합니다. CLI 명령을 사용하여 방화벽 필터 내에서 용어를 이동할 수 있습니다 .insert