Contents

ASA 방화벽

   Mar 6, 2023     6 min read

방화벽 개요

  • Cisco의 전용 방화벽에는 ASA와 PIX 장비가 있으며, 두 장비는 모두 동일한 명령어 체계를 사용한다.

  • 새로운 장비만 ASA가 PIX에 비해 성능과 기능이 우수하다.


ASA 방화벽 레벨 (Level)

  • 보안 레벨이 높은 곳에서 낮은 곳으로의 트래픽 흐름은 기본적으로 모두 허용됨.
  • ASA는 인터페이스에 이름을 부여해 정책 적용 시 그 이름을 사용함.
  • 인터페이스 이름이 Inside이면 기본적이로 보안 레빌이 가장 높은 100을 적용함.
  • 나머지 인터페이스 이름들은(Outside, DMZ) 보안 레벨이 가장 낮은 0을 적용함.
  • 보안 레벨이 지정되지 않으면 인터페이스 자체가 비활성화.

Ex. ASA Firewall Security-Level

사진첨부

명령어

ASA)

interface e0
nameif inside
security-level 100 ← 기본이 100이라 안 줘도 상관 없음.
ip address 192.168.10.2 255.255.255.0
no shutdown

interface e1
nameif dmz1
security-level 50
ip address 192.168.20.2 255.255.255.0
no shutdown

interface e2
nameif outside
security-level 0
ip address 192.168.30.2 255.255.255.0
no shutdown

interface e3
nameif dmz2
security-level 50
ip address 192.168.40.2 255.255.255.0
no shutdown



결과 01

붙어있는 것끼리는 ping이 가야 한다.

사진첨부

사진첨부

사진첨부

사진첨부


모든 라우터간 Ping X

사진첨부

Step 01.

  • 원래는 모든 라우터 간 ping X

Step 02.

  • 모든 라우터에 Telnet 서버 구성

line vty 0 4
password it
login
transport input telnet

enable password cisco
enable secret cisco2



Step 03.

  • Telnet 접속 후 ASA 방화벽에서 확인. 높은 쪽에서 낮은 방향으로 트래픽을 전송하는 경우 해당 내용을 Connection table에 등록한다.

#show conn

  • TCP dmz1 192.168.20.1 inside 192.168.10.1

모든 라우터에 Telnet을 구성

vIOS2)

#telnet 192.168.10.1 - X
#telnet 192.168.30.1 - O
#telnet 192.168.40.1 - X



vIOS3)

#telnet 192.168.20.1 - O
#telnet 192.168.30.1 - O
#telnet 192.168.40.1 - O



vIOS4)

#telnet 192.168.10.1 - X
#telnet 192.168.20.1 - X
#telnet 192.168.40.1 - X



vIOS5)

#telnet 192.168.10.1 - X
#telnet 192.168.20.1 - X
#telnet 192.168.30.1 - O




# show conn

사진첨부



vIOS3 에서 telnet으로 아무대나 접속하고 ASA에서 #show conn을 쳐 보면 접속했다는 것을 확인할 수 있다.

같은 레벨 간 허용

ASA)

(config)#same-security-traffic permit inter-interface



결과

사진첨부
들어가지는 것을 확인할 수 있다.

사진첨부
역시 들어가진다.


참고

  • show ip int brief -> 방화벽 : show int ip brief
  • show ip route -> 방화벽 : show route
  • show run -> 방화벽 : show run

ASA 방화벽 레벨 (Level)

  • 액세스 리스트에 예외(규칙) 적용 : 낮은 보안 레벨에서 높은 보안 레벨로 트래픽 전달 가능
  • 보안 레벨이 같은 곳에서 서로의 트래픽 흐름은 기본적으로 모두 거부된다.
  • 정적 포트와 같은 stateful한 트래픽은 보안 레벨이 높은 곳에서 낮은 곳으로 갔다가 돌아오는 패킷을 허용한다. ex. Telnet 서버, HTTP서버 등
  • 동적 포트 트래픽은 상태관리를 하지 않아서 레벨이 높은 곳에서 낮은 곳으로 갔다가 돌아올 때 전부 차단된다. 이때는 MPF의 inspec 명령을 사용하면 동적 트래픽에도 Stateful 기능을 이용해 응답 트래픽이 허용된다. ex. FTP 서버, ICMP 등

ASA Firewall - ACL & MPF 구성

  • ASA 방화벽에 ICMP 열기

유형 01. ACL 이용

사진첨부

10.1 -> 20.1로 ping을 하고 싶은 것임.

  • 명령어
(config)#access-list dmz1_inside extended permit icmp 192.168.20.0 255.255.255.0 192.168.10.0 255.255.255.0
(config)#access-group dmz1_inside in interface dmz1



  • 결과

사진첨부

사진첨부

서로 ping이 가능하다.


유형 02. MPF 이용

  • Moduler Policy Framework = 모듈화된 정책 설정
  • 3세대 방화벽 기술인 SPI(Stateful Packet Inspection)와 Application 계층 제어 기능인 DPI(Deep packet Inspection)등의 고급 보안 정책을 구성할 수 있다.
  • ex. 네트워크 계층, 응용 계층, QoS:폴리싱/세이핑/큐잉 TCP 정규화, TCP/UDP 접속 수 제한 등

-class-map TEST
    match ?  //default-inspection-traffic 확인

-default-inspection-traffic 사용시 하나의 클래스에서 다수개의 검사 가능
    class-map C1
    match default-inspection-traffic



  • 명령어

ASA)

class-map C1 ← 트래픽 분류, 하나의 클래스는 하나의 트래픽만 검사 가능
    match any

policy-map P1 ← 하나의 폴리시 맵에서 여러 클래스 할당 가능
    class C1
    inspect icmp ← 내부에서 출발한 ICMP는 돌아올 때 허용(Statefull)

service-policy P1 interface outside ← 인터페이스에 적용



  • 결과

  • vIOS 3에서 #ping 192.168.30.1해 보고,
  • vIOS 4에서 #ping 192.168.10.1해 보기

사진첨부
30.1 로는 ping이 가지만

사진첨부
10.1로는 ping이 가지 않는다.
낮->높 레벨로 가는 것이기 때문


참고 - ACL, MPF 초기화

1) MPF 초기화

  • no service-policy P1 interface outside

2) ACL 초기화

  • clear configure access-list dmz1_inside


유형 03. global_policy

  • 방화벽의 기본 policy-map 구성 확인

  • 명령어

policy-map global_policy
    class inspection_default
    inspect icmp



  • 결과

사진첨부
vIOS3에서 전부 다 ping이 간다.

global은 전체에 적용된다.


유형 04. 같은 레벨 간에 통신

  • same-security-traffic permit inter-interface

유형 05 - 1.global_policy 명령어와 acl 명령어를 같이 적용한 경우

ASA)

policy-map global-policy
    class inspection_default
    inspect icmp

service-policy global_policy global

access-list dmz1_inside extended permit icmp host 192.168.20.1 host 192.168.10.1
[access-list dmz1_inside extended deny ip any any 명령어가 묵시적 생략되어 있음]

access-group dmz1_inside in interface dmz1



  • 결과

  • 낮 -> 높 : 무조건 ACL이 필요함

vIOS3)

ping 192.168.20.1 - O
ping 192.168.30.1 - O
ping 192.168.40.1 - O


사진첨부



vIOS2)

ping 192.168.10.1 - O
ping 192.168.30.1 - X
ping 192.168.40.1 - X


사진첨부

vIOS4)

ping 192.168.10.1 - X
ping 192.168.20.1 - X
ping 192.168.40.1 - X


사진첨부

vIOS5)

ping 192.168.10.1 - X
ping 192.168.20.1 - O
ping 192.168.30.1 - O


사진첨부

유형 05 - 2.

  • 명령어

ASA)

policy-map global-policy
    class inspection_default
    no inspect icmp

service-policy global_policy global

access-list dmz1_inside extended permit icmp host 192.168.20.1 host 192.168.10.1
[access-list dmz1_inside extended deny ip any any 명령어가 묵시적 생략되어 있음]

access-group dmz1_inside in interface dmz1



  • 결과

vIOS3)

ping 192.168.20.1 - O
ping 192.168.30.1 - X
ping 192.168.40.1 - X



vIOS2)

ping 192.168.10.1 - O
ping 192.168.30.1 - X
ping 192.168.40.1 - X



vIOS4)

ping 192.168.10.1 - X
ping 192.168.20.1 - X
ping 192.168.40.1 - X



vIOS5)

ping 192.168.10.1 - X
ping 192.168.20.1 - X
ping 192.168.30.1 - X