[GNS3] ACL 보안 정책 구현 (Standard, Extended, Named ACL)

2025. 12. 25. 20:25·Network Practice

실습 목표

이번 실습에서는 ACL(Access Control List)을 활용하여 계층적 보안 정책을 구현할 예정이다. Standard ACL을 통해 관리 접근을 제어하고, Extended ACL을 통해 부서별 세밀한 트래픽 제어를 수행한다. 마지막으로 Named ACL의 Remark 기능을 활용하여 정책의 가독성과 유지보수성을 향상시킨다.

 

ACL은 네트워크 보안의 핵심 요소로, 출발지/목적지 IP 주소, 프로토콜, 포트 번호 등을 기반으로 트래픽을 허용하거나 차단하는 역할을 가진다. 적절한 ACL 설계는 내부 네트워크 보호, 정보 유출 방지, 그리고 규정 준수를 위한 필수 요소이다.


전체 토폴로지

네트워크 설계

  • VLAN 10 (Finance): 10.10.10.0/24
  • VLAN 20 (HR): 10.10.20.0/24
  • VLAN 30 (IT): 10.10.30.0/24
  • VLAN 40 (Guest): 10.10.40.0/24
  • VLAN 50 (Server): 10.10.50.0/24

보안 정책

  • Finance: 서버 HTTPS만 허용, 인터넷 차단
  • HR: 인터넷 허용, 내부 네트워크 차단
  • IT: 모든 접근 허용
  • Guest: 인터넷만 허용, 내부 완전 차단

1단계 : Standard ACL 구성 (VTY 접근 제어)

작업 대상

[HQ-R1] [Core-SW] [Dist-SW] [Acc-SW1~4]

Standard ACL은 출발지 IP 주소만을 기준으로 필터링한다. VTY 라인 접근 제어에 주로 사용되며, ACL 번호는 1-99 또는 1300-1999 범위를 사용한다.

1-1. Core-SW에 Standard ACL 적용

access-list 10: Standard ACL 번호를 10으로 지정한다. 1-99 범위가 Standard ACL에 할당되어 있다.

remark: ACL에 설명을 추가하여 가독성을 높인다. 나중에 다른 관리자가 봐도 ACL의 용도를 즉시 파악할 수 있다.

permit 10.10.30.0 0.0.0.255: IT 부서 네트워크(10.10.30.0/24)를 허용한다. 여기서 사용되는 0.0.0.255는 와일드카드 마스크로, 서브넷 마스크와 반대 개념이다. 0은 정확히 일치해야 하고, 255는 무시한다는 의미다.

deny any: 명시적으로 나머지 모든 트래픽을 거부한다. ACL은 기본적으로 암시적 deny any를 가지고 있지만, 명확성을 위해 추가하는 것이 좋은 습관이다.

access-class 10 in: VTY 라인에 ACL을 적용한다. in 방향은 VTY 라인으로 들어오는 연결을 의미한다.

1-2. 모든 네트워크 장비에 동일 ACL 적용

Dist-SW, Acc-SW1~4, HQ-R1에도 동일한 Standard ACL을 적용하여 IT 부서만 관리 접근이 가능하도록 한다.

 

Dist-SW 예시

나머지 장비(Acc-SW1, Acc-SW2, Acc-SW3, Acc-SW4, HQ-R1)에도 동일하게 설정한다.

 

왜 모든 장비에 적용하는가? 보안은 계층별로 적용되어야 한다. 하나의 장비만 보호하면 다른 경로로 침입이 가능하기 때문에, 모든 관리 접점에 동일한 정책을 적용하는 것이 중요하다.


2단계 : Extended ACL 구성 (부서별 트래픽 제어)

작업 대상

[Core-SW] - VLAN SVI에 ACL 적용

Extended ACL은 출발지 IP, 목적지 IP, 프로토콜, 포트 번호 등을 기준으로 세밀한 필터링이 가능하다. ACL 번호는 100-199 또는 2000-2699 범위를 사용한다.

2-1. Finance VLAN (10) ACL 구성

Finance 부서는 보안이 중요한 재무 데이터를 다루기 때문에 외부 인터넷 접근을 차단하고, 내부 서버에는 HTTPS만 허용한다.

ip access-list extended FINANCE-ACL: Named Extended ACL을 생성한다. 숫자 대신 의미 있는 이름을 사용하면 관리가 훨씬 쉽다.

permit tcp ... host 10.10.50.10 eq 443: Finance에서 내부 서버(10.10.50.10)로 TCP 포트 443(HTTPS)만 허용한다. host는 단일 IP를 의미하며, eq 443은 equal to 443, 즉 포트 443만 매칭한다.

permit ip ... 10.10.10.0 0.0.0.255: 같은 VLAN 내부 통신을 허용한다. 같은 부서 직원들 간의 통신은 허용되어야 한다.

permit icmp ... host 10.10.10.1: 게이트웨이로의 ICMP(ping)를 허용한다. 네트워크 연결 테스트를 위해 필요하다.

permit udp ... any eq 53: DNS 쿼리를 허용한다. 도메인 이름을 IP 주소로 변환하기 위해 필수적이다.

deny ip ... any log: 나머지 모든 트래픽을 차단하고 로그를 남긴다. log 키워드는 차단된 패킷의 정보를 시스템 로그에 기록한다.

ip access-group FINANCE-ACL out: VLAN 10 SVI의 아웃바운드 방향에 ACL을 적용한다. 아웃바운드는 VLAN에서 나가는 트래픽을 의미한다.

2-2. HR VLAN (20) ACL 구성

HR 부서는 인터넷 접근은 필요하지만, 다른 부서의 민감한 정보에는 접근할 수 없어야 한다.

deny ip ... 10.10.0.0 0.0.255.255: 모든 내부 네트워크(10.10.0.0/16)로의 접근을 차단한다. 와일드카드 마스크 0.0.255.255는 10.10.x.x 범위 전체를 의미한다.

permit ip ... any: 인터넷(내부가 아닌 모든 네트워크)으로의 접근을 허용한다.

 

ACL 순서의 중요성: ACL은 위에서 아래로 순차적으로 처리된다. 따라서 내부 네트워크 차단 규칙을 먼저 배치하고, 그 다음에 인터넷 허용 규칙을 배치해야 한다. 순서가 바뀌면 모든 트래픽이 permit ip any에 매칭되어 내부 네트워크 차단이 무효화된다.

2-3. IT VLAN (30) ACL 구성

IT 부서는 네트워크 관리를 위해 모든 네트워크에 접근할 수 있어야 한다.

permit ip ... any: IT 부서는 어떤 목적지로든 모든 트래픽을 전송할 수 있다. 관리자는 문제 해결을 위해 모든 네트워크 접근이 필요하다.

2-4. Guest VLAN (40) ACL 구성

Guest 네트워크는 인터넷만 허용하고 내부 네트워크는 완전히 차단해야 한다. 외부 방문자가 내부 시스템에 접근하는 것을 방지하기 위함이다.

Guest ACL은 HR ACL과 유사하지만, 내부 네트워크 접근 시도를 로그로 기록한다는 점이 다르다. 외부 방문자의 내부 접근 시도는 보안 사고의 징후일 수 있기 때문이다.

2-5. Server VLAN (50) ACL 구성

내부 서버는 Finance에서 HTTPS만, IT에서 모든 접근을 허용한다.

잘린 부분

  • permit tcp 10.10.10.0 0.0.0.255 10.10.50.0 0.0.0.255 eq 443

ip access-group SERVER-ACL in: 서버 보호를 위해 인바운드 방향에 ACL을 적용한다. 서버로 들어오는 트래픽을 필터링하여 허용되지 않은 접근을 차단한다.

permit ip 10.10.50.0 ... any: 서버에서 나가는 아웃바운드 트래픽은 허용한다. 서버가 업데이트나 외부 API 호출을 할 수 있어야 하기 때문이다.

 

인바운드 vs 아웃바운드: 서버 보호는 일반적으로 인바운드에 적용하고, 클라이언트 보호는 아웃바운드에 적용한다. 서버는 들어오는 연결을 제한해야 하고, 클라이언트는 나가는 연결을 제한해야 하기 때문이다.


3단계: Named ACL 재구성 및 최적화

작업 대상

[Core-SW] - 기존 ACL에 라인번호 추가

Named ACL의 가장 큰 장점은 가독성과 유연한 편집이다. 라인 번호를 활용하여 특정 규칙을 쉽게 추가/삭제할 수 있다.

3-1. FINANCE-ACL 최적화

잘린 부분

  • 10 permit tcp 10.10.10.0 0.0.0.255 host 10.10.50.10 eq 443
  • 20 permit ip 10.10.10.0 0.0.0.255 10.10.10.0 0.0.0.255

no ip access-list extended FINANCE-ACL: 기존 ACL을 완전히 삭제한다. ACL을 재구성할 때는 이렇게 삭제 후 재생성하는 것이 안전하다.

 

라인 번호의 중요성: 10, 20, 30... 처럼 10 단위로 번호를 부여하면, 나중에 중간에 새로운 규칙을 삽입할 수 있다. 예를 들어 라인 10과 20 사이에 새 규칙이 필요하면 라인 15로 추가할 수 있다.

3-2. 나머지 ACL 최적화

HR-ACL, IT-ACL, GUEST-ACL, SERVER-ACL도 동일한 방식으로 진행한다.

 

HR-ACL 예시

잘린 부분

  • 10 permit ip 10.10.20.0 0.0.0.255 10.10.20.0 0.0.0.255
  • 30 deny ip 10.10.20.0 0.0.0.255 10.10.0.0 0.0.255.255 log

IT-ACL, GUEST-ACL, SERVER-ACL도 동일한 패턴으로 재구성한다.

3-3. ACL 편집 기법

Named ACL의 강력한 기능은 특정 라인만 수정할 수 있다는 점이다.

 

특정 라인 추가 예시

잘린 부분

  • 15 permit tcp 10.10.10.0 0.0.0.255 host 10.10.50.10 eq 22

라인 10과 20 사이에 SSH(22) 허용 규칙을 삽입했다. 전체 ACL을 삭제하고 재작성할 필요가 없다.

 

특정 라인 삭제 예시

라인 40(DNS 허용)을 삭제했다. 다른 라인은 영향받지 않는다.

 

왜 라인 번호가 중요한가? 번호 없이 ACL을 작성하면 수정할 때마다 전체를 삭제하고 재작성해야 한다. 이 과정에서 일시적으로 ACL이 없는 상태가 되어 보안 취약점이 발생할 수 있다. 라인 번호를 사용하면 ACL이 활성화된 상태에서 안전하게 수정할 수 있다.


마무리

이번 실습을 통해 ACL을 활용한 계층적 보안 정책을 구현했다. Standard ACL로 관리 접근을 제어하고, Extended ACL로 부서별 세밀한 트래픽 제어를 수행했으며, Named ACL의 Remark 기능으로 정책의 가독성을 크게 향상시켰다.

 

배운 점

ACL은 네트워크 보안의 핵심이지만, 잘못 설계하면 정상 트래픽까지 차단하거나 오히려 보안 취약점을 만들 수 있다. ACL 순서, 와일드카드 마스크, 인바운드/아웃바운드 방향 등을 정확히 이해하고 적용해야 한다. 특히 Remark와 라인 번호를 활용한 문서화는 단순히 가독성뿐만 아니라 장기적인 운영과 트러블슈팅에 필수적이라는 점을 배웠다. 실제 운영 환경에서는 ACL 변경 시 항상 백업을 하고, 변경 사항을 문서화하며, 테스트 후 적용하는 것이 중요하다.

'Network Practice' 카테고리의 다른 글

[GNS3] Port Security 및 스위치 보안  (1) 2025.12.17
[GNS3] DHCP 서버구성 및 NAT/PAT 활용  (0) 2025.12.08
[GNS3] OSPF 동적 라우팅 구성 및 Multi-Area 설계  (0) 2025.12.03
[GNS3] HSRP 고가용성 (High Availability) 게이트웨이 구성  (0) 2025.12.01
[WireShark] Filtering - 다양한 복합 필터링 기법  (0) 2025.11.30
'Network Practice' 카테고리의 다른 글
  • [GNS3] Port Security 및 스위치 보안
  • [GNS3] DHCP 서버구성 및 NAT/PAT 활용
  • [GNS3] OSPF 동적 라우팅 구성 및 Multi-Area 설계
  • [GNS3] HSRP 고가용성 (High Availability) 게이트웨이 구성
김슭삵
김슭삵
Layer By Layer. 한 층씩 성장 해가는 네트워크와 서버의 학습 공간
  • 김슭삵
    Layer By Layer
    김슭삵
  • 전체
    오늘
    어제
    • 분류 전체보기 (49)
      • Network Concepts (36)
      • Network Practice (12)
      • Linux (0)
      • AWS & Cloud (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ROAS
    LACP
    Cisco
    dhcp
    wireshark
    gns3
    Port Mirroring
    ACL
    vlan
    Network
    Etherchannel
    WLAN
    TCP/IP
    RSPAN
    dns
    ERSPAN
    HSRP
    Nat
    dai
    ARP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
김슭삵
[GNS3] ACL 보안 정책 구현 (Standard, Extended, Named ACL)
상단으로

티스토리툴바