방화벽

youp·2024년 7월 26일
0

방화벽(Firewall)

  • 신뢰할 수 있는 네트워크와 신뢰할 수 없는 네트워크 사이의 장벽
  • LAN과 WAN 사이에 사용
    • 즉, 데이터 전달 경로에 배치되어 패킷을 드롭/ 허용

Stateless Filtering

= 라우터

  • 라우터는 ACL을 사용해 Source / Destination / Port number 확인
    • 패킷을 수신하면 ACL 매치 후 Permit 또는 Deny
    • 단일 패킷 또는 수천개의 패킷을 수신해도 각 패킷을 개별적으로 처리
      = 같은 발신지 IP여도 매번 검사
    • 이전에 본적이 있거나, 본적이 없는 패킷은 추적하지 않음

Stateful Filtering

  • 방화벽은 모든 들어오는 또는 나가는 Connection 추적
    1. LAN 환경의 컴퓨터를 이용해 메일서버 연결
    2. TCP 3-Way handshake 진행 과정을 방화벽은 모니터링
    3. 방화벽은 이 연결을 기억하고 메일서버에 대한 응답을 자동으로 컴퓨터에게 들어오는 것을 허용

Packet Inspection

  • 대부분의 방화벽은 어떤 형태로든 Deep Packet inspection 지원
    • ACL은 단순히 IP와 Port number 확인
  • Inspection은 OSI model의 Layer7까지 확인 가능
    • 애플리케이션 헤더 및 실제 데이터까지 확인
  • IP차단 대신 URL 차단 가능
  • 페이로드를 확인해 바이러스 및 웜 패킷 차단

Security Zone

  • 라우터는 기본적으로 라우팅 테이블을 기반으로 데이터를 허용/처리
    • 이를 제한하기 위해서는 ACL 필요
    • 많은 ACL과 많은 인터페이스는 관리의 어려움이 발생
  • 4개의 ACL 및 4개의 인터페이스 관리 필요
    • 외부로 나가는 트래픽 중 일부를 차단하기 위해 두 개의 Inbound ACL 생성/적용
    • 외부에서 들어오는 트래픽 중 일부를 차단하기 위해 두 개의 Inbound ACL 생성/적용

  • 방화벽은 Zone 기반으로 데이터를 허용/처리
  • INSIDE: 내부 LAN 구간(High Security Level)
  • OUTSIDE: 외부 WAN 구간(Low Security Level)
  • High Security Level -> Low Security Level: 허용
  • Low Security Lvel -> High Security Level: 거부
    • 외부에서 시작해 내부로 접근하는 트래픽에 대해 ACL을 이용해 예외 적용
  • 방화벽은 Stateful 동작으로 나가는 Connection 추적해 되돌아 오는 트래픽 허용
    • 내부 -> 외부 -> 내부: 허용
    • 외부 -> 외부: 거부

  • DMZ를 운영하는 경우 INSDIE와 OUTSIDE 사이의 Security Level 사용
  • INSIDE -> OUTSIDE 혹은 DMZ: 허용
  • DMZ -> OUTSIDE: 허용
  • DMZ -> INSIDE: 거부
  • OUTSIDE -> DMZ: 거부(ACL 예외 필요)
  • OUTSIDE -> INSIDE 거부

Firewall - Router

CBAC(Context-Based Access Control)

  • L3/L4 계층의 트래픽 뿐 아니라 응용게층 트래픽까지 제어 가능(라우터 기능 + 방화벽 기능)
  • Stateful 방화벽 기능 지원
  • CBAC 동작
    1. 돌아오는 패킷을 허용하는 임시 ACL 생성
    2. ACL이 이미 있다면 해당 ACL 우선 적용
    3. 패킷 처리 후 임시 ACL 삭제

  • 정책 결정
    • 외부에서 내부로 접근하는 모든 트래픽 차단
    • TCP, UDP 및 ICMP 패킷만 되돌아 올 수 있도록 허용
  • ACL in 적용
    R2(config)#ip access-list extended ~~
    R2(config-ext-nacl)#deny ip any any
    R2(config-ext-nacl)#exit
    R2(config)#interface fa0/1
    R2(config-if)#ip access-group ~~ in
    --> 내부에서 시작하든, 외부에서 시작하든 모든 통신 차단됨

CBAC 적용
R2(config)#ip inspect name ~~ tcp
R2(config)#ip inspect name ~~ udp
R2(config)#ip inspect name ~~ icmp

R2(config)#int fa0/1
R2(config)#ip inspect ~~ out

CBAC 확인

  • TCP, UDP, ICMP를 모두 검사하고 돌아올 때 허용할 임시 ACL을 만들어 기존 ACL 상단에 추가
  • E0/1 인터페이스에서 패킷이 외부로 빠져나가는 시점에 임시 ACL 생성


R2#show ip inspect sessions detail

  • 내부 1.1.12.1에서 외부 1.1.34.4으로 전송된 텔넷 패킷이 돌아올 때 허용하는 임시 ACL 생성
  • 이 ACL에 의해 돌아오는 텔넷 패킷 허용

Application CBAC

  • 정책 결정
    • 외부에서 내부로 접근하는 모든 트래픽 차단
    • 내부로 돌아오는 TCP 패킷 중 HTTP만 허용


80번 포트만 허용하고 나머지 패킷은 차단

ZFW(Zone-Based Policy Firewall)

  • CBAC 단점
    • 인터페이스 기반 트래픽 검사로 정책 설정 및 관리 어려움
    • 다수 개의 인터페이스 구성 시 설정이 복잡
  • 라우터의 각 인터페이스를 특정 Zone에 할당하고, Zone 사이에 보안 정책 적용
    • 전용 방화벽 ASA와 유사
  • Zone/Security Zone
    • 보안 정책이 적용되는 인터페이스 그룹
  • Zone member
    • Zone에 속한 인터페이스
  • Self-Zone
    • 시스템에서 정의한 Default Zone
    • 라우터의 모든 인터페이스는 Zone 소속 여부와 관계 없이 Self-Zone에 포함
    • 라우터가 출발지 또는 목적지인 패킷을 제어할 때 사용
  • Zone Pair
    • 출발지 Zone과 목적지 Zone의 묶음
    • Zone Pair를 설정하기 전까지는 Zone간 통신 불가(Self Zone 예외)

  • 설정 순서
  1. Zone 생성 및 인터페이스 할당
  2. Zone Pair 생성
  3. 보안정책 정의
  4. Zone Pair에 보안정책 적용

ZONE 규칙

  • 인터페이스는 오직 하나의 Zone에만 소속
  • 동일 Zone에 소속된 인터페이스간 트래픽 기본 허용
  • 서로 다른 Zone에 소속된 인터페이스간 허용되지 않은 트래픽은 기본 차단
  • Self Zone은 Zone과 반대로 기본 허용
  • Zone에 소속되지 않은 인터페이스는 Zone 소속 인터페이스와 통신 불가
  • 인터페이스간 통신이 이루어지기 위해서는 모든 인터페이스가 반드시 Zone에 소속되어야 함(정책 통신)
  • 서로 다른 Zone통신에는 ACL 적용 불가(오직 Zone Pair & 정책)
  • Zone 멤버에 속한 인터페이스는 ACL 적용 불가
  • Zone 멤버에 속한 인터페이스는 CBAC 설정 불가(ZFW & CBAC 동시 적용 불가)

Zone 생성 및 Interface 할당


R2(config)#zone security inside
R2(config)#int f0/0
R2(config-if)# zone-member security inside


서로 다른 Zone은 통신이 안됨

R2(config)# zone-pair security Outbound source inside destination outside

  • Zone Pair를 사용해 두 개의 Zone간에 단방향 방화벽 정책 정의
  • 출발지 및 목적지 Zone을 지정해 트래픽 방향 설정
    • 리턴 트래픽은 자동으로 허용

Class-map 적용 대상을 모아둔 곳
Policy-map: 그 대상에게 적용할 규칙

0개의 댓글

관련 채용 정보