일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 분류
- regression
- AI
- PCA
- Classification
- 딥러닝
- ChatGPT
- deep learning
- gpt
- GPT-4
- 티스토리챌린지
- 머신러닝
- LG Aimers 4th
- 해커톤
- supervised learning
- 오블완
- LG Aimers
- 지도학습
- LLM
- 회귀
- LG
- Machine Learning
- OpenAI
Archives
- Today
- Total
SYDev
[컴퓨터 네트워크] 11주차 : 네트워크 보안, LAN 보안 개념, 스위치 보안 기술, ACL 본문
경희대학교 유인태 교수님의 컴퓨터네트워크 수업을 기반으로 정리한 글입니다.
네트워크 보안 - 개요
보안 위협
- 네트워크 상의 서비스 품질을 보장하면서도 데이터를 보호하는 것과 동시에 환경까지 고려해야 함
- 네트워크 보안에는 데이터를 보호하고 위협을 완화하기 위한 다양항 프로토콜, 기술, 장치, 도구가 필요
- 위협 벡터: 외부 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 공격 완화
- switchport mode access 명령으로 트렁킹이 아닌 포트에서 DTP 협상을 비활성화
- 사용하지 않는 포트 비활성화 -> 사용하지 않는 VLAN 할당
- switchport mode trunk 명령으로 트렁킹 포트에 대한 트렁크 링크를 수동으로 활성화
- switchport nonegotiate 명령으로 트렁킹 포트에 대한 DTP 협상을 비활성화
- switchport trunk native vlan vlan_number 명령으로 네이티브 VLAN을 VLAN 1이 아닌 다른 VLAN으로 설정
DHCP 공격 완화: DHCP Snooping
- DHCP 메시지를 필터링, 신뢰할 수 없는 포트의 DHCP 트래픽 속도 제한
- ip dhcp snooping 전역 설정 모드 명령 -> DHCP 스누핑 활성화
- 신뢰할 수 있는 포트에 ip dhcp snooping trust
- 신뢰할 수 없는 포트에 ip dhcp snooping limit rate packets-per-second -> 메시지 수 제한
- 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이 구성된 라우터 인터페이스에서의 단계별 동작
- 패킷 헤더에서 출발지 ipv4 주소 추출
- 첫 번째 ACE로부터 시작 -> 출발지 IPv4 주소를 각각의 ACE와 순차적 비교
- 일치하는 항목이 있으면 -> 해당 명령 수행하여 패킷을 허용 또는 거부 -> ACL의 나머지 ACE는 검토 X
- 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
'3학년 1학기 전공 > 컴퓨터 네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] 13주차 : 무선 LAN (0) | 2024.06.05 |
---|---|
[컴퓨터 네트워크] 12주차 : 리던던트 네트워크, STP 개념, 이더채널, FHRP (1) | 2024.06.03 |
[컴퓨터 네트워크] 10주차 : VLAN 활용, VLAN 트렁크, DTP, Inter-VLAN 라우팅 (0) | 2024.05.13 |
[컴퓨터 네트워크] 9주차: 2계층 스위치, 스위칭 개념, VLAN 개념 (0) | 2024.05.09 |
[컴퓨터 네트워크] 6주차: 거리-벡터 라우팅 프로토콜 (1) | 2024.04.12 |