νƒœκ·Έ 보관물: Cisco IOS Firewall

Cisco IOS Firewall 3: IP Fragments, ICMP Flooding

β”Œβ”€ νŠΈλž˜ν”½ 필터링
β”œβ”€ Established 필터링
β”œβ”€ Dynamic ACL
β”œβ”€ Reflexive ACL
β”œβ”€ CBAC
β”œβ”€ IP Fragments 곡격 λ°©μ§€
└─ ICMP Flooding 곡격 λ°©μ§€


[IP Fragments 곡격 λ°©μ§€]

IP ν”„λ‘œν† μ½œμ€ MTU크기(1500Byte)κ°€ μ΄ˆκ³Όν•  λ•Œ, 데이터λ₯Ό λΆ„ν• ν•˜μ—¬ μ „μ†‘ν•œλ‹€. 예λ₯Ό λ“€μ–΄, 데이터 크기가 5000Byteλ©΄, 1500Byte, 1500Byte, 1500Byte, 500Byte둜 λ‚˜λˆ„μ–΄ μ „μ†‘ν•˜λŠ” 것이닀.

κ·ΈλŸ¬λ‚˜ 이 νŠΉμ„±μ„ μ΄μš©ν•˜μ—¬ IP 헀더λ₯Ό μ‘°μž‘ν•œ λ’€ λΆ„ν• λœ νŒ¨ν‚·μ„ νŠΉμ • μ„œλ²„μ— λ¬΄ν•œμœΌλ‘œ μ „μ†‘μ‹œν‚¨λ‹€. μ§€μ†μ μœΌλ‘œ λΆ„ν• λœ νŒ¨ν‚·μ„ λ°›λŠ” μ„œλ²„λŠ” μ„œλ²„ 연결이 λΆˆμ•ˆμ •ν•΄μ§€κ³ , μ„œλ²„κ°€ λ‹€μš΄λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•œλ‹€.

μ΄λŸ¬ν•œ λ¬Έμ œλŠ” λΌμš°ν„°μ—μ„œ λΆ„ν• λœ νŒ¨ν‚·μ„ ν•„ν„°λ§ν•˜λ©΄ μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆλ‹€.

R2λŠ” μ™ΈλΆ€μ—μ„œ λΆ„ν• λœ νŒ¨ν‚·μ΄ λ“€μ–΄μ˜€λŠ” 것을 막아야 ν•œλ‹€.
섀정을 ν•˜κΈ° μ „, R1μ—μ„œ R3둜 λΆ„ν•  νŒ¨ν‚· λ³΄λ‚΄λŠ” 것을 λ””λ²„κΉ…ν•΄λ³΄μž.
(디버깅은 μ•„λž˜μ˜ λͺ…λ Ήμ–΄ μ°Έκ³ )

R1(config)# access-list 110 permit icmp any any
R1(config)# exit
R1# debug ip packet 110

4000Byteλ₯Ό 보내면, νŒ¨ν‚·μ„ λΆ„ν•  ν›„ λ³΄λ‚΄λŠ” 것을 확인할 수 μžˆλ‹€.

[μ„€μ •]
– R2μ—μ„œ λΆ„ν•  νŒ¨ν‚· 필터링 μ„€μ •.

R2(config)# ip access-list extended Fragments_Deny
R2(config-ext-nacl)# deny ip any 6.6.6.0 0.0.0.3 fragments
R2(config-ext-nacl)# deny ip any 192.168.20.0 0.0.0.255 fragments
R2(config-ext-nacl)# permit ip any any
R2(config-ext-nacl)# exit
R2(config)#
R2(config)# int fa0/0
R2(config-if)# ip access Fragments_Deny in

[확인]
– R1μ—μ„œ R3둜 λΆ„ν•  νŒ¨ν‚· μ „μ†‘ν•˜λ©΄ 응닡이 μ—†λ‹€.

– R2μ—μ„œ νŒ¨ν‚· 4κ°œκ°€ μ°¨λ‹¨λœ 것을 확인할 수 μžˆλ‹€.


[ICMP Flooding 곡격 λ°©μ§€]

νŠΈλŸ¬λΈ”μŠˆνŒ…ν•  λ•Œ, 기본적으둜 ν™•μΈν•΄λ³΄λŠ” 것 쀑 ν•˜λ‚˜κ°€ PING ν…ŒμŠ€νŠΈλ‹€. 이 PING이 λ°”λ‘œ ICMPλ₯Ό μ΄μš©ν•œλ‹€. ‘ICMP Echo’ μš”μ²­ λ©”μ„Έμ§€λ₯Ό μ „μ†‘ν•˜λ©΄, ‘ICMP Reply’ 응닡 λ©”μ„Έμ§€λ₯Ό μ „μ†‘ν•œλ‹€. ICMP Flooding 곡격은 이 λ™μž‘ 과정을 μ΄μš©ν•œλ‹€. ‘ICMP Echo’ μš”μ²­ λ©”μ„Έμ§€λ₯Ό λ¬΄ν•œμœΌλ‘œ 전솑해 λͺ©ν‘œ λŒ€μƒμ—κ²Œ μ„œλΉ„μŠ€ κ±°λΆ€, μ„œλ²„ λ‹€μš΄ 문제λ₯Ό μ•ΌκΈ°μ‹œν‚¨λ‹€. μ•žμ „μ— μ‚΄νŽ΄λ³Έ νŠΈλž˜ν”½ ν•„ν„°λ§μœΌλ‘œ ICMPλ₯Ό κ±°λΆ€ν•˜κ±°λ‚˜ QoS Policing을 μ΄μš©ν•΄ ICMP μš©λŸ‰μ„ μ œν•œν•˜μ—¬ 막을 수 μžˆλ‹€.

R2λŠ” μ™ΈλΆ€λ‘œλΆ€ν„° μ˜€λŠ” ICMPλ₯Ό 차단해야 ν•œλ‹€.

[μ„€μ •]

R2(config)# access-list 110 permit icmp any any echo
R2(config)# access-list 110 permit icmp any any echo-reply
R2(config)# 
R2(config)# int fa0/0
R2(config)# rate-limit input access-group 110 128000 8000 8000 conform-action transmit exceed-action drop

[확인]

– R1μ—μ„œ R3둜 8000Byte νŒ¨ν‚· 전솑

PING ν…ŒμŠ€νŠΈ κ²°κ³Ό, 쀑간 쀑간 μ‹€νŒ¨λ˜λŠ” 것을 λ³Ό 수 μžˆλ‹€.

– R2μ—μ„œ rate-limit 확인

conformed 52 packets: 52개 νŒ¨ν‚· 처리 / exceeded 13 packets: ν•œλ„ 초과된 13개 νŒ¨ν‚· λ“œλž

Cisco IOS Firewall 2: Reflexive ACL, CBAC

이번 κ²Œμ‹œκΈ€μ€ Reflexive ACLκ³Ό CBAC에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•œλ‹€.

β”Œβ”€ νŠΈλž˜ν”½ 필터링
β”œβ”€ Established 필터링
β”œβ”€ Dynamic ACL
β”œβ”€ Reflexive ACL
β”œβ”€ CBAC
β”œβ”€ IP Fragments 곡격 λ°©μ§€
└─ ICMP Flooding 곡격 λ°©μ§€


[Reflexive ACL]

λ‚΄λΆ€μ—μ„œ μ™ΈλΆ€λ‘œ νŒ¨ν‚·μ„ μ „μ†‘ν•˜λ©΄, μ™ΈλΆ€μ—μ„œ λ‚΄λΆ€λ‘œ 응닡 νŒ¨ν‚·μ„ ν—ˆμš©ν•˜λŠ” ACLν•­λͺ©μ΄ μž„μ‹œλ‘œ μžλ™ μƒμ„±λœλ‹€. μ™ΈλΆ€μ—μ„œ λ¨Όμ € μš”μ²­ν•˜λŠ” νŒ¨ν‚·μ€ μ ‘κ·Ό κ±°λΆ€λœλ‹€.
‘established’ 필터링과 달리 λͺ¨λ“  νŒ¨ν‚·μ— μ μš©ν•  수 μžˆλ‹€.

  • νŠΉμ§•
    1. μž„μ‹œ ν•­λͺ©μ€ 무쑰건 permit으둜 μƒμ„±λœλ‹€.
    2. sourceλŠ” μ™ΈλΆ€, destination은 λ‚΄λΆ€
    3. TCP/UDP νŒ¨ν‚·μΈ 경우, μΆœλ°œμ§€ ν¬νŠΈλŠ” μ™ΈλΆ€μ‹œμŠ€ν…œ, λͺ©μ μ§€ ν¬νŠΈλŠ” λ‚΄λΆ€ μ‹œμŠ€ν…œμœΌλ‘œ μƒμ„±λœλ‹€.
    4. ICMP νŒ¨ν‚·μΈ 경우, ν¬νŠΈλ²ˆν˜Έκ°€ μ—†μœΌλ―€λ‘œ ICMP λ©”μ„Έμ§€ νƒ€μž…μœΌλ‘œ μƒμ„±λœλ‹€.
    5. μƒμ„±λœ μž„μ‹œ ν•­λͺ©μ€ λ§ˆμ§€λ§‰ 응닡 νŒ¨ν‚·μ΄ 처리되면 μ œκ±°λœλ‹€. 예λ₯Ό λ“€μ–΄, TCP ‘FIN’ νŒ¨ν‚·μ΄λ©΄ 5μ΄ˆν›„ ν•­λͺ© 제거, ‘RST’ νŒ¨ν‚·μ΄λ©΄ μ¦‰μ‹œ 제거, λ˜λŠ” νŠΉμ •μ‹œκ°„ λ™μ•ˆ μž„μ‹œν•­λͺ©μœΌλ‘œ 처리된 νŒ¨ν‚·μ΄ μ—†μœΌλ©΄ μ œκ±°ν•  수 μžˆλ‹€.
    5. UDPλŠ” λΉ„μ—°κ²° ν”„λ‘œν† μ½œμ΄λ―€λ‘œ νŠΉμ •μ‹œκ°„μ„ κΈ°μ€€μœΌλ‘œ μž„μ‹œ ν•­λͺ©μ„ μ œκ±°ν•œλ‹€.
    6. Named Extended ACLμ—μ„œλ§Œ μ„€μ •ν•  수 μžˆλ‹€.

R2κΈ°μ€€μœΌλ‘œ Reflexive ACL μ„€μ •.

[μ„€μ •]

R2(confg)# ip access-list extended RACL_OUT
R2(config-ext-nacl)# permit tcp 6.6.6.0 0.0.0.3 192.168.0.0 0.0.0.255 reflect TEST
R2(config-ext-nacl)# permit udp 6.6.6.0 0.0.0.3 192.168.0.0 0.0.0.255 reflect TEST
R2(config-ext-nacl)# permit icmp 6.6.6.0 0.0.0.3 192.168.0.0 0.0.0.255 reflect TEST
R2(config-ext-nacl)# exit
R2(confg)#
R2(confg)# ip access-list extended RACL_IN
R2(config-ext-nacl)# permit ospf any any
R2(config-ext-nacl)# evaluate TEST
R2(config-ext-nacl)# exit
R2(confg)#
R2(confg)# int fa0/0
R2(confg)# ip access-group RACL_OUT outR2
R2(confg)# ip access-group RACL_IN in

2: ‘reflect TEST’λΌλŠ” 값을 톡해 Reflexivce ACL이라고 λͺ…μ‹œν•œλ‹€. TEST λŒ€μ‹  λ‹€λ₯Έ 이름을 μ‚¬μš©ν•΄λ„ λ¬΄λ°©ν•˜λ‹€.
9: ‘evaluate’ λͺ…령을 톡해 μ™ΈλΆ€μ—μ„œ λ‚΄λΆ€λ‘œ λŒμ•„μ˜€λŠ” νŒ¨ν‚·μ„ ν—ˆμš©ν•˜λŠ” Reflexive ACL μž„μ‹œ ν•­λͺ©μ΄ μƒμ„±λ˜λ„λ‘ ν•œλ‹€.

[확인]
– Ping 및 TELNET ν…ŒμŠ€νŠΈ (R1β†’R3)
μ™ΈλΆ€μ—μ„œ λ‚΄λΆ€λ‘œ 접속이 μ‹€νŒ¨ν•œλ‹€.

– Ping 및 TELNET ν…ŒμŠ€νŠΈ (R3β†’R1) ν›„ R2 ACL 정보 확인.
λ‚΄λΆ€μ—μ„œ μ™ΈλΆ€λ‘œ 접속이 μ„±κ³΅ν•œλ‹€.

접속 성곡.
Reflexive ACL에 tcp와 icmp μž„μ‹œ ν•­λͺ©μ΄ μƒμ„±λ˜μ—ˆλ‹€.

[CBAC]

Context-Based Access Control

Reflexive ACLκ³Ό 같이 λ‚΄λΆ€μ—μ„œ μ™ΈλΆ€λ‘œ λ‚˜κ°€λŠ” μ„Έμ…˜μ„ κ²€μ‚¬ν•˜μ—¬, ν•΄λ‹Ή μ„Έμ…˜μ— λŒ€ν•œ 응닡 νŒ¨ν‚·μ„ μˆ˜μ‹ ν•  수 μžˆλ„λ‘ μž„μ‹œ ACL ν•­λͺ©μ„ μƒμ„±ν•œλ‹€.
ν•˜μ§€λ§Œ λͺ‡ κ°€μ§€ 차이점이 μ‘΄μž¬ν•œλ‹€.

  1. FTP와 같이 μ—¬λŸ¬ 포트λ₯Ό μ‚¬μš©ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— λŒ€ν•΄ λ°©ν™”λ²½ κΈ°λŠ₯을 μˆ˜ν–‰ν•œλ‹€.
  2. Layer 3,4λŠ” λ¬Όλ‘  Layer 7 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œν† μ½œκΉŒμ§€ κ²€μ‚¬ν•œλ‹€.
  3. 각 μ—°κ²° μƒνƒœλ₯Ό μ§€μ†μ μœΌλ‘œ κ°μ‹œν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμ— ‘μƒνƒœ κ°μ‹œ 검사 방법’을 μ‚¬μš©ν•œλ‹€.
  4. νŒ¨ν‚·μ΄ μΈν„°νŽ˜μ΄μŠ€μ— λ“€μ–΄κ°ˆ λ•Œλ‚˜ λ‚˜μ˜¬ λ•Œ κ²€μ‚¬λ˜κ³ , μ„Έμ…˜ 정보λ₯Ό μƒνƒœ 정보 ν…Œμ΄λΈ”μ— λ“±λ‘ν•˜κ²Œ λœλ‹€. λ”λΆˆμ–΄, 이 μƒνƒœ ν…Œμ΄λΈ”μ΄ μ‘΄μž¬ν•˜λ―€λ‘œ λ˜λŒμ•„μ˜€λŠ” 응닡 νŒ¨ν‚·μ„ ν—ˆμš©ν•˜κΈ° μœ„ν•΄ ACL ν•­λͺ©μ„ μΆ”κ°€ μ„€μ •ν•  ν•„μš”κ°€ μ—†λ‹€. μƒνƒœ ν…Œμ΄λΈ”μ„ 보고 μžλ™μœΌλ‘œ μΆ”κ°€ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.
  5. TCP SYN νŒ¨ν‚·μ„ κ²€μ‚¬ν•˜μ—¬ TCP SYN ν”ŒλŸ¬λ”” 곡격을 차단할 수 μžˆλ‹€.
  • CBAC μ²˜λ¦¬κ³Όμ •

** μ£Όμ˜μ‚¬ν•­
1. CBAC만 λ‹¨λ…μœΌλ‘œ μ‚¬μš©ν•˜λ©΄ λͺ¨λ“  νŠΈλž˜ν”½μ΄ ν—ˆμš©λ˜λ―€λ‘œ
CBAC에 ν•΄λ‹Ήλ˜λŠ” ν”„λ‘œν† μ½œμ€ CBAC, λ‚˜λ¨Έμ§€ 일반 νŠΈλž˜ν”½μ€ ACL둜 κ΄€λ¦¬ν•˜μž.
2. IPSec으둜 μ•”ν˜Έν™”λœ νŒ¨ν‚·μ€ κ²€μ‚¬λ˜μ§€ μ•ŠλŠ”λ‹€.
3. FTP의 경우 νŒ¨μ‹œλΈŒ λͺ¨λ“œ / 2-way 전솑λͺ¨λ“œλ§Œ μ§€μ›ν•œλ‹€.(3-way λͺ¨λ“œ μ§€μ›μ•ˆν•¨)
4. λͺ¨λ“  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ§€μ›λ˜λŠ” 것이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— 일뢀 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ CBAC을 μ‚¬μš©ν•  수 μ—†λ‹€.

[μ„€μ •]

R2(config)#ip inspect audit-trail
R2(config)#ip inspect name TEST tcp
R2(config)#ip inspect name TEST udp
R2(config)#ip inspect name TEST icmp
R2(config)#ip inspect name TEST http java
R2(config)#ip inspect name TEST http java-list 10 timeout 300
R2(config)#access 10 permit host 192.168.0.10
R2(config)#
R2(config)#
R2(config)#ip access ex Traffic_IN
R2(config-ext-nacl)#permit ospf any any
R2(config-ext-nacl)#exit
R2(config)#int fa0/0
R2(config-if)#
R2(config-if)#ip inspect TEST out
R2(config-if)#ip access
R2(config-if)#ip access-group Traffic_IN in

[확인]
– R1μ—μ„œ R3둜 Ping 및 TELNET ν…ŒμŠ€νŠΈ
μ™ΈλΆ€μ—μ„œ λ‚΄λΆ€λ‘œ 접속이 μ‹€νŒ¨ν•œλ‹€.

– R3μ—μ„œ R1으둜 Ping 및 TELNET ν…ŒμŠ€νŠΈ
λ‚΄λΆ€μ—μ„œ μ™ΈλΆ€λ‘œ 접속이 μ„±κ³΅ν•œλ‹€.

이 λ•Œ, R2λ₯Ό 확인해보면 μ•„λž˜μ™€ 같이 λ‘œκ·Έκ°€ λ°œμƒλ˜κ³ , CBAC 정보도 확인할 수 μžˆλ‹€.

Cisco IOS Firewall 1: νŠΈλž˜ν”½ 필터링, Established 필터링, DACL

λΌμš°ν„°μ—μ„œ κ³Όλ‹€ν•œ νŒ¨ν‚· μˆ˜μ‹ μœΌλ‘œ μ„œλ²„ λΆ€ν•˜, λ„€νŠΈμ›Œν¬ λΆ€ν•˜ ν˜„μƒμ„ μ˜ˆλ°©ν•  수 μžˆλŠ” 방법이 μžˆλ‹€. νŠΈλž˜ν”½ 필터링과 방화벽을 κ΅¬μΆ•ν•˜λŠ” 것이닀.
μ•„λž˜μ˜ κΈ°λŠ₯을 μ„€μ •ν•  수 μžˆλ‹€.

β”Œβ”€ νŠΈλž˜ν”½ 필터링
β”œβ”€ Established 필터링
β”œβ”€ Dynamic ACL
β”œβ”€ Reflexive ACL
β”œβ”€ CBAC
β”œβ”€ IP Fragments 곡격 λ°©μ§€
└─ ICMP Flooding곡격 λ°©μ§€

이 κ²Œμ‹œκΈ€μ—μ„œλŠ” 밑쀄이 쳐진 3κ°€μ§€ κΈ°λŠ₯에 λŒ€ν•΄ μ•Œμ•„λ³Ό 것이닀.


[νŠΈλž˜ν”½ 필터링]

ACL을 μ΄μš©ν•΄ κ΅¬μ„±ν•œλ‹€. λ¨Όμ €, λ‚΄λΆ€ λ„€νŠΈμ›Œν¬ 접근을 차단할 ν•­λͺ©μ„ μ„€μ •ν•œ λ‹€μŒ λ‚΄λΆ€ λ„€νŠΈμ›Œν¬ 접근이 κ°€λŠ₯ν•œ ν•­λͺ©μ„ μ„€μ •ν•œλ‹€.

νŠΈλž˜ν”½ 필터링 μ„€μ • Topology

[μš”μ²­μ‚¬ν•­]
‘λΌμš°ν„° 3725’μ—μ„œ μ„€μ •ν•  것.
1: μΆœλ°œμ§€ 192.168.0.0/24μ—μ„œ μ ‘κ·Όν•˜λŠ” ν…”λ„· νŠΈλž˜ν”½ 차단 및 둜그 확인.
2: μΆœλ°œμ§€ 192.168.0.0/24μ—μ„œ μ‹€μ‹œν•˜λŠ” PING 차단.
3: 단, 192.168.20.0/24μ—μ„œ 192.168.0.0/24λ‘œλŠ” PING ν—ˆμš©.
4: 이외 λ‚˜λ¨Έμ§€ νŠΈλž˜ν”½μ€ μ ‘κ·Ό ν—ˆμš©.

[μ„€μ •]

3725(config)# ip access-list extended Packet_Filter
3725(config-ext-nacl)# deny tcp 192.168.0.0 0.0.0.255 192.168.20.0 0.0.0.255 eq 23 log-input
3725(config-ext-nacl)# deny icmp 192.168.0.0 0.0.0.255 192.168.20.0 0.0.0.255 echo
3725(config-ext-nacl)# permit ip any any
3725(config-ext-nacl)# exit
3725(config)#
3725(config)# int fa0/0
3725(config-if)# ip access-group Packet_Filter in

[확인]
– TELNET 접속 μ‹œλ„ (37251λΌμš°ν„° β†’ VPC4)
‘37251’μ—μ„œ ‘3725’둜 ν…”λ„· 접속을 μ‹œλ„ν•˜λ©΄ 접속 λΆˆκ°€ν•˜λ‹€κ³  λœ¬λ‹€. λ™μ‹œμ— ‘3725’ λΌμš°ν„°μ—μ„œλŠ” λ‘œκ·Έκ°€ 좜λ ₯λ˜λŠ” 것을 λ³Ό 수 μžˆλ‹€.

(쒌) 37251 λΌμš°ν„° (우) 3725 λΌμš°ν„°

– PING ν…ŒμŠ€νŠΈ (VPC3 β†’ VPC4)
νŠΈλž˜ν”½ 필터링을 κ±ΈκΈ° μ „μ—” μ •μƒμ μœΌλ‘œ PING이 λ‚˜κ°€λŠ” 것을 확인할 수 μžˆλ‹€. νŠΈλž˜ν”½ 필터링 μ΄ν›„μ—λŠ” ICMP Type 3 μ‹œκ°„ 초과 μ—λŸ¬λ₯Ό ν‘œμΆœν•œλ‹€.


[Established 필터링]

TCP의 ACKλ‚˜ RST νŒ¨ν‚·λ§Œμ„ ν—ˆμš©ν•œλ‹€. ν•˜μ§€λ§Œ ACK νŒ¨ν‚·μ€ TCPμ—λ§Œ μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— TCP μ΄μ™Έμ˜ μ„œλΉ„μŠ€λ“€μ— λŒ€ν•œ λ°©ν™”λ²½ μˆ˜ν–‰μ€ μ–΄λ ΅λ‹€.

[μ„€μ •]
μœ„μ— μžˆλŠ” ν† ν΄λ‘œμ§€ μ°Έκ³ . λ‚œ OSPF둜 λΌμš°νŒ…μ„ 해놨기 λ•Œλ¬Έμ— established 필터링을 μ μš©ν•˜κΈ° μ „ ospf에 λŒ€ν•œ νŒ¨ν‚·μ€ λͺ¨λ‘ ν—ˆμš©μœΌλ‘œ ν•΄λ‘”λ‹€.

3725(config)# access-list 100 permit ospf any any
3725(config)# access-list 100 permit tcp any any established
3725(config)#
3725(config)# int fa0/0
3725(config)# ip access-group 100 in

[확인]
-37251 λΌμš°ν„° β†’ 37252 λΌμš°ν„°
‘λͺ©μ μ§€μ— 도달할 수 μ—†λ‹€’κ³  λ‚˜μ˜΄.

– 37252 λΌμš°ν„° β†’37251 λΌμš°ν„°
정상 접속 κ°€λŠ₯


[Dynamic ACL]

‘Lock and Key’라고도 λΆˆλ¦°λ‹€.
인증된 μ™ΈλΆ€ Networkλ‘œλΆ€ν„° μ „μ†‘λ˜λŠ” νŒ¨ν‚·μ„ ν—ˆμš©ν•˜κΈ° μœ„ν•΄ λΌμš°ν„°μ— μžλ™μœΌλ‘œ ACL을 μΆ”κ°€ν•œλ‹€. μΈμ¦μ—¬λΆ€λŠ” TELNET 정상 접속 μ—¬λΆ€λ₯Ό 톡해 μ§„ν–‰ν•œλ‹€. μžλ™μœΌλ‘œ μƒμ„±λœ ν•­λͺ©μ€ 일정 μ‹œκ°„μ΄ 경과되면 μžλ™μœΌλ‘œ μ‚­μ œλœλ‹€. 외뢀에 μžˆλŠ” κ΄€λ¦¬μžκ°€ λ‚΄λΆ€ λ„€νŠΈμ›Œν¬λ‘œ μ ‘κ·Όν•΄μ•Όν•  λ•Œ, μ‚¬μš©ν•˜κΈ° 적합할 것 κ°™λ‹€.

  • λ™μž‘κ³Όμ •
Dynamic ACL Topology
  1. μ™ΈλΆ€ PCμ—μ„œ Lock and Key κΈ°λŠ₯이 μ„€μ •λœ R2둜TELNET 접속 μ‹œλ„.
  2. R2λŠ” TELNET으둜 μ ‘μ†ν•œ PC에 λŒ€ν•΄ μ‚¬μš©μž 인증을 μ‹€μ‹œ.
    (RADIUS / TACACS+ 인증 κ°€λŠ₯)
  3. μ‚¬μš©μžκ°€ 인증되면, μžλ™μœΌλ‘œ TELNET 접속이 ν•΄μ œλœλ‹€. μ™ΈλΆ€ PC의 λ„€νŠΈμ›Œν¬κ°€ λ‚΄λΆ€λ‘œ μ ‘κ·Όν•  수 μžˆλ„λ‘ ACL을 μžλ™μœΌλ‘œ μƒμ„±ν•œλ‹€.
  4. μƒμ„±λœ ACL은 일정 μ‹œκ°„μ΄ μ§€λ‚˜λ©΄, μžλ™μœΌλ‘œ μ‚­μ œλœλ‹€.

[μ„€μ •]

R2(config)# username cisco123 password ciscopwd123
R2(config)# username cisco123 autocommand access-enable host timeout 10
R2(config)#
R2(config)# ip access-list extended LAK_Traffic
R2(config-ext-nacl)# permit ospf any any
R2(config-ext-nacl)# permit tcp any host 5.5.5.6 eq telnet
R2(config-ext-nacl)# dynamic L&K permit ip any 6.6.6.0 0.0.0.3
R2(config-ext-nacl)# deny ip any 6.6.6.0 0.0.0.3
R2(config-ext-nacl)# exit
R2(config)#
R2(config)# int fa0/0
R2(config-if)# ip access-group LAK_Traffic in

2: ‘cisco123’으둜 μ‚¬μš©μž 인증이 되면, ‘autocommand access-enable’에 μ˜ν•΄ TELNET 접속 μ’…λ£Œκ°€ 되고, ‘host’에 μ˜ν•΄ TELNET 접속 μ‹œ μ‚¬μš©λœ μΆœλ°œμ§€ IP μ£Όμ†Œκ°€ μžλ™μœΌλ‘œ μƒμ„±λ˜λŠ” ACL의 μΆœλ°œμ§€ μ£Όμ†Œλ‘œ μ‚¬μš©λ˜κ²Œλ” ν•œλ‹€. ‘timeout’에 μ˜ν•΄ μžλ™μœΌλ‘œ μ„€μ •λœ ACL이 λͺ‡ λΆ„ 후에 μ œκ±°λ μ§€ μ„€μ •ν•œλ‹€.
7: ‘dynamic’λ₯Ό μ΄μš©ν•˜μ—¬ μ‚¬μš©μž 인증이 ν—ˆμš©λœ μΆœλ°œμ§€ μ£Όμ†Œμ— λŒ€ν•΄ μžλ™μœΌλ‘œ ACLν•­λͺ©μ΄ μƒμ„±λ˜λ„λ‘ ν•œλ‹€.

[확인]
– TELNET 인증 μ „, PING ν…ŒμŠ€νŠΈ

R1μ—μ„œ ‘R3의 6.6.6.2’둜 PING ν…ŒμŠ€νŠΈλ₯Ό ν•˜μ§€λ§Œ μ‹€νŒ¨λ˜λŠ” 것을 확인할 수 μžˆλ‹€. R2μ—μ„œ ACL 정보λ₯Ό ν™•μΈν–ˆμ„ λ•Œ, 40번 ν•­λͺ©μ— μ˜ν•΄ νŒ¨ν‚· 11κ°œκ°€ μ°¨λ‹¨λœ 것을 확인할 수 μžˆλ‹€.

– TELNET 인증

R1μ—μ„œ R2둜 TELNET μ ‘μ†ν•˜μžλ§ˆμž λ°”λ‘œ μ’…λ£Œλ˜λ©°, R2μ—μ„œ ACL 정보λ₯Ό ν™•μΈν•˜λ©΄ 30번 ν•­λͺ©κ³Ό 40번 ν•­λͺ© 사이에 μžλ™μœΌλ‘œ ACL ν•˜λ‚˜κ°€ μΆ”κ°€λœ 것을 μ•Œ 수 μžˆλ‹€.

– TELNET 인증 ν›„, PING ν…ŒμŠ€νŠΈ

μ •μƒμ μœΌλ‘œ PING ν…ŒμŠ€νŠΈκ°€ μ„±κ³΅ν•˜κ³ , R2의 ACL 정보에선 ACL ν•­λͺ©μ΄ μœ μ§€λ˜λŠ” μ‹œκ°„μ„ 확인할 수 μžˆλ‹€.