Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[컴퓨터 네트워크] 11주차 : 네트워크 보안, LAN 보안 개념, 스위치 보안 기술, ACL 본문

3학년 1학기 전공/컴퓨터 네트워크

[컴퓨터 네트워크] 11주차 : 네트워크 보안, LAN 보안 개념, 스위치 보안 기술, ACL

시데브 2024. 5. 28. 20:50
경희대학교 유인태 교수님의 컴퓨터네트워크 수업을 기반으로 정리한 글입니다.

 

네트워크 보안 - 개요

보안 위협

  • 네트워크 상의 서비스 품질을 보장하면서도 데이터를 보호하는 것과 동시에 환경까지 고려해야 함
  • 네트워크 보안에는 데이터를 보호하고 위협을 완화하기 위한 다양항 프로토콜, 기술, 장치, 도구가 필요
  • 위협 벡터: 외부 or 내부

 

외부 위협

  • 바이러스, 웜, 트로이 목마
  • 스파이웨어 및 애드웨어
  • 제로-데이 공격
  • 위협 행위자 공격
  • 서비스 거부 공격
  • 데이터 가로채기 및 도난
  • 신원 도용

 

내부 위협

  • 분실 또는 도난 기기
  • 직원에 의한 우발적 오용
  • 나쁜 의도를 가진 직원

 

보안 솔루션

  • 여러 계층으로 구현
  • 댁내 또는 소호(Small Office/Home Office) 네트워크 보안 구성요소 

- 바이러스 백신, 안티 스파이워에 소프트 웨어

- 무단 접속 차단을 위한 방화벽 필터링

  • 엔터프라이즈 및 캠퍼스 네트워크 보안

- 전용 방화벽 시스템

- 액세스 제어 목록(ACL. Access Control List) -> 어떤 트래픽(정보)이 어떤 구간을 지나다닐 수 있는가

- 침입 방지 시스템(IPS)

- 가상 사설망(VPN)

 

네트워크 보안 - 보안 위협 및 취약성

위협 유형

  • 위협 행위자(Threat Actor): SW를 수정하거나 SW 취약점을 악용하여 네트워크에 액세스하는 침입자
  • 네트워크 액세스 권한을 획득한 위협 행위자에 의한 위형 유형 -> 정보 도용 / 데이터 손실 및 조작 / 신원 도용 / 서비스 중단

 

취약성(네트워크나 장치가 보안에 취약한 정도)

기술적 취약성

  • TCP/IP 프로토콜 자체의 약점
  • 운영 체제의 약점
  • 네트워크 장치의 약점

구성 취약성

  • 보안되지 않은 사용자 계정
  • 쉽게 추측할 수 있는 암호가 있는 시스템 계정
  • 잘못 구성된 인터넷 서비스
  • 안전하지 않은 기본 설정
  • 잘못 구성된 네트워크 장치

보안 정책 취약성

  • 문서화 된 보안 정책 부재
  • 보안 정책의 방향성
  • 인증 연속성 결여
  • 액세스 제어 부재
  • 정책을 따르지 않는 sw 및 hw 설치 및 변경
  • 재해 복구 계획 미비

 

네트워크 보안 - 네트워크 공격

멀웨어(Malware) 유형

  • 데이터, 호스트, 네트워크를 손상, 방해, 도용, 또는 불법적인 행위를 하도록 특별히 설계된 악성 코드 또는 소프트웨어

악성 코드의 유형

  • 바이러스: 자신의 복사본을 다른 프로그램에 삽입하여 다른 프로그램에 포함시켜 전파되는 악성 코드의 일종. 한 컴퓨터에서 다른 컴퓨터로 확산 이동하며 다른 컴퓨터를 감염
  • 웜: 자신의 기능적 복제본을 복제 -> 동일한 유형의 손상을 일으킬 수 있다는 점에서 바이러스와 유사. 감염된 호스트 파일을 퍼뜨려야 하는 바이러스와 달리 -> 독립형 소프트웨어이므로 악성 코드를 퍼뜨림에 있어 호스트 프로그램이나 사람의 도움이 필요 X
  • 트로이 목마: 합법적으로 보이는 유해한 소프트웨어. 트로이 목마는 이메일 첨부 파일을 열거나 인터넷 파일을 다운로드하여 실행하는 등 사용자 상호 작용을 통해 확산

 

네트워크 공격 유형

정찰 공격

  • 시스템, 서비스, 또는 취약점 발견하고 파악

액세스 공격

  • 데이터, 시스템 액세스, 또는 사용자 권한에 대한 무단 조작
  • 비빌번호 공격 - 브루트 포스, 트로이 목마, 패킷 스니퍼를 사용하여 구현
  • 신뢰 악용 - 승인되지 않은 권한을 사용한 시스템 액세스 및 타겟 공격
  • 포트 리디렉션 - 손상된(compromised) 시스템을 다른 타겟에 대한 공격의 기반으로 사용
  • 중간자(man-in-the-middle) 공격 - 두 합법적인 개체 사이에 전달되는 데이터를 읽거나 수정

서비스 거부(DoS) 공격

  • 시스템 자원을 소비하여 인증된 사용자에 대한 서비스 거부(지속적 최신 보안 업데이트 필요)
  • DoS 공격은 숙련되지 않은 위협 행위자도 비교적 간단하게 수행 가능
  • DDos는 여러 소스들에 의해 합동으로 이루어짐(ex: 감염된 호스트인 존비를 이용한 봇넷) 구축 -> CnC(Command and Control) 프로그램을 사용하여 봇넷에 DDoS 공격 수행 지시

 

네트워크 보안 - 네트워크 공격 완화

심층 방어(Defense-in-Depth) 접근 방식

  • 네트워킹 장치와 서비스를 함께 고려하는 계층형 접근 방식 -> VPN, ASA 방화벽, IPS, ESA/WSA, AAA 서버

 

백업 보관

  • 데이터 손실 방지를 위한 가장 효과적 방법 중 하나 -> 주기(정기적 백업 및 부분적 백업), 스토리지(백업 검증, 무결성 확인, 파일 복원 절차 검증), 백업 보관(보안 정책에 따라 승인된 오프사이트 스토리지 위치로 전송), 유효성 검사(복원 암호 적용)

 

업그레이드, 업데이트, 패치

  • 새로운 악성 코드에 대처하기 위한 최신 버전의 안티-바이러스 sw 사용 -> 운영 체제 공급 업체로부터의 보안 업데이트 및 패치 적용이 가장효과적인 악성 코드 대처 방법

 

인증, 권한 부여 , 계정 관리(AAA. Authentication Authorization Accounting)

  • 네트워크 장치로의 액세스 제어를 설정하기 위한 기본 프레임 워크
  • 네트워크에 누가 액세스 할 수 있는지(인증)와 네트워크에 액세스 하는 동안 어떤 작업을 수행할 수 있는지(권한 부여)를 제어하고, 네트워크에 연결된 동안 수행한 작업을 기록(계정 관리)하는 방법
  • 신용 카드 사용 개념과 유사: 누가 사용할 수 있는지, 얼마를 쓸 수 있는지, 어떤 곳에 사용했는지

 

방화벽

  • 둘 이상의 네트워크 사이에 위치하여 트래픽을 제어하고 무단 액세스를 방지
  • 외부 사용자의 특정 서비스에 대한 액세스 제어 수행(DMZ를 사용한 특정 정책 적용 가능)

 

방화벽 유형

  • 방화벽 제품은 다양한 형태로 패키징되어 출시
  • 패킷 필터링, 애플리케이션 필터링, URL 필터링, 상태 기반 패킷 검사(SPI; Stateful Packet Inspection)

 

네트워크 보안 - 장치 보안

오토시큐어(AutoSecure)

  • 네트워킹 장치에 새로운 운영 체제가 설치될 때 기본 보안이 설정됨 -> 이러한 수준의 보안은 대부분 부적절 -> 별도의 보안 기능을 사용하여 시스템 보안을 지원해야 함
  • 추가 수행 작업: 기본 사용자 이름/암호 변경, 시스템 리소스 사용 권한 제한, 불필요한 서비스와 사용하지 않는 서비스 비활성화 또는 제거, 최신 소프트웨어 업데이트 및 보안 패치 설치

 

추가적인 보안

  • service password-encryption (모든 일반 텍스트 암호의 암호화)
  • security passwords min-length (최소 암호 길이 설정)
  • login block-for # attemps # within # (무차별 암호 추측 공격 차단)
  • exec-timeout (특정 시간 사용하지 않을 경우 특권 모드 접속 비활성화, line 모드)

 

SSH 사용

  • 원격 접속은 항상 SSH 사용
  • 호스트 이름 구성, 도메인 네임 구성, 암호화 키 생성, 로컬 DB 기반 인증, vty 인바운드 ssh 세션

 

LAN 보안 개념 - Layer 2 보안 위협

Layer 2 취약성

  • 네트워크 관리자는 Layer 3에서 Layer 7까지의 요소를 보호하기 위한 보안 솔루션을 정기적으로 구현
  • VPN, 방화벽, IPS(Intrusion Prevention System) 장치를 사용하여 이러한 요소를 보호
  • Layer 2가 손상되면 모든 상위 계층에 영향. -> 내부 네트워크에 대한 액세스 권한이 있는 위협 행위자가 Layer 2 프레임을 캡처하는 경우 상위 계층에 구현된 모든 보안 의미가 없어짐

 

스위치 공격 범주

  • 보안은 시스템에서 가장 취약한 링크만큼만 강함 -> 2계층은 취약한 링크로 간주됨
범주 예시
MAC Table Attacks MAC 주소 플러딩 공격을 포함 -> 존재하지 않는 MAC 주소(Bogus Mac addr) 짧은 시간에 다회 주입
VLAN Attacks VLAN 호핑VLAN 이중 태깅 공격을 포함. 또한 공동 VLAN의 디바이스 간 공격도 포함
DHCP Attacks DHCP 스타베이션DHCP 스푸핑 공격을 포함 -> DHCP 서비스를 이용할 수 없도록 주소풀을 고갈시킴, 사용자에게 잘못된 주소 정보를 할당
ARP Attacks ARP 스푸핑ARP 중독 공격을 포함 -> 잘못된 정보 제공
Address Spoofing Attacks MAC 주소 및 IP 주소 스푸핑 공격을 포함 -> 특정 주소를 인가된 주소처럼 사용?
STP Attacks 스패닝 트리 프로토콜 조작 공격을 포함

 

 

스위치 공격 완화 기법

해결책 설명
Port Security MAC 주소 플러딩 공격과 DHCP 스타베이션 공격을 비롯한 다양한 유형의 공격을 방지
DHCP Snooping DHCP 스타베이션 및 DHCP 스푸핑 공격을 방지
Dynamic ARP Inspection (DAI) ARP 스푸핑과 ARP 포이즈닝 공격 방지
IP Source Guard (IPSG) MAC 및 IP 주소 스푸핑 공격 방지
  • 관리 프로토콜이 안전하지 않으면 이런 Layer 2 솔루션은 효과 X

권장되는 전략

  • SSH, SCP, SFTP, SSL/TLS와 같은 보안 기능이 있는 관리 프로토콜 사용
  • 장치를 관리할 때 대역 외(out-of-band) 관리 네트워크를 사용하는 것을 고려 -> 관리자만이 사용할 수 있는 band
  • 관리 트래픽만 상주하는 전용 관리 VLAN을 사용
  • ACL을 사용하여 원치 않는 액세스를 필터링

 

LAN 보안 개념 - LAN 공격

VLAN Hopping Attack

  • 라우터 사용 X -> 임의의 VLAN 트래픽을 다른 VLAN에서 볼 수 있음
  • 위협 행위자는 대부분 스위치 포트에 기본적으로 활성화된 자동 트렁킹 포트 기능을 이용
  • 타겟 스위치와의 트렁크 구성을 위해 802.q1 및 DTP 시그널링을 하도록 호스트 구성
  • 성공 시 모든 VLAN에서 트래픽 송수신이 가능 -> VLAN 사이를 효과적으로 이동 가능

 

VLAN Double-Tagging Attack

  • 위협 행위자가 트렁크 포트의 네이티브 VLAN과 동일한 VLAN 멤버십을 갖는 포트에 연결된 경우 공격 가능
  • 완화 방법: 액세스 포트의 트렁킹 비활성화, 자동 트렁킹 비활성화, 트렁크 링크에만 네이티브 VLAN 사용

 

DHCP Attack

DHCP Starvation Attack

  • 목적: DHCP 서비스가 필요한 클라이언트에 대한 DoS 공격
  • 방법: 특정 공격 도구를 사용한 임대 가능한 IP 주소 범위 전체를 임대(bogus MAC address를 사용하여 DHCPDISCOVER 메시지 생성)

DHCP Spoofing Attack

  • 비인가(rogue) DHCP 서버가 네트워크에 연결되어 클라이언트에 잘못된 IP 구성 정보를 제공 시 발생
  • 비인가 서버에 의한 잘못된 IP 구성 정보 제공 시 문제
  • 잘못된 게이트웨이: 위협 행위자에 의한 중간자 공격이 가능 -> 네트워크 상의 데이터 흐름 가로챌 수 있음
  • 잘못된 DNS 서버: 비인가 서버가 유해 DNS 서버 주소를 제공하여 사용자를 악성 웹 사이트로 안내
  • 잘못된 IP 주소: 비인가 서버가 잘못된 IP 주소 정보를 제공하여 DHCP 클라이언트에 대한 DoS 공격 수행

 

ARP Attack

ARP 공격의 배경

  • 타겟 IP 주소를 가진 호스트의 MAC 주소를 확인하기 위한 ARP 요청을 브로드캐스트 -> 서브넷 상에서 해당 ARP 요청에 일치하는 IP 주소를 가진 호스트는 ARP 응답을 보내도록 되어 있음
  • 클라이언트는 "불필요한(gretuitous) ARP"라고 하는 ARP 메시지를 보낼 수 있음 -> 서브넷 상의 다른 호스트는 이러한 ARP에 포함된 MAC 주소와 IP 주소를 ARP 테이블에 저장하도록 되어 있음
  • ARP Spoofing Attack: 위협 행위자가 스푸핑된 MAC 주소가 포함된 gratuitous ARP 메시지를 전송
  • ARP Poisoning Attack: LAN 상의 장치들이 제대로 되어 있던 IP 주소와 MAC 주소 쌍을 -> 위협 행위자가 사용하는 호스트의 MAC 주소로 업데이트  
  • ex) 위협 행위자의 MAC 주소와 디폴트 게이트웨이의 IP 주소를 사용하여 서브넷의 다른 호스트에 요청되지 않은 ARP 응답을 전송   -> 중간자 공격을 위한 설정을 효과적으로 할 수 있음
  • ARP 스푸핑과 ARP 포이즈닝은 동적 ARP 검사(DAI)를 구현하여 완화 가능

 

Address Spoofing Attack

IP 주소 스푸핑

  • 서브넷에 있는 다른 장치의 유효한 IP 주소를 가로채거나 임의의 IP 주소를 사용하는 것. IP 주소 스푸핑은 특히 IP가 속한 서브넷 내에서 사용되는 경우 완화하기 어려움

MAC 주소 스푸핑

  • 타겟 호스트의 MAC 주소위협 행위자 호스트의 MAC 주소를 변경
  • 스위치는 현재 MAC 테이블 항목을 덮어쓰고 타겟 호스트로 향하는 프레임을 공격 호스트로 전달
  • 타겟 호스트가 트래픽 전송 -> 스위치가 오류를 수정하여 MAC 주소를 원래의 포트로 다시 되돌릴 수 있음 -> but, 위협 행위자는 스위치가 스푸핑된 정보를 계속 유지하도록 지속적으로 공격 프레임을 스위치에 보내는 프로그램이나 스크립트 사용 가능

- Layer 2 스위치는 MAC 주소의 소스를 확인할 수 있는 보안 메커니즘이 없으므로 스푸핑 공격에 매우 취약

-> IP 소스 가드(IPSG)를 구현하여 IP 및 MAC 주소 스푸핑 완화 가능

 

 

STP Attack

  • 루트 브리지를 스푸핑하여 네트워크 토폴로지를 변경하는 방식
  • STP 조작 공격을 위해 공격 호스트는 스패닝 트리 재계산을 강제하는 구성과 토폴로지 변경 정보를 포함하는 STP 브리지 프로토콜 데이터 유닛(BPDU)을 브로드 캐스트
  • 공격 호스트가 보낸 BPDU는 루트 브리지로 선택 -> 더 낮은 브리지 우선 순위를 가지도록 함 -> 이러한 이슈는 LAN 공격 의도와 상관없이 단순히 이더넷 스위치를 네트워크에 추가할 경우에도 발생
  • STP 공격은 모든 액세스 포트에 BPDU Guard를 구현하여 완화 가능 -> BPDU가 오고가지 못하게 포트를 막아버림

 

LAN 정찰 공격

  • LLDP(LInk Layer Discovery Protocol)과 CDP(Cisco Discovery Protocol)은 모두 Layer 2 링크 검색 프로토콜 -> 장치에 활성화 되어 있을 경우 위협 행위자의 LAN 공격에 활용될 수 있음
  • 링크 검색 프로토콜 정보는 암호화되지 않고 인증되지 않은 주기적인 브로드캐스트를 통해 해당 프로토콜을 지원하는 포트로 전송됨   -> 장치의 IP 주소, IOS 버전, 플랫폼 기능, 네이티브 VLAN 정보 등
  • 정찰 공격을 막기 위해 -> 해당 장치 또는 포트에서 해당 프로토콜의 사용을 제한

 

스위치 보안 기술

포트 보안

  • 포트에 허용되는 유효한 MAC 주소의 값과 MAC 주소의 수를 제한
  • 포트 보안 에이징 
  • MAC 주소 제한
  • MAC 주소 수동 구성 및 동적 학습 -> 신뢰하는 맥 주소 설정
  • 포트 보안 위반 모드 -> 위반이 발생했을 때, 제재 방법 shutdown, restrict(경고 메시지), protect

 

VLAN 공격 완화

  1. switchport mode access 명령으로 트렁킹이 아닌 포트에서 DTP 협상을 비활성화
  2. 사용하지 않는 포트 비활성화 -> 사용하지 않는 VLAN 할당
  3. switchport mode trunk 명령으로 트렁킹 포트에 대한 트렁크 링크를 수동으로 활성화
  4. switchport nonegotiate 명령으로 트렁킹 포트에 대한 DTP 협상을 비활성화
  5. switchport trunk native vlan vlan_number 명령으로 네이티브 VLAN을 VLAN 1이 아닌 다른 VLAN으로 설정

 

DHCP 공격 완화: DHCP Snooping

  • DHCP 메시지를 필터링, 신뢰할 수 없는 포트의 DHCP 트래픽 속도 제한
  1. ip dhcp snooping 전역 설정 모드 명령 -> DHCP 스누핑 활성화
  2. 신뢰할 수 있는 포트에 ip dhcp snooping trust 
  3. 신뢰할 수 없는 포트에 ip dhcp snooping limit rate packets-per-second -> 메시지 수 제한
  4. ip dhcp snooping vlan 전역 설정 모드 명령 -> VLAN 또는 VLAN 범위 별로 DHCP 스누핑 활성화

 

ARP 공격 완화: Dynamic ARP Inspection (DAI)

  • ARP spoofing과 그로 인한 ARP poisoning을 방지하기 위해 -> 스위치에서 유효한 ARP request/reply만 릴레이되도록 해야 함
  • DAI는 DHCP 스누핑을 필요로 함
  • 유효 X, 불필요 ARP 응답 -> 동일한 VLAN의 다른 포트로 릴레이 X
  • 신뢰 X 포트의 모든 ARP 요청/응답인터셉트
  • 인터셉트한 각 패킷의 IP-MAC 바인딩의 유효성 확인
  • 유효하지 않은 소스로부터의 ARP 요청 -> 드롭 및 로깅 -> ARP poisoning 방지
  • 구성된 DAI ARP 패킷 수를 초과하는 경우 인터페이스를 오류-비활성화

-> src-mac, dst-mac, ip 따로 입력하지 말고 한 번에 입력

 

STP 공격 완화

PortFast

  • Listen 및 Learning 상태를 우회 -> 포트를 blocking 상태에서 forwarding 상태로 즉시 전환
  • 사용자 액세스 포트에만 적용. 스위치 간 링크의 PortFast는 스패팅 트리 루프 생성 가능
  • 포트를 빠르게 동작? -> 그 포트에 연결되는 호스트는 모두 액세스 모드로 작동하는 일반 호스트 -> 이웃 장치가 뭔지, 어떤 negotiation을 할지 확인 X

BPDU Guard

  • BPDU Guard -> BPDU 수신하는 포트를 즉시 오류-비활성화(error-disable)
  • PortFast와 마찬가지로 최종 사용자 장치에 연결된 인터페이스에만 구성 

 

ACL(Access Control Lists)

ACL이란

  • 패킷 헤더 정보(3계층의 pdu -> ip 주소, port 정보 등을 확인) 기반의 패킷 필터링에 사용되는 일련의 IOS 명령
  • 인터페이스에 ACL을 적용 -> 인터페이스를 통과하는 패킷의 전달 여부 결정
  • ACE(Access Control Entries) -> 허용(permit) 또는 거부(deny) 명령문의 순차적 목록

라우터에 의해 수행되는 몇몇 작업에는 ACL을 이용한 트래픽 식별 필요

  • 네트워크 트래픽 제한 -> 네트워크 성능 향상
  • 트래픽 흐름 제어 제공
  • 네트워크 접속을 위한 기본 수준의 보안 제공
  • 트래픽 유형에 따른 트래픽 필터링
  • 네트워크 서비스에 대한 호스트 액세스 허용 또는 거부
  • 특정 네트워크 트래픽 클래스에 대한 우선 순위 제공

 

패킷 필터링

  • 송수신 패킷 분석 -> 주어진 기준에 따라 전달 혹은 폐기 -> 네트워크에 대한 접속을 제어
  • Layer 3 또는 4에 적용 가능

ACL 패킷 필터링 유형

  • 표준 ACL - 출발지 IPv4 주소만 사용 -> layer3 트래픽 필터링
  • 확장 ACL - 출발지 및 목적지 IPv4 주소를 사용 -> layer3 트래픽 필터링, 세밀한 제어를 위해 TCP/UDP 포트와 프로토콜 유형 정보를 선택적으로 사용 -> layer4와 애플리케이션에 대한 필터링 가능

 

ACL 동작

  • ACL: 라우터의 인바운드 인터페이스로 들어오는 패킷, 라우터를 통해 릴레이 되는 패킷, 라우터의 아웃바운드 인터페이스로 나가는 패킷에 대한 추가적 제어를 하는 규칙들의 집합을 정의
  • 인바운드 트래픽과 아웃바운드 트래픽에 적용하도록 ACL 구성 가능(ACL은 라우터 자체에서 발생한 패킷에는 적용 불가)
  • 인바운드 ACL -> 패킷이 아웃바운드 인터페이스로 라우팅되기 전 패킷 필터링
  • 인바운드 ACL -> 패킷을 폐기하는 경우, 라우팅 룩업을 하지 않음 -> 오버헤드 감소
  • 아웃바운드 ACL -> 인바운드 인터페이스에 관계없이, 라우팅 이후 패킷 필터링 수행

라우팅 룩업: 라우터에 수신된 패킷 내 목적지 주소가 라우터 자신의 라우팅 테이블 내에 존재하는지 검색

 

  • 인터페이스에 ACL 적용할 때 특정 운영 절차 따라야 함

인바운드 표준 IPv4 ACL이 구성된 라우터 인터페이스에서의 단계별 동작

  1. 패킷 헤더에서 출발지 ipv4 주소 추출
  2. 첫 번째 ACE로부터 시작 -> 출발지 IPv4 주소를 각각의 ACE와 순차적 비교
  3. 일치하는 항목이 있으면 -> 해당 명령 수행하여 패킷을 허용 또는 거부 -> ACL의 나머지 ACE는 검토 X
  4. ACL의 어떤 ACE와도 일치하지 않으면 -> 암시적 거부 ACE가 모든 ACL에 자동으로 적용되어 있기 때문에 -> 패킷은 폐기

ACL의 마지막 ACE 문장은 항상 모든 트래픽을 차단하는 암시적 거부(implicit deny)

  • 구성 파일에 표시 X -> ACL에는 최소 하나 이상의 허용 명령문이 있어야 함 -> 그렇지 않으면 암시적 거부 문장으로 인해 모든 트래픽 거부됨

 

ACL 와일드카드 마스크

  • ANDing 프로세스 -> IPv4 주소에서 일치하는 비트 확인 
  • IPv4 ACE -> 32-bit 와일드카드 마스크를 다음 규칙을 사용하여 정보 일이 여부 확인
와일드카드 마스크 비트 0 - 주소의 해당 비트 값을 확인
와일드 카드 마스크 비트 1 - 주소의 해당 비트 값을 무시
ex1) access-list 10 permit 192.168.1.0 0.0.0.255 (192.168.1.0/24) -> 새로 들어온 ip packet에 와일드카드 마스크 0.0.0.255를 씌운 결과가 192.168.1.0이라면 permit이라는 의미
ex2) access-list 20 permit 192.168.16.0 0.0.15.255(192.168.16.0/24 ~ 192.168.31.0/24)
-> 와일드카드 마스크 00000000 00000000 00001111 11111111
-> 192.168. 0001 0000 . 0 ~ 192.168. 0001 1111 . 255는 모두 결과가 192.168.16.0

와일드카드 마스킹 키워드

  • host - 단 하나의 호스트 주소만을 필터링하기 위해 32비트 주소 전체가 일치해야 함을 명시(0.0.0.0 와일드카드 마스크를 대체)
  • any - IPv4 주소 전체를 무시, 즉 모든 주소를 허용함을 명시(255.255.255.255 와일드카드 마스크를 대체)

 

ACL 생성 지침

  • 인터페이스 당 제한된 수의 ACL: 라우터 인터페이스에 적용할 수 있는 ACL 수가 제한됨
  • 인바운드 및 아웃바운드 IPv4 ACL 각각 1개
  • 인바운드 및 아웃바운드 IPv6 ACL 각각 1개

ACL 모범 사례

지침 이점
ACL은 기관의 보안 정책을 기반으로 함 기관의 보안 지침을 확실히 구현 가능
ACL에서 수행해야 할 작업을 작성 실수로 인한 잠재적 접속 문제 발생 방지 가능
텍스트 편집기를 사용한 ACL 생성, 편집, 저장 재사용 가능한 ACL 라이브러리 작성 가능
remark 명령(주석)을 사용한 ACL 문서화 ACE의 목적을 이해하는 데 도움이 됨
ACL을 프로덕션 네트워크에 구현하기 전에 개발 환경에서 테스트 비용이 많이 드는 오류 방지에 도움이 됨

 

numbered ACL

  • 표준 ACL: 번호가 1-99 또는 1300-1999인 ACL
  • access-llist 10 permit 192.1688.10.0 0.0.0.255
  • 확장 ACL: 번호가 100-199 또는 2000-2699인 ACL
  • access-list 100 permit tcp 192.168.10.0 0.0.0.255 any eq www -> tcp 프로토콜을 사용하여 192.168.10.0/24 네트워크에서 오는 모든 트래픽(eq www -> 포트80)을 허용

named ACL

  • ACL 구성 시 이름을 지정한 ACL 사용을 권장 -> ACL의 목적 또는 용도 확인 용이

 

ACL 배치 위치

  • 모든 ACL은 효율성 측면에서 가장 좋은 곳에 배치해야 함
  • 표준 ACL -> 목적지에 가능한 가까운 곳
  • 확장 ACL -> 출발지에 가능한 가까운 곳

-> 192.168.10.0 네트워크로부터 오는 트래픽을 pc3으로 오지 못하게 막아야 함

-> 표준 ACL: R3의 좌측 포트에 ACL을 설정 -> 표준 ACL은 출발 주소를 기준으로 필터링하기 때문에 초반 부분에 설정하면 과도하게 많은 트래픽을 필터링할 수 있음

-> 확장 ACL: R1의 좌측 포트에 설정 -> 출발 주소 이외에도 세밀한 조건을 바탕으로 필터링 가능 -> 초반부 불필요한 트래픽을 차단할 수 있음

 

ACL 구성

표준 IPv4 ACL 구성

  • numberd std ACL: access-list access-list-number {deny | permit | remark text} source [source-wildcard] [log]
  • log: (선택 사항) ace 매칭 시 해당 내용에 대한 정보 메시지 생성 및 전송
  • named std ACL: ip access-list standard 명령 사용

 

표준 IPv4 ACL 적용

numbered ACL

access-list 10 remark ACE permits ONLY host 192.168.10.10 to the internet -> access-list 10에 대한 주석 설정
access-list 10 permit host 192.168.10.10 -> 192.168.10.10 하나의 주소에 대해서 permit
do show access-lists -> access-lists 출력

access-list 10 remark ACE permits all host in LAN 2
access-list 10 permit 192.168.20.0 0.0.0.255
do show access-lists

interface Serial 0/1/0 -> interface serial 0/1/0에 대해 
ip access-group 10 out -> 나가는 방향으로 설정
end

named ACL

no access-list 10
ip access-list standard PERMIT-ACCESS
remark ACE permits host 192.168.10.10
permit host 192.168.10.10

remark ACE permits all hosts in LAN 2
permit 192.168.20.0 0.0.0.255
exit

interface Serial 0/1/0
ip access-group PERMIT-ACCESS out
end

-> 10, 20은 ace의 번호

 

 

표준 IPv4 ACL을 사용한 VTY 포트 보안 구성

  • ACL을 생성하여 원격 액세스를 허용해야 하는 관리용 호스트 식별
  • vty 라인의 수신 트래픽에 ACL을 적용
access-class {access-list-number access-list-name} { in | out }

username ADMIN secret class -> 사용자 이름 ADMIN, 비밀번호 class
ip access-list standard ADMIN-HOST -> ADMIN-HOST 이름을 가지는 표준 ACL 생성
remark This ACL secures imcoming vty lines 
permit 192.168.10.10 
deny any
exit
line vty 0 4 -> 원격 접속을 위해 사용되는 가상 터미널 라인 0 - 4
login local -> 로그인 로컬 사용자 데이터베이스를 이용하여 로그인 인증 수행
transport input telnet -> 텔넷을 통한 접속 허용
access-class ADMIN-HOST in -> ADMIN-HOST ACL을 inbound 트래픽에 적용 (vty 라인으로 들어오는 트래픽 필터링)
end

 

확장 IPv4 ACL 구성

  • numberd std ACL: access-list access-list-number 
  • named std ACL: ip access-list extended access-list-name
access-list 100 permit tcp any any eq www
access-list 100 permit tcp any any eq 80

특정 프로토콜 이름이 목록에 없는 경우 포트 번호로 구성
access-list 100 permit tcp any any eq 22

numbered extended ACL
- 192.168.10.0 네트워크로부터의 HTTP 및 HTTPS 트래픽 모두 허용
- 출발지 가까이 적용
- ACL 110은 R1 G0/0/0 인터페이스에 인바운드 방향으로 적용

access-list 110 permit tcp 192.168.10.0 0.0.0.255 any eq www
access-list 110 permit tcp 192.168.10.0 0.0.0.255 any eq 443
interface g0/0/0
ip access-group 110 in
exit

 

TCP Established 확장 ACL

  • TCP established 키워드 -> 기본적인 상태 저장 방화벽 서비스 지원 가능
  • established: 내부 트래픽이 내부 프라이빗 네크워크를 빠져나갈 수 있게 하고, 반환되는 응답 트래픽이 내부 프라이빗 네트워크로 들어오도록 허용
  • 외부 호스트에서 생성되어 내부 호스트와 통신하려는 TCP 트래픽은 거부

TCP Established 확장 ACL 예제

 

  • ACL 120은 내부 호스트로의 웹 트래픽 응답만 허용하도록 구성
  • R1 G0/0/0 인터페이스의 아웃바운드 방향으로 적용
access-list 120 permit tcp any 192.168.10.0 0.0.0.255 established
interface g0/0/0

ip access-group 120 out
end

show access-lists

 

named extended IPv4 ACL

  • ip access-list extended access-list-name

named extended IPv4 ACL 시나리오

  • SURFING - 내부 HTTP 및 HTTPS 트래픽이 인터넷으로 나가는 것을 허용
  • BROWSING - R1 G0/0/0 인터페이스를 통해 내부 호스트로 돌아오는 웹 트래픽만 허용 -> 다른 모든 트래픽은 암묵적으로 거부

ip access-list extended SURFING 
Remark Permits inside HTTP and HTTPS traffic
permit tcp 192.168.10.0 0.0.0.255 any eq 80
permit tcp 192.168.10.0 0.0.0.255 any eq 443
exit

ip access-list etended BROWSING 
Remark Only permit returning HTTP and HTTPS traffic
permit tcp any 192.168.10.0 0.0.0.255 estrablished
exit

interface g0/0/0
ip access-group SRUFING in
ip access-group BROWSING out
end

show access-lists