A future that integrates LLMs and LAMs (Symposium)
Cisco asa firewall을 통한 패킷 흐름
1. ASA FIREWALL을 통한 패킷 흐름
이 문서는 아래에 있는 url에 대한 한글화된 버전입니다.
http://www.cisco.com/en/US/products/ps6120/products_tech_note09186a0080ba9d00.shtml
이 문서는 cisco ASA firewall을 통한 패킷 흐름을 기술하며,Cisco ASA에서 내부적으로 패킷을
처리하는 절차를 보여주고 있습니다.
이 문서는 또한 패킷이 드랍(drop)될 수 있는 다른 가능성과 패킷이 미리 진행되어 질 수 있
는 다른 상황에 대해서 이야기할 예정입니다.
배경 정보
패킷을 수신하는 인터페이스는 ingress 인터페이스라고 불려지며, 패킷이 빠져나가는 인터페
이스는 egress 인터페이스라고 불려진다.
어떠한 장비을 통한 패킷 흐름을 말할 때,이들 두(egress, ingress)인터페이스 관점에서 문제
을 봄으로써 쉽게 간소화될 수 있습니다.
샘플 시나리오는 아래에 있습니다:
inside 사용자(192.168.10.5)가 DMZ 네트워크(172.16.10.5)에 있는 web 서버에 접근하려고 시
도할 때,
패깃 흐름는 다음과 같습니다.
Inside
Network
Outside
Network
192.168.10.0/24
2. Source address - 192.168.10.5
Source port - 22966
Destination address - 172.16.10.5
Destination port - 8080
Ingress interface - Inside
Egress interface - DMZ
Protocol used - TCP
여기에 기술된 것 처럼 패킷 흐름의 자세한 사항들을 결정을 함으로써, 문제를 이러한
connection 항목으로 분리하는 것이 쉽습니다.
Cisco ASA 패킷 처리 알고리즘
Cisco ASA가 수신된 패킷을 어떻게 처리하는지에 대한 diagram이 여기에 있습니다:
각 단계별 자세한 사항은 아래와 같습니다.
1.ingress 인터페이스에 패킷이 도달합니다.
2.인터페이스의 내부 버퍼에 도달하자마자, 인퍼페이스의 input counter에 하나만큼 증가됩니
다.
3.Cisco ASA는 처음으로 내부 connection 테이블(show conn)에 자세한 사항을 보고 이미 존
재하는 connection인지을 확인합니다. 패킷 흐름이 이미 존재하는 connection에 있으면, ACL
체크를 건너뛰고, 패킷은 다음 단계로 진행됩니다.
3. 패킷 흐름이 존재하는 connection과 일치하지 않는다면, TCP state을 확인합니다.
만일 패킷이 SYN 패킷이나 UDP 패킷이라면, connection 카운터가 하나 만큼 증가하고 ACL
체크 단계로 보내집니다.만일 패킷이 SYN 패킷이 아니라면, 패킷은 드랍(drop)되고 event에
대한 정보가 로그로 남습니다.
4.패킷은 인터페이스 ACLs 단계를 거치며 ACL 항목의 순차적인 순서로 체크하며 만일 ACL
항목 중에 일치하는 것이 있다면, 패킷은 다음 단계로 진행됩니다.
만일 ACL 항목 중에 일치하는 것이 없다면, 패킷은 드랍(drop)되고 패킷 드랍에 대한 정보가
로그로 남습니다.
ACL hit count는 패킷이 ACL 항목에 일치될 때, 하나씩 증가가 될 것 입니다.
5.패킷은 translation(xlate) 규칙을 확인하는 단계을 거칩니다.
만일 패킷이 이 단계을 통과하면, 해당 flow에 대한 connection 항목이 생성이 되고 패킷은
다음 단계로 진행됩니다.만일 패킷이 이 단계을 통과 못하면,패킷은 드랍(drop)되고 패킷 드
랍에 대한 정보가 로그로 남습니다.
6.패킷은 inspection 단계을 거칠 수도 있습니다.
이inspecttion 단계에서는 이 특정 패킷 흐름이 해당 프로토콜에 정의한 부분을 잘 따르고 있
는지을 확인합니다.Cisco ASA는 내부에 내제된 inspection 엔진을 가지고 있어 각 connection
에 대해서 미리 정의된 어플리케이션 레벨의 기능들을 inspect합니다.만일 패킷이 이 단계을
통과하면, 패킷은 다음 단계로 진행됩니다.
만일 패킷이 이 단계을 통과 못하면,패킷은 드랍(drop)되고 패킷 드랍에 대한 정보가 로그로
남습니다.
CSC 모듈이 설치되어 사용되고 있다면,추가적인 보안 체크 단계을 거칠 것 입니다.
7.IP 헤더 정보는 NAT/PAT 규칙에 따라서 translate되며, 그에 따라서 IP 헤더에 있는 첵섬도
업데이트가 됩니다.
AIP 모듈이 설치되어 사용되고 있다면, 패킷은 IPS 관련 보안 체크를 위해 AIP-SSM으로 보
내집니다.
4. 8.Translation(Xlate) 규칙에 따라서 패킷은 egress 인터페이스로 보내집니다.
만일 translation 규칙에 어떠한 egress 인터페이스가 명시되어있지 않다면,
global route을 참조하여(lookup에 따라서) 목적지 인터페이스가 결정이 됩니다.
9.egress 인터페이스에서 인터페이스 route를참조합니다(lookup을 합니다).
기억해야 할 것은 global route보다 우선 순위을 가지고 있는 translation 규칙에 의해서
egress 인터페이스가 결정된다는 것 입니다.
10.일단 L3 route가 route 테이블에 있고 next-hop이 확인이 되면, L2 resolution(arp)가 수행이
되며, 이 단계에서 L2 MAC 헤더의 rewrite이 일어 납니다.
11.패킷은 wire상으로 보내지며, egress 인터페이스에 있는 인터페이스 카운더들이 증가됩니
다.
NAT에 대한 설명
NAT 동작 순서에 대한 보다 자세한 사항에 대해서는 아래에 있는 문서들을 참조하세요.
Cisco ASA Software versions prior to 8.2
Cisco ASA Software versions after 8.3
show 명령어들
각기 다른 패킷 처리 단계에서 패킷 흐름을 트래킹(tracking)하는데 도움이 되는 몇몇 유용한
명령어들이 아래에 있습니다.
- Show interface
- Show conn
- Show access-list
- Show xlate
- Show service-policy inspect
- Show run static
- Show run nat
- Show run global
- Show run global
5. - Show nat
- Show route
- Show arp
Syslog 메세지들
Syslog 메세지들은 패켓 처리에 대한 유용한 정보을 제공하며, 참조 목적으로 몇몇 syslog 메
세지들의 예가 아래에 있습니다.
connection 항목이 없을 때 Syslog 메세지:
%ASA-6-106015: Deny TCP (no connection) from
IP_address/port to IP_address/port flags tcp_flags on interface
interface_name
패킷이 access-list에 의해서 deny되었을 때 Syslog 메세지:
%ASA-4-106023: Deny protocol src
[interface_name:source_address/source_port] dst
interface_name:dest_address/dest_port by access_group
acl_ID
찿고자하는 translation(xlate) 규칙이 없을 때 Syslog 메세지:
%ASA-3-305005: No translation group found for protocol
srcinterface_name: source_address/source_portdstinterface_name:
dest_address/dest_port
패킷이 security inspection에 의해서 deny되었을 때 Syslog 메세지:
%ASA-4-405104: H225 message received from
outside_address/outside_port to inside_address/inside_port before
SETUP
route 정보가 없을 때 Syslog 메세지:
%ASA-6-110003: Routing failed to locate next-hop for
protocol from srcinterface:src IP/src port to destinterface:dest IP/dest
port
6. Cisco ASA에서 발생되는 모든 syslog 메세지들에 대한 리스트와 syslog 메세지에 대한 간략
한 설명에 대해서는,
Cisco ASA로그 메세지 안내서를참조하시면됩니다.