[GNS3 Labs. – Cisco] Access List

Cisco ACL(access list) 만들기.

access list는 기본적으로 패킷을 비교 분류 처리하는 패킷 필터이며, 리스트가 작성되면 인터페이스의 inbound 또는 outbound 트래픽에 적용할 수 있다.
ACL을 적용하면 지정된 인터페이스에서 그 인터페이스를 통과하는 모든 패킷을 검사하고 조치를 취하게 된다.

패킷이 ACL과 비교될 때의 세가지 규칙
. 패킷은 항상 acl과 순서대로 비교된다.
. 패킷은 규칙과 일치될때 까지만 비교되고 일치된 이후는 비교되지 않는다.
. acl 끝에는 암묵적으로 ‘deny’가 있다. 즉 패킷이 모든 조건과 일치하지 않으면 폐기된다.

ACL 종류
. Standard access list – 트래픽 종류와 관계없이 source IP 주소만 조건 평가에 이용한다.
. Extend access list – L3 또는 L4 IP 패킷의 헤더로 조건을 평가한다.
. Named access list – standard 또는 extend access list에 이름을 붙인것.

ACL을 패킷 필터로 이용하려면 트리팩을 필터하려는 라우터의 인터페이스에 적용해야한다. 또한 트래픽 방향을 지정해야한다.
. inbound acl – acl이 인터페이스의 inbound 패킷에 적용되었을때, 그 패킷은 outbound 인터페이스로 라우팅 되기 전에 acl에 의해 처리된다.거부된 패킷은 라우팅전에 폐기된다.
. outbound acl – acl이 인터페이스의 outbound 패킷에 적용되었을때, 그 패킷은 outbound 인터페이스로 라우팅 된 후 다음 대기열에 들어가기전에 acl에 의해 처리된다.

acl 만들때의 지침.
. 하나의 acl에는 하나의 인터페이스, 방향 프로토콜만 할당할 수 있다.
. 보다 세밀한 룰을 맨 위에 작성한다.
. acl 에서 한 줄을 제거할 수없고 이를 시도하면 전체 acl이 삭제되므로, 텍스트 편집기로 미리 작성해두는 것이 좋다.
. acl이 permit any 명령으로 끝나지 않으면, 모든 패킷은 acl 중 하나를 만족하지 않으면 폐기된다.
. acl을 만든다음 인터페이스에 적용한다.
. acl은 라우터를 지나가는 트래픽을 필터하도록 설계되었다. 그래서 라우터에서 발생하는 트래픽은 필터하지 않는다.
. IP standard acl은 목적지에 가능한 가까이 배치한다.
. IP extended acl은 발신지에 가능한 가까이 배치한다.

ACL로 감소시킬 수 있는 보안문제
IP address spoofing, inbound
. IP address spoofing, outbound
. Denial of service (DoS) TCP SYN attacks, blocking external attacks
. DoS TCP SYN attacks, using TCP Intercept
. DoS smurf attacks
. Denying/filtering ICMP messages, inbound
. Denying/Filtering ICMP messages, outbound
. Denying/Filtering Tracerou

내부네트워크나 호스트의 source 주소를 포함한 외부 IP패킷을 사설네트워크에 허용하는것은 보통 좋은 생각은 아니다. 다음은 보안 문제를 감소하기 위해 인터넷에서 내 네트워크로 들어오는 ACL을 설정하기위한 규칙이다.

. 내부네트워크의 모든 발신지 주소를 거부
. 로컬 호스트 어드레스(127.0.0.0/8) 거부
. 예약된 사설주소(RFC1918) 거부
. IP 멀티캐스트 어드레스범위(224.0.0.0/4) 거부

standard ACL
Standard IP ACL은 패킷의 발신지(source) IP 주소를 검사해서 네트워크 트래픽을 필터한다.
아래 구성으로 Standare ACL을 시험 해 본다

access-list ? 명령으로 사용가능한 acl 번호를 확인 할 수 있다.

switch1(config)#access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
<1000-1099> IPX SAP access list
<1100-1199> Extended 48-bit MAC address access list
<1200-1299> IPX summary address access list
<1300-1999> IP standard access list (expanded range)
<200-299> Protocol type-code access list
<2000-2699> IP extended access list (expanded range)
<2700-2799> MPLS access list
<300-399> DECnet access list
<400-499> XNS standard access list
<500-599> XNS extended access list
<600-699> Appletalk access list
<700-799> 48-bit MAC address access list
<800-899> IPX standard access list
<900-999> IPX extended access list
dynamic-extended Extend the dynamic ACL absolute timer
rate-limit Simple rate-limit specific access list

switch1 segment에서 VPCS-3으로의 통신 차단 ACL

switch1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
switch1(config)#access-list 10 deny 192.168.10.13
switch(config)#access-list 10 permit any

설정 확인

switch1#sh access-list
Standard IP access list 10
    10 deny   192.168.10.13
    20 permit any
swich1#

이 설정을 e0/0 포트에 적용하면, VPCS-1 VPCS-2 와 VPCS-3의 통신은 이루어지지 않는다.

switch1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
switch1(config)#int e0/0
switch1(config-if)#ip access-group 10 in
switch1(config-if)#end
switch1#

VPCS-2와 VPCS-3, VPCS-4 의 통신 확인
acl 설정에 따라서, switch1을 통해서는 VPCS-3(192.168.10.13)과는 통신이 되지 않는다.

VPCS-2> sh ip

NAME        : VPCS-2[1]
IP/MASK     : 192.168.10.12/24
GATEWAY     : 0.0.0.0
DNS         :
MAC         : 00:50:79:66:68:02
LPORT       : 10010
RHOST:PORT  : 127.0.0.1:10011
MTU:        : 1500

VPCS-2> ping 192.168.10.13
192.168.10.13 icmp_seq=1 timeout
192.168.10.13 icmp_seq=2 timeout
192.168.10.13 icmp_seq=3 timeout
192.168.10.13 icmp_seq=4 timeout
192.168.10.13 icmp_seq=5 timeout

VPCS-2> ping 192.168.10.14
84 bytes from 192.168.10.14 icmp_seq=1 ttl=64 time=3.247 ms
84 bytes from 192.168.10.14 icmp_seq=2 ttl=64 time=1.353 ms
84 bytes from 192.168.10.14 icmp_seq=3 ttl=64 time=0.800 ms
84 bytes from 192.168.10.14 icmp_seq=4 ttl=64 time=0.848 ms
84 bytes from 192.168.10.14 icmp_seq=5 ttl=64 time=0.703 ms

VPCS-2>

특정 호스트에서만 라우터나 스위치 telnet/ssh 접속 허용하기

Router(config-if)#exit
Router(config)#access-list 20 permit host 192.168.10.11
Router(config)#line vty 0 4
Router(config-line)#access-class 20 in
Router(config-line)#end

Extended acl은 source, destination 주소뿐아니라 프로토콜과 포트번호도 명시할 수 있다. 아래처럼 확인이 가능하다.
Router(config)#access-list 110 ?
deny Specify packets to reject
dynamic Specify a DYNAMIC list of PERMITs or DENYs
permit Specify packets to forward
remark Access list entry comment

Router(config)#access-list 110 deny ?
<0-255> An IP protocol number
ahp Authentication Header Protocol
eigrp Cisco’s EIGRP routing protocol
esp Encapsulation Security Payload
gre Cisco’s GRE tunneling
icmp Internet Control Message Protocol
igmp Internet Gateway Message Protocol
ip Any Internet Protocol
ipinip IP in IP tunneling
nos KA9Q NOS compatible IP over IP tunneling
object-group Service object group
ospf OSPF routing protocol
pcp Payload Compression Protocol
pim Protocol Independent Multicast
tcp Transmission Control Protocol
udp User Datagram Protocol

계속 옵션과 ? 를 이용하여 확인이 가능하다.

ACL examples

* Standard ACL 예

Wolf LAN의 단일호스트(192.168.20.2)만 Fox LAN으로 접근 가능하도록 acl 설정

Wolf#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Wolf(config)#access-list 10 permit 192.168.20.2 0.0.0.0
Wolf(config)#int e0/0
Wolf(config-if)#ip access-group 10 in
Wolf(config-if)#end

설정 확인

Wolf#sh access-list
Standard IP access list 10
    10 permit 192.168.20.2 (20 matches)
Wolf#sh ip int e0/0
Ethernet0/0 is up, line protocol is up
 ...
   Outgoing access list is not set
  Inbound  access list is 10
 ...

Fox LAN에서 Wolf LAN의 특정 호스트로만 ping 이 가능함을 확인할 수 있다.

VPCS> sh ip

NAME        : VPCS[1]
IP/MASK     : 192.168.10.2/24
GATEWAY     : 192.168.10.1
DNS         :
MAC         : 00:50:79:66:68:00
LPORT       : 10012
RHOST:PORT  : 127.0.0.1:10013
MTU:        : 1500

VPCS> ping 192.168.20.2
84 bytes from 192.168.20.2 icmp_seq=1 ttl=61 time=18.433 ms
84 bytes from 192.168.20.2 icmp_seq=2 ttl=61 time=18.711 ms
84 bytes from 192.168.20.2 icmp_seq=3 ttl=61 time=19.271 ms
84 bytes from 192.168.20.2 icmp_seq=4 ttl=61 time=18.682 ms
84 bytes from 192.168.20.2 icmp_seq=5 ttl=61 time=16.832 ms

VPCS> ping 192.168.20.3
192.168.20.3 icmp_seq=1 timeout
192.168.20.3 icmp_seq=2 timeout
192.168.20.3 icmp_seq=3 timeout
192.168.20.3 icmp_seq=4 timeout
192.168.20.3 icmp_seq=5 timeout

* Extended ACL 예

호스트 VPCS-1(192.168.10.2)가 Wolf 라우터(172.16.10.6)에 대한 telnet 접속을 금지시키지만, Ping은 할 수 있도록 설정.
IP extended acl은 발신지(source)에 가깝게 배치해야 하므로 Fox 라우터에 acl을 추가한다.

Fox(config)#access-list 110 deny tcp host 192.168.10.2 host 172.16.10.6 eq telnet log
Fox(config)#access-list 110 permit ip any 0.0.0.0 255.255.255.255
Fox(config)#int e0/0
Fox(config-if)#ip access-group 110 in
Fox(config-if)#end

참고
https://www.cisco.com/c/en/us/support/docs/ip/access-lists/26448-ACLsamples.html#anc8 에서 다양한 예를 볼 수 있다.

답글 남기기

Your email address will not be published.