creator9087 2024. 7. 25. 11:56

Wildcard Mask

• Wildcard Mask는 역 서브넷 마스크
▪ 즉. Wildcard Mask의 0 과 1은 서브넷 마스크의 반대


ACL  - 지원 기능의 차이

 

Filtering => L3장비 방화벽처럼 사용 가능 Permit/Deny   

• 네트워크의 특정 부분에 도달하는 트래픽을 access-list를 이용해 허용하거나 거부

 

Classification => PAT, Dynamic NAt 사용

• 특정 네트워크 트래픽을 access-list를 이용해 선택 할 수 있음

 

Filtering

• Access-list 생성 후 배치할 수 있는 지점
      • Inbound 적용
            ▪ 라우터에 도달하는 모든 패킷을 ACL에 대해 확인 

      • Outbound 적용
            ▪ 라우터를 통과하여 인터페이스를 벗어나면 ACL에 대해 확인 

      • VTY 라인에 적용해 Telnet 또는 SSH 트래픽 보호

 

ACL Work

• ACL 1에 3개의 규칙이 적용 됨 (10,20,30) , 그리고 이 규칙은 Top-Down 방식으로 동작 

• 특정 규칙과 일치하면 즉각 조치 (Permit / Deny)
• 모든 ACL 가장 아래에는 deny any 규칙이 생략 되어 있음
     1) 10 규칙과 일치 하지 않으면 20 규칙과 일치 하는지 확인 

     2) 20 규칙과 일치 하지 않으면 30 규칙과 일치 하는지 확인

     3) 30 규칙과 일치 하지 않으면 패킷 삭제    => Deny any

 

=>

특정 Traffic 허용, 나머지 모두 거부 => white list 방식

 

ACL Type => L3 패킷은 어디를 참조해서 ACL과 비교하는지에 따라 다름

• Standard Access-List  
     ▪ IP Packet의 Source IP 확인 

• Extended Access-List
     ▪ IP Packet의 Source IP , Destination IP 및 Layer4(포트) 정보 확인

 

 

ACL Recognition

 

Standard ACL Example.1

 

 

 

Extended ACL Example.1

 

Named ACL Example.1

 

 

Protocol.pkt
0.24MB

 

 

더보기

HTTP,HTTPS
WEB 서비스
HTTP : TCP 80 
HTTPS : TCP 443

DHCP
IP 자동할당 서비스 
Subnet Mask / Gateway / DNS 포함
Server : UDP 67
Client : UDP 68

Telnet,SSH
원격 접속 서비스
Telnet : TCP 23
SSH : TCP 22

DNS
FQDN에 대한 IP 정보를 제공 해주는 서비스 
UDP 53

FTP,TFTP
원격 파일 전송 서비스
FTP : TCP 21,20 
TFTP : UDP 69

NTP
시간 동기화 서비스
UDP 123

Syslog
Log 수집 서비스
UDP 514

 

 

ACL.pkt
0.05MB

 

Standard ACL 

 

 

준비1. R2에서 내부 10.0.1.0/24 , 10.0.2.0/24 경로에 대해 Static 설정 하세요.

 

더보기

R2

Router(config)#ip route 10.0.0.0 255.255.252.0 10.0.0.1

 

준비2. 모든 PC가 R1 및 R2와 통신 되도록 설정 하세요.

 

 

Q1. 10.0.2.0/24 서브넷의 모든 호스트에서 R2로 향하는트래픽을 거부하도록 번호가 매겨진 표준 ACL을 R1에 적용 

조건1. 10.0.1.0/24 및 10.0.2.0/24 서브넷의 PC는 서로 연결 유지
조건2. 10.0.1.0/24 서브넷의 PC는 R2에 연결 유지

 

더보기

access-list 1 deny 10.0.2.0    0.0.0.255 

access-list 1 permit any

any는 모두이므로  허용시 범위를 좁게 해주면 좋음

=> any를 10.0.1.0     0.0.0.255 


access-list 1 deny 10.0.2.0 0.0.0.255 
access-list 1 permit 10.0.1.0 0.0.0.255
or
access-list 1 permit 10.0.1.0 0.0.0.255 
access-list 1 deny any


int eth1/0

ip access-group 1 out

=> inbound 목적지를 봄 outbound 출발지

standard ACL은 source IP를 보기 때문에 outbound 정책

 

확인1. PC1 , PC2 - R2 통신 가능
확인2. PC3 - R2 통신 불가
확인3. PC3 - PC1 - PC2 통신 가능

 

ACL.pkt
0.05MB

 

 

 

Extended ACL

 

준비1. R2에 Telnet 활성화를 하고 접근 비밀번호 ‘cisco123’ 설정하세요.

더보기

R2

Router(config)#line vty 0 15

Router(config-line)#password cisco123
Router(config-line)#login

 

Q1. PC1에서 R2로 Telnet 접근을 허용하는 번호가 매겨진 확장 ACL을 R1에 구성 하고 적용 하세요. 
조건1. 기존 Standard ACL 변경 하지 않음

 

더보기

R1

Router(config)#access-list 100 permit tcp host 10.0.1.10 host 10.0.0.2 eq 23
Router(config)#access-list 100 deny tcp  10.0.1.0 0.0.0.255 host 10.0.0.2 eq 23
Router(config)#access-list 100 permit ip any any

 

Router(config)#int eth1/2

Router(config-if)#ip access-group 100 in

 

확인1. PC1 - R2 통신 가능 , telnet 연결 가능
확인2. PC2 - R2 통신 가능 , telnet 연결 불가
확인3. PC3 - R2 통신 불가 , telnet 연결 불가
확인4. 모든 PC 간 통신 가능
확인5. ACL에서 허용한 telnet 패킷 수

 

Named Extended ACL

 

준비1. 번호가 매.
준비2. 번호가 매겨진 확장 ACL은 삭제하지 마세요.
Q1. 아래의 조건으로 이름이 지정된 확장 ACL을 구성하고 적용 하세요.
조건1. PC1 – R2 Telnet 허용
조건2. 10.0.1.0/24 네트워크의 다른 모든 PC에 대해 R2 Telnet 거부
조건3. PC2 – R2 ICMP 허용 
조건4. 10.0.1.0/24 네트워크의 다른 모든 PC에 대해 R2 ICMP 거부

 

더보기

ip access-list extended e1/2_in

Router(config-ext-nacl)#permit tcp host 10.0.1.10 host 10.0.0.2 eq 23

Router(config-ext-nacl)#deny tcp 10.0.1.0  0.0.0.255 host 10.0.0.2 eq 23

Router(config-ext-nacl)#permit icmp host 10.0.1.11 host 10.0.0.2

Router(config-ext-nacl)#deny icmp 10.0.1.0 0.0.0.255 host 10.0.0.2

permit ip any any

 

Router(config)#int eth1/2

no ip access-group 100 in

Router(config-if)#ip access-group e1/2_in in

 

확인1. PC1 - R2 통신 불가 , telnet 연결 가능
확인2. PC2 - R2 통신 가능 , telnet 연결 불가
확인3. PC3 - R2 통신 불가 , telnet 연결 불가
확인4. 모든 PC 간 통신 가능

 

ACL 완.pkt
0.05MB

 


summary

ACL 
Filtering 
생성된 List를 Interface에 적용해 특정 출발지 , 특정 목적지 , 특정 프로토콜 통신에 대한 Permit / Deny 결정
1 interface = 1 access-group 
Classification
생성된 List를 다른 명령어에서 불러들여 매치되는 경로 , 트래픽에 대해 조건 부여

Numbered ACL

 

Standard
ACL 1~99
Source IP/Network 설정 
Classification 용도로 주로 사용

 

Extended 
ACL 100~199
Protocol , Source IP/Network , Destination IP/Network (Option : Destination Port number) 설정

Named ACL

 

Standard
Source IP 설정
수정 가능

 

Extended
Protocol , Source IP/Network , Destination IP/Network (Option : Destination Port number) 설정
수정 가능

 

Top - Down 순서로 확인
모든 ACL 마지막 Line은 Deny any 생략 (표준 / 확장) 
inbound , outbound 적용 가능
범위가 작은 규칙 부터 설정 권장
표준 ACL은 출발지와 가깝게 설정
확장 ACL은 목적지와 가깝게 설정
VTY 라인에 적용해 Remote 접속 Control 가능 (inbound)


방화벽 

• 신뢰할 수 있는 네트워크와 신뢰할 수 없는 네트워크 사이의 장벽 

• LAN 과 WAN 사이에 사용
     ▪ 즉. 데이터 전달 경로에 배치되어 패킷을 드롭 / 허용

ethernet  UTP/Fiber cable 사용 Router 대신 L3SW 사용가능 =>  사용 여부 선택 사항

Serial은 Router 전용

방화벽 L3 기능도 해서 Router 대신 역할 수행 가능 => 사용 여부 선택 사항

 

Stateless Filtering 

• 라우터는 ACL을 사용해 Source / Destination / Port number 확인
     ▪ 패킷을 수신하면 ALC 매치 후 Permit 또는 Deny
     ▪ 단일 패킷 또는 수천 개의 패킷을 수신해도 각 패킷을 개별적으로 처리 

     ▪ 이전에 본적이 있거나, 본적이 없는 패킷은 추적하지 않음

 

Stateful Filtering 

• 방화벽은 모든 들어오는 또는 나가는 Connection 추적
     1) LAN 환경의 컴퓨터를 이용해 메일서버 연결
     2) TCP 3-Way handshake 진행 과정을 방화벽은 모니터링 

     3) 방화벽은 이 연결을 기억하고 메일서버에 대한 응답을 자동으로 컴퓨터에게 들어오는 것을 허용

 

Packet Inspection    

• 대부분의 방화벽은 어떤 형태로든 Deep Packet inspection 지원
     ▪ ACL은 단순히 IP 와 Port number 확인
• Inspection은 OSI model의 Layer7 까지 확인 가능   => L7 방화벽
     ▪ 애플리케이션 헤더 및 실제 데이터 까지 확인

 

• IP 차단 대신 URL 차단 가능 

• 페이로드를 확인해 바이러스 및 웜 패킷 차단

 

Security Zone 

• 라우터는 기본적으로 라우팅 테이블을 기반으로 데이터를 허용/처리
     ▪ 이를 제한하기 위해서는 ACL 필요
     ▪ 많은 ACL과 많은 인터페이스는 관리의 어려움이 발생

 

• 방화벽은 Zone 기반으로 데이터를 허용/처리

 

• DMZ를 운영하는 경우 INSIDE 와 OUTSIDE 사이의 Security Level 사용 => cisco 기준 

=>ACL없이 가능

[높은 SL -> 낮은 SL 허용]  O, [낮은 SL -> 높은 SL 허용]  X, [높은 SL -> 낮은 SL -> 높은 SL ]허용  O

Summary 

• 방화벽은 상태 정보 필터링을 사용해 모든 IN/OUT 연결 추적 

• OSI 7계층 까지 검사 가능(DPI)
• Zone 과 Security Laver 기반 동작으로 손쉽게 운영 가능

 

CBAC (Context-Based Access Control)   => 실제로 방화벽을 더 많이 쓰고, 별로 안씀

• L3 / L4 계층의 트래픽 뿐만 아니라 응용계층 트래픽 까지 제어 가능 

• Stateful 방화벽 기능 지원
• CBAC 동작
     1) 돌아오는 패킷을 허용하는 임시 ACL 생성 - Dynamic ACL                

     2) ACL이 이미 있다면 해당 ACL 우선 적용

     3) 패킷 처리 후 임시 ACL 삭제

 

Basic CBAC (Context-Based Access Control)

• 정책 결정
     ▪ 외부에서 내부로 접근하는 모든 트래픽 차단 

     ▪ TCP , UDP 및 ICMP 패킷만 되돌아 올 수 있도록 허용

 

 

 

 

• TCP , UDP , ICMP를 모두 검사하고 돌아올 때 허용할 임시 ACL을 만들어 기존 ACL 상단에 추가 

• E0/1 인터페이스에서 패킷이 외부로 빠져나가는 시점에 임시 ACL 생성

 

 

 

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

• 이 ACL에 의해 돌아오는 텔넷 패킷 허용

 

 

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

• 이 ACL에 의해 돌아오는 ICMP 패킷 허용

 

• 여전히 외부에서 시작해 내부로 들어오는 패킷은 모두 차단됨

 

• 정책 결정
     ▪ 외부에서 내부로 접근하는 모든 트래픽 차단

     ▪ 내부로 돌아오는 TCP 패킷 중 HTTP만 허용

 

 

• audit-trail on : 해당 패킷의 log 출력

• R2의 Inside 방향에 있는 e0/0 인터페이스에 CBACA in 적용 (e0/1 out 과 결과는 동일)

 

 

 

 

CBAC

R2 = 2811 Router 사용 하세요.
R4 Telnet Test는 FTP Test로 대신 하세요.
내부 ⇒ 외부 통신시 R2의 f0/1 IP로 PAT되도록 설정 하세요.
즉. 1.1.12.0/24은 Private Network

 

 

 

더보기

ip route 1.1.12.0 255.255.255.0 1.1.23.2

=> 위에 방식 위에 토폴로지 상에 문제없지만 큰 시점에서 볼 때 default route !!!!!사용이 맞음 

R1

Router(config)#ip route 0.0.0.0  0.0.0.0   1.1.12.2

 

R2

Router(config)#ip route 0.0.0.0  0.0.0.0   1.1.23.3

 

R3

Router(config)#ip route 0.0.0.0   0.0.0.0   1.1.23.2

 

R2

Router(config)#access-list 1 permit 1.1.12.0 0.0.0.255

Router(config)#ip nat inside source list 1 interface fa0/1 overload

 

더보기

R2

 Router(config)#ip access-list extended outside-acl-in

Router(config-ext-nacl)#deny ip any any

Router(config)#int fa0/1

Router(config-if)#ip access-group outside-acl-in in

 

Router(config)#ip inspect name Outside-outbound tcp

Router(config)#ip inspect name Outside-outbound udp

Router(config)#ip inspect name Outside-outbound icmp

Router(config)#int fa0/1

Router(config-if)#ip inspect Outside-outbound out

 

Router(config)#ip inspect name test11 tcp audit-trail on

 

ZFW (Zone-Based Policy Firewall) 

• CBAC 단점
     ▪ 인터페이스 기반 트래픽 검사로 정책 설정 및 관리 어려움

     ▪ 다수 개의 인터페이스 구성 시 설정이 복잡

 

• 라우터의 각 인터페이스를 특정 Zone에 할당하고, Zone 사이에 보안 정책 적용
     ▪ 전용 방화벽 ASA(cisco firewall)와 유사

 

• Zone / Security Zone
     ▪ 보안 정책이 적용되는 인터페이스 그룹 

• Zone member
     ▪ Zone에 속한 인터페이스 

• Self-Zone
     ▪ 시스템에서 정의한 Default Zone 

     ▪ 라우터의 모든 인터페이스는 Zone 소속 여부와 관계 없이 Self-Zone에 포함 

     ▪ 라우터가 출발지 또는 목적지인 패킷을 제어할 때 사용
• Zone Pair  => insdie zone 과 outside zone  중간 사이에 위치한 연결부
     ▪ 출발지 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 할당

 

Zone 및 Interface 확인

 

통신 확인

 

Zone Pair 생성

 

• Zone Pair를 사용해 두 개의 Zone 간에 단방향 방화벽 정책 정의 

• 출발지 및 목적지 Zone을 지정해 트래픽 방향 설정
     ▪ 리턴 트래픽은 자동으로 허용

 

보안정책 적용 및 확인

 

보안정책 정의

 

보안정책 적용 및 확인

 

보안정책 적용 및 확인

 

ACL-관계

 

Class-map : 트래픽 분류
     ACL 불러옴
Policy-map : Class-map에 정책 할당
     ACL을 갖고 있는 Class-map을 불러옴
     Policy 적용
Service-policy : Policy-map 적용 
     ACL과 Class-map과 Policy를 갖고 있는 Policy-map 불러옴

 

내부 ⇒ 외부 통신시 R2의 f0/1 IP로 PAT되도록 설정 하세요.
즉. 1.1.12.0/24은 Private Network

 

==> 추가 문제
Q. 아래의 조건으로 Outside 에서 Inside로 Telnet 허용 하세요. (기존 설정 삭제)
class-map : class-inbound
policy-map : policy-inbound
zone-pair : Inbound

더보기

Router(config)#ip access-list extended acl-in

Router(config-ext-nacl)#permit tcp any any eq 23

 

Router(config)#class-map type inspect match-all class-inbound

Router(config-cmap)#match access-group name acl-in

 

Router(config)#policy-map type inspect policy-inbound

Router(config-pmap)#class type inspect class-inbound

Router(config-pmap-c)#inspect

%No specific protocol configured in class class-inbound for inspection. All protocols will be inspected

 

Router(config)#zone-pair security Inbound source outside destination inside

Router(config-sec-zone-pair)#service-policy type inspect policy-inbound

 

no ip nat inside source list 1 interface FastEthernet0/1 overload



방화벽(Firewall)이란?
INSPECT & Stateful
방화벽을 기준으로 INBOUND/OUTBOUND traffic을 제어(차단, 허용)하는 장비 
주로 out(외부)에서 in(내부)으로 들어오는 traffic을 기본적으로 차단하여, inside를 보호하는 역할
내부(in)에서 출발한 traffic은 다시 들어올 수 있도록 하는 동작 방식
IOS(CBAC, ZBF), ASA, FTD
Inspect에 의해서 connection table이 생성되고, connection table에 match되는 traffic은 ACL의 적용을 받지 않음

ACL을 통해 방화벽을 구현하기에 어려운 점은?
내부에서 출발하여, 다시 내부로 들어 오는 Traffic과 외부에서 출발하여 내부로 들어오는 Traffic을 ACL로 분류하기에 어려움 (= Stateless)
Dynamic한 Application, Multiple Session을 사용하는 Application을 제어하기 어려움 (inspect 필요)

CBAC
라우터에서 사용하는 Inspect
Context-Based Access Control로 적용된 interface를 통과한 Traffic에 대해 inspect를 진행
Inspect를 통해, Session Table을 생성하고, Return 되는 Traffic이 자동으로 허용되도록 해주는 기능
ACL로는 구현이 불가능한 기능으로  방화벽의 기본 기능
Stateful Firewall 기능 (상태를 감지)
L3~L7까지 감지 가능 (URL Filtering)

ZFW
라우터에서 Zone 기반 Firewall 구현 (Stateful)
Zone 과 Zone을 Zone-pair로 연결해 Zone-pair에 적용된 Traffic에 대해 Inspect 동작
CBAC는 인터페이스 기반의 Inspect 반면 ZFW는 존 기반의 Inspect로 다수의 포트를 한번에 효율적으로 제어 가능
Zone-pair에 정책 적용을 위해 CPL 사용
Class-map : 정책 적용 대상 분류 (ACL , Protocol …)
Policy-map : 분류된 대상을 불러와 적용할 정책 설정 
Service-policy : Policy-map을 Zone-pair에서 불러와 적용