Dr.Ratel 2020. 7. 16. 10:54
반응형

  ACL(Access Control List) 접근 제어 항목

1. ACL 목적

 - 트래픽 필터링
 - 방화벽 구성
 - IP 주소 및 서브넷 정의

2. ACL 설정시 파악할 요소

 - 출발지 / 목적지
 - 허용(permit) / 차단(deny)
 - in / out

3. ACL 처리 과정 및 주의 사항

 1) 서브넷 범위가 작은 항목부터 설정해야 한다.

 - ACL를 설정하면 설정된 순서대로 순서 번호를 할당 받는다.
 - 순서 번호대로 검사하여 조건에 만족된 항목이 있으면, ACL 동작을 실시한다.
 - 그 다음 항목은 검사하지 않는다.

Ex1) 잘못된 예제

R1(config)#access-list 10 permit 13.13.0.0 0.0.255.255
R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255
R1(config)#end

R1#show ip access-list
Standard IP access list 10
    10 permit 13.13.0.0, wildcard bits 0.0.255.255 
    20 deny   13.13.30.0, wildcard bits 0.0.0.255 ←범위가 크게 설정되면 작은 경우 검사하지 않음

R1#conf t
R1(config)#no access-list 10


Ex2) 알맞은 예제

R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255
R1(config)#access-list 10 permit 13.13.0.0 0.0.255.255
R1(config)#end

R1#show ip access-list
Standard IP access list 10
    10 deny   13.13.30.0, wildcard bits 0.0.0.255
    20 permit 13.13.0.0, wildcard bits 0.0.255.255

R1#conf t
R1(config)#no access-list 10


 2) ACL 마지막 항목에는 'deny any'가 동작한다.

Ex1) 잘못된 예제

R1(config)#access-list 10 deny 13.13.30.0 0.0.0.255
R1(config)#end

R1#show ip access-list
Standard IP access list 10
    10 deny   13.13.30.0, wildcard bits 0.0.0.255          
    (마지막에 'deny any' 처리 실시)

Ex2) 알맞은 예제

R1(config)#access-list 10 permit any 
R1(config)#end

R1#show ip access-list
Standard IP access list 10
    10 deny   13.13.30.0, wildcard bits 0.0.0.255 (11 matches)
    20 permit any


 3) 항목 부분 추가 및 부분 삭제 불가능

R1#show ip access-list
Standard IP access list 10
    10 deny   13.13.30.0, wildcard bits 0.0.0.255 (11 matches)
    20 permit any

R1#conf t
R1(config)#access-list 10 deny 13.13.20.0 0.0.0.255
R1(config)#end

R1#show ip access-list
Standard IP access list 10
    10 deny   13.13.30.0, wildcard bits 0.0.0.255 (11 matches)
    20 permit any
    30 deny   13.13.20.0, wildcard bits 0.0.0.255

R1#conf t
R1(config)#no access-list 10 deny 13.13.30.0 0.0.0.255
R1(config)#end

R1#show ip access-list



3. Standard ACL

 - ACL 번호 : 1~99
 - 검사 항목 : 출발지 

 



Ex1) ’13.13.10.0/24’ 사용자들이 ‘172.16.1.1’ 서버에 접근하는 것을 차단하여라.

access-list 10 deny 13.13.10.0 0.0.0.255
access-list 10 permit any
!
int fa0/1
 ip access-group 10 out

Ex2) ‘13.13.10.0/24’ 사용자들이 인터넷을 사용하는 것을 제한하며, ‘172.16.1.1/24’ 서버로는 접근이 가능한 ACL 설정을 알아보도록 하자.

access-list 10 deny 13.13.10.0 0.0.0.255
access-list 10 permit any
!
int s1/0
 ip access-group 10 out

Ex3)  ‘172.16.1.1/24’ 서버는 인터넷과 연결된 외부 사용자들에게 서비스가 되지 않도록 하며, 오직 ‘13.13.10.0/24’ 사용자들에게만 서비스가 가능한 ACL 설정을 알아보도록 하자.

access-list 10 deny 172.16.1.1 0.0.0.0 
access-list 10 permit any
!
int s1/0
 ip access-group 10 out 

 

 

 



[실습] 출발지가 ‘13.13.30.0/24’인 패켓만 ‘13.13.10.0/24’ 서브넷으로 접근하는 것을 차단하며, ACL 필터가 동작하면 로그 메시지를 출력하는 예제를 알아보도록 하자.

@ R1

access-list 10 deny 13.13.30.0 0.0.0.255 log
access-list 10 permit any
!
int s1/0
 ip access-group 10 in

R1#show run
R1#show ip access-lists 
Standard IP access list 10
    10 deny   13.13.30.0, wildcard bits 0.0.0.255 log
    20 permit any

R3#ping 13.13.10.1 source 13.13.30.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.10.1, timeout is 2 seconds:
Packet sent with a source address of 13.13.30.1 
U.U.U
Success rate is 0 percent (0/5)

R3#telnet 13.13.10.1 /source fa0/0  
Trying 13.13.10.1 ... 
% Destination unreachable; gateway or host down


R2#ping 13.13.10.1 source 13.13.20.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.10.1, timeout is 2 seconds:
Packet sent with a source address of 13.13.20.1 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/36/44 ms


R1#
*Mar  1 00:23:18.415: %SEC-6-IPACCESSLOGNP: list 10 denied 0 13.13.30.1 -> 13.13.10.1, 1 packet 


R1#show ip access-lists 
Standard IP access list 10
    10 deny   13.13.30.0, wildcard bits 0.0.0.255 log (6 matches)
    20 permit any (15 matches)

R1#conf t
R1(config)#int s1/0
R1(config-if)#no ip access-group 10 in
R1(config-if)#exit
R1(config)#
R1(config)#no access-list 10
R1(config)#end

R1#show ip access-lists 


4. Extended ACL

 - ACL 번호 : 100~199
 - 검사 항목 : 출발지/목적지, 프로토콜(ip, tcp, udp, icmp, eigrp, ospf), 포트 번호
 - 블로그 그림 참조

Ex1) 출발지가 ‘13.13.30.1’인 PC가, FTP 서버 ‘13.13.10.1’로 접근하는 트래픽 허용

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트
tcp  13.13.30.1 any 13.13.10.1 20, 21

access-list 110 permit tcp host 13.13.30.1 host 13.13.10.1 eq 20
access-list 110 permit tcp host 13.13.30.1 host 13.13.10.1 eq 21


Ex2) 출발지가 ‘13.13.20.1’인 PC가, 웹-서버 ‘13.13.10.100’로 접근하는 트래픽 허용

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트
tcp 13.13.20.1 any 13.13.10.100 80

access-list 110 permit tcp host 13.13.20.1 host 13.13.10.100 eq 80


Ex3) 출발지가 ‘13.13.30.1’인 PC가, ‘13.13.10.1’로 Ping 되는 것을 차단하여라.

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트
icmp 13.13.30.1 X 13.13.10.1 X

access-list 110 deny icmp host 13.13.30.1 host 13.13.10.1 echo ←외부에서 오는 echo request 만 차단함.
access-list 110 deny icmp host 13.13.30.1 host 13.13.10.1 ← 모든 ICMP 옵션을 차단


Ex4) 출발지가 ‘13.13.30.1’인 PC가, ‘13.13.10.1’로 접근하는 트래픽 차단

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트
ip←모든 프로토콜의미 13.13.30.1 - 13.13.10.1 -

access-list 110 deny ip host 13.13.30.1 host 13.13.10.1


Ex5) RIP 라우팅 업데이트 허용

access-list 110 permit udp any eq 520 any eq 520


Ex6) EIGRP & OSPF 패켓 허용

access-list 110 permit eigrp any any
access-list 110 permit ospf any any


Ex7) 웹-서버 ‘13.13.10.100’에서 PC ‘13.13.20.1’로 다운로드 되는 트래픽 차단

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트
tcp 13.13.10.100 80 13.13.20.1 any

access-list 110 deny tcp host 13.13.10.100 eq 80 host 13.13.20.1




Ex8) ’13.13.10.0/24’ 사용자들이 ‘172.16.1.0/24’ 서브넷으로 접근하는 것을 차단하여라.

access-list 110 deny ip 13.13.10.0 0.0.0.255 172.16.1.0 0.0.0.255
access-list 110 permit ip any any
!
int fa0/0
 ip access-group 110 in

Ex9) Extended ACL

① 출발지가 ‘13.13.10.1’ 호스트가 FTP 서버 ‘172.16.1.1’로 접근하는 것을 차단하여라.
② 출발지가 ‘13.13.10.0/24’ 서브넷이 FTP 서버 ‘172.16.1.1’로 접근하는 것은 허용하여라.
③ 외부 사용자가 인터넷을 통하여 ‘172.16.1.1’ 서버로 Telnet 접속하는 것을 차단하여라.
④ 이외 나머지 트래픽들은 접근이 가능하도록 허용하여라.

access-list 110 tcp deny host 13.13.10.1 host 172.16.1.1 ep 20
access-list 110 tcp permit host 13.13.10.1 host 172.16.1.1 ep 23 ←telnet 기능을 넣고 싶다면...
access-list 110 tcp permit 13.13.10.0 0.0.0.255 host 172.16.1.1 ep 21 ←생략가능
access-list 110 tcp permit 13.13.10.0 0.0.0.255 host 172.16.1.1 ep 20 ←생략가능
access-list 110 tcp permit 13.13.10.0 0.0.0.255 host 172.16.1.1 ep 23
access-list 110 tcp deny any host 172.16.1.1 ep 23
access-list 110 permit ip any any
!
int fa0/1
ip access-group 110 out
!

Ex9-1)
① 출발지가 ‘13.13.10.1’ 호스트가 웹-서버 ‘172.16.1.1’로 접근하는 것을 차단하여라.
② 출발지가 ‘13.13.10.0/24’ 서브넷이 웹-서버 ‘172.16.1.1’로 접근하는 것은 허용하여라.
③ 외부 사용자가 인터넷을 통하여 ‘172.16.1.1’ 서버로 ping 하는 것을 차단하여라.
④ 단, '172.16.1.1' 서버는 외부로 Ping이 되어야 한다.
⑤ 이외 나머지 트래픽들은 접근이 가능하도록 허용하여라.

프로토콜 출발지 IP 주소 출발지 포트 목적지 IP 주소 목적지 포트
tcp 13.13.10.1 any 172.16.1.1 80
icmp      any                    x                       172.16.1.1           x
  
access-list 120 deny tcp host 13.13.10.1 host 172.16.1.1 eq 80
access-list 120 permit tcp 13.13.10.0 0.0.0.255 host 172.16.1.1 eq 80 ←생략가능(access-list 120 permit ip any any)
access-list 120 deny icmp any host 172.16.1.1 echo
access-list 120 permit ip any any
!
int f0/1
ip access-group 110 in
!

Ex10) Extended ACL

① 출발지가 ‘13.13.10.1~2’ 호스트가 웹-서버 ‘172.16.1.1’로 접근하는 것을 차단하여라.
② 출발지가 ‘13.13.10.0/24’ 서브넷이 웹-서버 ‘172.16.1.1’로 접근하는 것은 허용하여라.
③ 외부 사용자가 인터넷을 통하여 ‘172.16.1.1’ 서버로 ping 하는 것을 차단하여라.
④ Ping을 차단할 경우, 라우터에 인터페이스 정보와 함께 로그가 출력되도록 하여라.
⑤ 이외 나머지 트래픽들은 접근이 가능하도록 허용하여라.

access-list 110 deny tcp host 13.13.10.1 host 172.16.1.1 eq 80
access-list 110 deny tcp host 13.13.10.2 host 172.16.1.1 eq 80
access-list 110 permit icmp 13.13.10.0 0.0.0.255 host 172.16.1.1 
access-list 110 deny icmp any host 172.16.1.1 echo log-input
access-list 110 permit ip any any
!
int fa0/1
 ip access-group 110 out
!

 



 ① R1은 외부에서 오는 트래픽 중 출발지 네트워크가 ‘13.13.30.0/24’인 트래픽이 내부 로컬 네트워크 ‘13.13.10.1’로 Telnet 접근을 차단하여라.

 ② R1은 외부에서 ‘13.13.10.100’ 서버로 Ping이 되는 것을 차단하라. 단, ’13.13.10.100’ 서버는 외부로 Ping 되어야한다.

 ③ R1은 외부에서 오는 트래픽 중 출발지 네트워크가 ‘13.13.20.0/24’인 트래픽이 내부 로컬 웹서버 ‘13.13.10.100’에 접근하는 것을 차단하여라.

 ④ R1은 위에 조건을 제외한 나머지 트래픽은 허용한다.

 ⑤ 위의 조건을 구성할때에는 최대한 간결하게 ACL를 구성하며, ACL 항목을 R1 Serial 1/0 에 적용하여라.

access-list 110 deny tcp 13.13.30.0 0.0.0.255 host 13.13.10.1 eq 23
access-list 110 deny icmp any host 13.13.10.100 echo
access-list 110 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.100 eq 80
access-list 110 permit ip any any
!
int s1/0
ip access-group 110 in
!

- R1은 외부에서 오는 트래픽 중 출발지 네트워크가 '13.13.20.0/24'인 트래픽이 내부 로컬 네트워크 '13.13.10.1' 로 Telnet 접근을 차단하여라

R1#sh ip access-lists 
Extended IP access list 110
    10 deny tcp 13.13.30.0 0.0.0.255 host 13.13.10.1 eq telnet
    20 deny icmp any host 13.13.10.100 echo
    30 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.100 eq www
    40 permit ip any any (8 match(es))

access-list 110 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.1 eq 23

conf t
ip access-list extended 110
35 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.1 eq 23

R1#sh ip access-lists 
Extended IP access list 110
    10 deny tcp 13.13.30.0 0.0.0.255 host 13.13.10.1 eq telnet
    20 deny icmp any host 13.13.10.100 echo
    30 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.100 eq www
    35 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.1 eq telnet
    40 permit ip any any (8 match(es))




R1#show run
R1#show ip access-lists


R3#telnet 13.13.10.1 /source fa0/0
Trying 13.13.10.1 ... 
% Destination unreachable; gateway or host down

R3#ping 13.13.10.1 source fa0/0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.10.1, timeout is 2 seconds:
Packet sent with a source address of 13.13.30.1 
U..U.
Success rate is 0 percent (0/5)


R2#telnet 13.13.10.100 80 /source fa0/0
Trying 13.13.10.100, 80 ... 
% Destination unreachable; gateway or host down


R1#
*Mar  1 01:07:12.567: %SEC-6-IPACCESSLOGDP: list 110 denied icmp 13.13.30.1 (Serial1/0 ) -> 13.13.10.1 (8/0), 1 packet 
R1#
R1#
R1#show ip access-list
Extended IP access list 110
    10 deny tcp 13.13.30.0 0.0.0.255 13.13.10.0 0.0.0.255 eq telnet (3 matches)
    20 deny icmp host 13.13.30.1 host 13.13.10.1 echo log-input (5 matches)
    30 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.100 eq www (3 matches)
    40 permit ip any any


R1#conf t
R1(config)#int s1/0
R1(config-if)#no ip access-group 110 in
R1(config-if)#exit
R1(config)#
R1(config)#no access-list 110


[참고] Named ACL

@ R1

ip access-list extended IN_Filter
 deny tcp 13.13.30.0 0.0.0.255 13.13.10.0 0.0.0.255 eq 23
 deny icmp host 13.13.30.1 host 13.13.10.1 echo log-input
 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.100 eq 80
 permit ip any any
!
int s1/0
 ip access-group IN_Filter in


R1#show run
R1#show ip access-list

R3#telnet 13.13.10.1 /source fa0/0
R3#ping 13.13.30.1 source 13.13.10.1

R2#telnet 13.13.10.100 80 /source fa0/0

R1#show ip access-list












반응형