목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

Snort 기능이 있는 규칙은 모든 Any를 허용하는 대로 구축됨

Lina 및 Snort 측에서 규칙이 처리되는 방식 확인

결론

관련 정보

소개

이 문서에서는 Lina 규칙이 FTD에 구축되는 방법과 Lina 및 Snort의 처리에 대해 설명합니다. 이 정보는 onbox(FDM) 및 offbox(FMC) 관리 모두에 유용합니다.

사전 요구 사항

요구 사항

Cisco에서는 다음 항목에 대한 지식을 권장합니다.

- FMC(Firepower Management Center)

- Firepower 디바이스 관리자(FDM)

- Firepower FTDv(Threat Defense Virtual)

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- FTDv 7.0.4

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

FMC는 Threat Defense 디바이스의 오프박스 관리자입니다.

FDM은 Threat Defense 디바이스의 온박스 관리자입니다.

Snort 기능이 있는 규칙은 모든 Any를 허용하는 대로 구축됨

Geolocation, URL(Universal Resource Locator) 필터, 애플리케이션 탐지 등과 같이 Snort 측에서 실행하는 기능으로 규칙을 생성할 경우, 허용되는 모든 규칙으로 Lina 측에 구축됩니다.

얼핏 보기에는 혼란스러울 수 있으며, FTD가 해당 규칙의 모든 트래픽을 허용하고 후속 규칙에 대한 규칙 일치 확인을 중지한다고 생각할 수 있습니다.

이 예에서는 애플리케이션 탐지기, URL 필터 및 지오로케이션 차단 규칙이 있습니다.

여기서는 Snort에 표시된 대로 GUI에 구성된 매개변수와 함께 올바른 규칙 명령문을 확인할 수 있습니다.

access-list NGFW_ONBOX_ACL remark rule-id 268435458: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435458: L7 RULE: testappid

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435458 ifc outside any ifc inside any rule-id 268435458

access-list NGFW_ONBOX_ACL remark rule-id 268435459: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435459: L7 RULE: testurl

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435459 any any rule-id 268435459

access-list NGFW_ONBOX_ACL remark rule-id 268435461: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435461: L5 RULE: testgeo

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435461 any any rule-id 268435461

이것이 Snort 측의 규칙 방식입니다.

268435458 deny 1 any any 2 any any any any (appid 948:5, 1079:5) (ip_protos 6)

# End rule 268435458

268435459 deny any any any any any any any any (urlcat 2027) (urlrep le 0) (urlrep_unknown 1)

268435459 deny any any any any any any any any (urlcat 2006) (urlrep le 0) (urlrep_unknown 1)

# End rule 268435459

268435461 deny 1 any any any any any any any (dstgeo 643)

# End rule 268435461

Lina 및 Snort 측에서 규칙이 처리되는 방식 확인

packet-tracer 명령이 이러한 종류의 규칙을 올바르게 처리하지 않으므로, 시스템 지원 추적 또는 시스템 지원 방화벽 엔진 디버그를 사용하여 이 wilth live 트래픽을 테스트해야 합니다.

지오로케이션 블록 규칙을 적중하기 위한 예입니다.

> system support trace

Enable firewall-engine-debug too? [n]: y

Please specify an IP protocol:

Please specify a client IP address:

Please specify a client port:

Please specify a server IP address:

Please specify a server port:

Monitoring packet tracer and firewall debug messages

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Packet 7: TCP 12****S*, 09/21-17:17:13.483709, seq 957225459, dsize 0

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Session: new snort session

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 AppID: service: (0), client: (0), payload: (0), misc: (0)

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Firewall: starting rule matching, zone 1 -> 1, geo 0(0) -> 643, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, user 9999997, no url or host, no xff

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Firewall: block rule, 'testgeo', force_block

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Stream: pending block, drop

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Policies: Network 0, Inspection 0, Detection 3

10.130.65.192 52459 -> <Geolocation block IP address>

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 New firewall session

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 app event with app id no change, url no change, tls host no change, bits 0x1

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Starting with minimum 3, 'testurl', and SrcZone first with zones 1 -> 1, geo 0 -> 643, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, svc 0, payload 0, client 0, misc 0, user 9999997

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 pending rule order 3, 'testurl', AppID for URL

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 rule order 3, 'testurl', action Block continue eval of pending deny

10.130.65.192 52460 ->

443 6 AS=0 ID=1 GR=1-1 match rule order 4, 'testgeo', action Block

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 MidRecovery data sent for rule id: 268435461, rule_action:4, rev id:1095042657, rule_match flag:0x0

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 deny action

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Deleting Firewall session

이러한 출력에서 볼 수 있듯이, Snort는 규칙에 대해 패킷 매개변수를 확인하고 Geolocation block 규칙과 매칭하면 흐름이 거부되고 흐름에 대한 세션이 삭제됩니다.

Lina 캡처의 추적에서 ACCESS-LIST 단계에서 적중할 것으로 예상한 지오로케이션 규칙 대신 첫 번째 permit any 규칙을 적중했음을 확인할 수 있습니다. 그러나 SNORT 단계에서 Snort가 지오로케이션 블록 규칙인 규칙 268435461을 적중한다는 판정을 확인할 수 있습니다.

testftd# show cap test trace packet 1

9 packets captured

1: 17:36:52.082011 10.130.65.192.53336 > <Geolocation block IP address>.443: SWE 316839441:316839441(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>

Phase: 1

Type: CAPTURE

Subtype:

Result: ALLOW

Config:

Additional Information:

MAC Access list

Phase: 2

Type: ACCESS-LIST

Subtype:

Result: ALLOW

Config:

Implicit Rule

Additional Information:

MAC Access list

Phase: 3

Type: INPUT-ROUTE-LOOKUP

Subtype: Resolve Egress Interface

Result: ALLOW

Config:

Additional Information:

Found next-hop 10.130.65.188 using egress ifc outside(vrfid:0)

Phase: 4

Type: ACCESS-LIST

Subtype: log

Result: ALLOW

Config:

access-group NGFW_ONBOX_ACL global

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435459 any any rule-id 268435459

access-list NGFW_ONBOX_ACL remark rule-id 268435459: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435459: L7 RULE: testurl

object-group service |acSvcg-268435459

service-object ip

Additional Information:

This packet will be sent to snort for additional processing where a verdict will be reached

Phase: 5

Type: NAT

Subtype: per-session

Result: ALLOW

Config:

Additional Information:

Phase: 6

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Config:

Additional Information:

Phase: 7

Type: NAT

Subtype: per-session

Result: ALLOW

Config:

Additional Information:

Phase: 8

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Config:

Additional Information:

Phase: 9

Type: FLOW-CREATION

Subtype:

Result: ALLOW

Config:

Additional Information:

New flow created with id 6902, packet dispatched to next module

Phase: 10

Type: EXTERNAL-INSPECT

Subtype:

Result: ALLOW

Config:

Additional Information:

Application: 'SNORT Inspect'

Phase: 11

Type: SNORT

Subtype:

Result: DROP

Config:

Additional Information:

Snort Trace:

00:50:56:96:D0:48 -> 00:50:56:B3:8C:E3 0800

10.130.65.192:53336 -> <Geolocation block IP address>:443 proto 6 AS=0 ID=1 GR=1-1

Packet 22: TCP 12****S*, 09/21-17:36:52.073696, seq 316839441, dsize 0

Session: new snort session

AppID: service: (0), client: (0), payload: (0), misc: (0)

Firewall: starting rule matching, zone 1 -> 1, geo 0(0) -> 643, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, user 9999997, no url or host, no xff

Firewall: block rule, id 268435461, force_block

Stream: pending block, drop

Policies: Network 0, Inspection 0, Detection 3

Verdict: blacklist

Snort Verdict: (black-list) black list this flow

Result:

input-interface: outside(vrfid:0)

input-status: up

input-line-status: up

output-interface: outside(vrfid:0)

output-status: up

output-line-status: up

Action: drop

Drop-reason: (firewall) Blocked or blacklisted by the firewall preprocessor, Drop-location: frame 0x000055b8a176d7b2 flow (NA)/NA

결론

컨피그레이션 및 라이브 트래픽 로그에서 볼 수 있듯이, Lina가 이러한 규칙을 Permit any로 표시하고 Lina 측에서 해당 규칙을 확인하더라도 심층 검사를 위해 패킷이 Snort로 전송됩니다.

그런 다음 Snort가 예상 규칙에 대한 트래픽과 일치할 때까지 계속해서 규칙을 통과하는지 확인할 수 있습니다.

관련 정보

Firepower Management Center 컨피그레이션 가이드, 액세스 제어 규칙

Cisco Firepower Threat Defense Configuration Guide for Firepower Device Manager, Access Control

Cisco 버그 ID CSCwd00446 - ENH: Packet-tracer는 ACL 단계에서 지오로케이션 규칙 대신 실제 규칙 적중률을 표시하지 않습니다