# ACL (Access Control List) <- Page 222
- 네트워크 정의 & 트래픽 필터링 용도
- 필터링 용도 사용할 경우에는 다음과 같은 내용을 조사한다.
1) 출발지 네트워크 & 목적지 네트워크
(to A from B : 출발지 B, 목적지 A)
(From A to B : 출발지 A, 목적지 B)
2) 해당 대상을 허용(permit)할 것인지, 차단(deny)할 것인지 결정한다.
(allow = permit, prevent = deny)
3) 인터페이스에 인바운(Inbound)으로 적용할 것인지/아웃바운드(Outbound)로 적용할 것인지
1. ACL 사용 방법
- 'access-list' 명령어 사용
- 'permit/deny' 키워드로 해당 대상을 허용/차단 실시
- 네트워크를 와일드카드 마스크로 정의
Ex1) 172.16.1.0/24, 192.168.1.32/28 (255.255.255.240)
172.16.1.0 0.0.0.255
192.168.1.32 0.0.0.15
Ex2) 172.16.1.1 호스트 한개만 정의
172.16.1.1 0.0.0.0 = host 172.16.1.1
Ex3) 네트워크 전체
0.0.0.0 255.255.255.255 = any
2. ACL 사용시 주의 사항
1) ACL를 설정하면 설정된 순서대로 위에서 아래로 배열되며, 라우터는 ACL를 위에서 아래로
검사하다가 조건에 만족 되면 필터링 동작을 하기때문에 범위가 작은 서브넷(주소)부터
설정해야 한다.
잘못된 경우) 172.16.1.0/24, 172.16.2.0/24는 차단, 172.16.0.0/16은 허용
access-list 45 permit 172.16.0.0 0.0.255.255
access-list 45 deny 172.16.1.0 0.0.0.255
access-list 45 deny 172.16.2.0 0.0.0.255
잘된 경우) 172.16.1.0/24, 172.16.2.0/24는 차단, 172.16.0.0/16은 허용
access-list 45 deny 172.16.1.0 0.0.0.255
access-list 45 deny 172.16.2.0 0.0.0.255
access-list 45 permit 172.16.0.0 0.0.255.255
2) 위의 조건이 만족될 경우, 자주 사용하는 항목부터 설정하는 것을 권장한다.
3) ACL 항목 설정이 완료되면, 맨 마지막에 'deny any'가 자동으로 처리된다.
Ex1) 잘못된 경우 (172.16.1.0/24, 172.16.2.0/24만 차단, 나머지 허용)
access-list 67 deny 172.16.1.0 0.0.0.255
access-list 67 deny 172.16.2.0 0.0.0.255
(access-list 67 deny any) <- 자동 처리
Ex2) 잘된 경우 (172.16.1.0/24, 172.16.2.0/24만 차단, 나머지 허용)
access-list 67 deny 172.16.1.0 0.0.0.255
access-list 67 deny 172.16.2.0 0.0.0.255
access-list 67 permit any
(access-list 67 deny any) <- 자동으로 처리되지만, 앞 항목에 'permit any'가 있으므로 검사 X
Ex3) 불필요한 설정/해서는 문제가 되는 경우
(172.16.1.0/24, 172.16.2.0/24만 허용, 나머지 차단)
access-list 23 permit 172.16.1.0 0.0.0.255
access-list 23 permit 172.16.2.0 0.0.0.255
access-list 23 deny any
추가 조건 : 172.16.3.0/24도 허용하여라. (access-list 23 permit 172.16.3.0 0.0.0.255)
access-list 23 permit 172.16.1.0 0.0.0.255
access-list 23 permit 172.16.2.0 0.0.0.255
access-list 23 deny any
access-list 23 permit 172.16.3.0 0.0.0.255
Ex4) 아무 의미 없는 설정
access-list 80 permit 172.16.1.0 0.0.0.255
access-list 80 permit 172.16.2.0 0.0.0.255
access-list 80 permit any
4) ACL은 부분 추가/부분 삭제가 불가능하기때문에 수정 작업을 실시할 수 없다.
Ex1) 부분 추가 불가능
access-list 50 deny 172.16.1.0 0.0.0.255
access-list 50 deny 172.16.2.0 0.0.0.255
access-list 50 permit any
추가 조건 : 172.16.3.0/24 네트워크도 차단해야한다. (access-list 50 deny 172.16.3.0 0.0.0.255)
access-list 50 deny 172.16.1.0 0.0.0.255
access-list 50 deny 172.16.2.0 0.0.0.255
access-list 50 permit any
access-list 50 deny 172.16.3.0 0.0.0.255
Ex2) 부분 삭제 불가능
access-list 50 deny 172.16.1.0 0.0.0.255
access-list 50 deny 172.16.2.0 0.0.0.255
access-list 50 permit any
추가 조건 : 172.16.2.0/24 네트워크를 허용해야한다.(access-list 50 permit 172.16.2.0 0.0.0.255)
access-list 50 deny 172.16.1.0 0.0.0.255
access-list 50 deny 172.16.2.0 0.0.0.255
access-list 50 permit any
access-list 50 permit 172.16.2.0 0.0.0.255
no access-list 50 deny 172.16.2.0 0.0.0.255 (ACL 50 항목이 다 삭제됨)
(= no access-list 50)
5) 메모장 작업 이후 장비 설정을 권장하며, 백업 설정 내용을 TFTP 서버를 이용하여 요청한다.
3. ACL 유형
1) Standard ACL(기본형 ACL)
- ACL 항목 범위 : 1~99
- permit/deny : 허용/차단
- 출발지 네트워크(접근하는 트래픽)만 정의
- 옵션 : log
Router(config)# access-list [1~99]{permit|deny} 출발지 네트워크 와일드카드 마스크 [log]
- 인터페이스에 필터링 용도로 적용하는 방법
Router(config-if)# ip access-group [ACL 항목] {in|out}
- VTY(텔넷) 접근 필터링 용도로 적용하는 방법
Router(config)# lint vty 0 4
Router(config-line)# access-class [ACL 항목] {in|out}
Ex1) 접근하는 트래픽(출발지)이 172.16.1.0/24 ~ 172.16.3.0/24만 차단하고 나머지는 허용한다.
이때, 트래픽은 Serial 1/0 인터페이스로 입력된다. 차단되는 트래픽은 로그 메세지를 출력하여라.
access-list 33 deny 172.16.1.0 0.0.0.255 log
access-list 33 deny 172.16.2.0 0.0.0.255 log
access-list 33 deny 172.16.3.0 0.0.0.255 log
access-list 33 permit any
!
int s1/0
ip access-group 33 in
!
Ex2) 접근하는 트래픽(출발지)이 172.16.1.0/24 ~ 172.16.3.0/24만 차단하고 나머지는 허용한다.
이때, 트래픽은 Fa0/0 인터페이스로 출력된다. 차단되는 트래픽은 로그 메세지를 출력하
access-list 33 deny 172.16.1.0 0.0.0.255 log
access-list 33 deny 172.16.2.0 0.0.0.255 log
access-list 33 deny 172.16.3.0 0.0.0.255 log
access-list 33 permit any
!
int fa0/0
ip access-group 33 out
!
Ex3) 다음 조건에 맞게 ACL를 이용하여 트래픽 필터링을 실시하여라.
- 접근 트래픽이 172.16.1.1 호스트는 차단
- 접근 트래픽이 172.16.1.2 호스트는 차단
- 접근 트래픽이 172.16.1.0/24 네트워크는 허용
- 접근 트래픽이 192.168.1.0/24 네트워크는 허용
- 접근 트래픽이 192.168.1.32/27 네트워크는 차단 (255.255.255.224)
- 접근 트래픽이 192.168.1.33 호스트는 허용
- 접근 트래픽이 192.168.1.34 호스트는 허용
- Serial 1/0 인터페이스로 트래픽이 입력될때 필터링 적용 실시
- 차단되는 트래픽은 Log 메세지 출력
access-list 20 deny 172.16.1.1 0.0.0.0 log (= host 172.16.1.1 log)
access-list 20 deny 172.16.1.2 0.0.0.0 log (= host 172.16.1.2 log)
access-list 20 permit 172.16.1.0 0.0.0.255
access-list 20 permit 192.168.1.33 0.0.0.0 (= host 192.168.1.33)
access-list 20 permit 192.168.1.34 0.0.0.0 (= host 192.168.1.34)
access-list 20 deny 192.168.1.32 0.0.0.31 log
access-list 20 permit 192.168.1.0 0.0.0.255
!
int s1/0
ip access-group 20 in
Ex4) R1에서 다음과 같은 조건에 맞게 필터링을 실시하여라.
- R1는 내부 로컬 네트워크(x.x.1.0/24)로 출발지가 'x.x.3.0/24'인 트래픽이 접근하는 것을
차단하며, 이때 log 옵션을 사용하여라. 단, 나머지 트래픽은 접근하는 것을 허용한다.
- ACL 필터링을 S1/0에 적용하여라.
- 설정이 완료되었다면, 다음과 같은 정보 확인을 실시하세요.
1) R3# ping x.x.1.1 source fa0/0 <-- 결과 : U.U.U
2) R3# telnet x.x.1.1 /source-interface fa0/0 <-- 접속 안됨
R1(config)# access-list 77 deny x.x.3.0 0.0.0.255 log
R1(config)# access-list 77 permit any
R1(config)# int s1/0
R1(config-if)# ip access-group 77 in
R1#show ip access-lists
Standard IP access list 77
10 deny 13.13.3.0, wildcard bits 0.0.0.255 log
20 permit any
R3#ping 13.13.1.1 source fa0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.1.1, timeout is 2 seconds:
Packet sent with a source address of 13.13.3.1
U.U.U
Success rate is 0 percent (0/5)
R3#
R3#telnet 13.13.1.1 /source-interface fa0/0
Trying 13.13.1.1 ...
% Destination unreachable; gateway or host down
R1#
*Mar 1 01:24:50.807: %SEC-6-IPACCESSLOGNP: list 77 denied 0 13.13.3.1 -> 13.13.1.1, 1 packet
R1#show ip access-lists
Standard IP access list 77
10 deny 13.13.3.0, wildcard bits 0.0.0.255 log (6 matches)
20 permit any (15 matches)
[참고] Standard ACL은 출발지 네트워크만 정의하기때문에 필터링 용도 사용이 제한적이다.
2) Extended ACL(확장형 ACL)
- ACL 항목 범위 : 100 ~ 199
- permit/deny : 허용/차단
- 출발지 네트워크 & 목적지 네트워크 정의
- 프로토콜 정의 : TCP, UDP, ICMP, EIGRP, OSPF, GRE....IP(모든 프로토콜 전체를 의미)
- 어플리케이션 프로토콜 포트 번호 : TCP 포트 번호, UDP 포트 번호
- TCP를 사용하는 어플리케이션 프로토콜 포트 번호 :
HTTP(80), TELNET(23), SSH(22), FTP(20/21), SMTP(25), POP3(110)
- UDP를 사용하는 어플리케이션 프로토콜 포트 번호 :
DNS(53), TFTP(69), DHCP(67/68), SNMP(161)
Ex) 출발지 A, 목적지 B인 FTP 서버 접근 차단 : deny, TCP, FTP(20/21)
Ex) 출발지 A, 목적지 C인 웹-서버 접근 차단 : deny, TCP, HTTP(80)
Ex) 출발지 A, 목적지 C로 Ping 되는것을 차단 : deny, ICMP, Echo/Echo-Reply
Ex) 출발지 A, 목적지 D로 접근하는 것을 차단 : deny, IP
Router(config)# access-list [100~199]{permit|deny}
[Protocol]
출발지 네트워크 와일드 카드 마스크 eq [어플리케이션 프로토콜 포트]
목적지 네트워크 와일드 카드 마스크 eq [어플리케이션 프로토콜 포트]
[log|log-input]
Ex1) 출발지가 13.13.3.0/24이고 목적지가 172.16.1.0/24인 트래픽을 허용하여라.
access-list 113 permit ip 13.13.3.0 0.0.0.255 172.16.1.0 0.0.0.255
Ex2) 다음 조건에 맞게 ACL를 구성하여라.
- 출발지가 172.16.1.1 호스트이며, 목적지가 200.1.1.1 호스트인 트래픽 차단
- 출발지가 172.16.1.0/24 네트워크이며, 목적지가 200.1.1.1 호스트인 트래픽 허용
- 출발지가 네트워크 전체이며, 목적지가 200.1.1.100 호스트인 트래픽 허용
- 차단되는 트래픽은 로그 메세지를 출력할때 인터페이스 정보도 출력하여라.
- 이 ACL를 트래픽이 입력되는 Serial 1/0에 적용하여라.
access-list 187 deny ip 172.16.1.1 0.0.0.0 host 200.1.1.1 log
access-list 187 permit ip 172.16.1.0 0.0.0.255 host 200.1.1.1
access-list 187 permit ip any host 200.1.1.100
!
int s1/0
ip access-group 187 in
!
Ex3) 다음 조건에 맞게 ACL를 구성하여라. (FTP - TCP 20,21 Telnet - TCP 23)
- 출발지가 192.16.1.1 호스트가, FTP 서버(10.13.1.1)로 접근 차단
- 출발지가 192.16.1.0/24 네트워크는, FTP 서버(10.13.1.1)로 접근 허용
- 출발지가 192.16.1.32/27 네트워크는, 호스트 10.13.1.100으로 Telnet 차단
- 또한, 나머지 트래픽은 접근을 허용해야 한다.
- 데이터가 입력되는 Serial 1/0에 적용하여라.
access-list 145 deny tcp host 192.16.1.1 host 10.13.1.1 eq 20
access-list 145 deny tcp host 192.16.1.1 host 10.13.1.1 eq 21
access-list 145 permit tcp 192.16.1.0 0.0.0.255 host 10.13.1.1 eq 20
access-list 145 permit tcp 192.16.1.0 0.0.0.255 host 10.13.1.1 eq 21
access-list 145 deny tcp 192.16.1.32 0.0.0.31 host 10.13.1.100 eq 23
access-list 145 permit ip any any <- 설정하면 ACL 3~4번째 항목이 불필요해진다.
!
Ex4) 다음 조건에 맞게 ACL를 구성하여라.
- 출발지가 172.16.1.128~129 호스트가, Web Server(215.13.1.1)로 접근 차단
- 출발지가 172.16.1.0/24 네트워크는, Web Server(215.13.1.1)로 접근 허용
- 출발지가 13.13.3.0/24인 트래픽이 13.13.1.1로 Ping이 되는것을 차단하여라.
(로그 메세지를 출력하며 인터페이스 정보도 출력하여라.)
- 또한, 나머지 트래픽은 접근을 허용해야 한다.
- 데이터가 입력되는 Serial 1/0에 적용하여라.
access-list 183 deny tcp host 172.16.1.128 host 215.13.1.1 eq 80
access-list 183 deny tcp host 172.16.1.129 host 215.13.1.1 eq 80
access-list 183 permit tcp 172.16.1.0 0.0.0.255 host 215.13.1.1 eq 80
access-list 183 deny icmp 13.13.3.0 0.0.0.255 host 13.13.1.1 log-input
access-list 183 permit ip any any <- 설정하면 ACL 3번째 항목이 불필요해진다.
!
int s1/0
ip access-group 183 in
!
[LAB 12 : ACL Filter]
1. 다음 조건에 맞게 R1에서 ACL를 이용한 트래픽 필터링을 실시하여라.
(R1에 Telnet 패스워드 설정 실시)
- R1은 외부에서 오는 트래픽 중 출발지 네트워크가 x.x.3.0/24인 트래픽이 내부 로컬 네트워크
(x.x.1.0/24)로 Telnet 접근을 차단하여라.
- R1은 외부에서 오는 트래픽 중 출발지 네트워크가 x.x.3.0/24인 트래픽이 내부 로컬 네트워크
(x.x.1.0/24)로 Ping이 되는 것을 차단하여라.
이때, 'log-input' 옵션 키워드를 이용하여 로그 메세지를 출력하도록 하여라.
- R1은 외부에서 오는 트래픽 중 출발지 네트워크가 x.x.2.0/24인 트래픽이 내부 로컬 웹서버
(x.x.1.100)에 접근하는 것을 차단하여라.
- R1은 위에 조건을 제외한 나머지 트래픽은 내부 로컬 네트워크(x.x.1.0/24)의 접근을 허용한다.
- 위의 조건을 구성할때에는 최대한 간결하게 ACL를 구성하며,
ACL 항목을 R1 Serial 1/0에 적용하여라.
access-list 114 deny tcp x.x.3.0 0.0.0.255 x.x.1.0 0.0.0.255 eq 23
access-list 114 deny icmp x.x.3.0 0.0.0.255 x.x.1.0 0.0.0.255 log-input
access-list 114 deny tcp x.x.2.0 0.0.0.255 host x.x.1.100 eq 80
access-list 114 permit ip any any
!
int s1/0
ip access-group 114 in
!
R1#show ip access-lists
Extended IP access list 114
10 deny tcp 13.13.3.0 0.0.0.255 13.13.1.0 0.0.0.255 eq telnet
20 deny icmp 13.13.3.0 0.0.0.255 13.13.1.0 0.0.0.255 log-input
30 deny tcp 13.13.2.0 0.0.0.255 host 13.13.1.100 eq www
40 permit ip any any
R3#ping 13.13.1.1 source fa0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.1.1, timeout is 2 seconds:
Packet sent with a source address of 13.13.3.1
U.U.U
Success rate is 0 percent (0/5)
R3#telnet 13.13.1.1 /source-interface fa0/0
Trying 13.13.1.1 ...
% Destination unreachable; gateway or host down
R1#
*Mar 1 02:14:54.727: %SEC-6-IPACCESSLOGDP: list 114 denied icmp 13.13.3.1 (Serial1/0 ) -> 13.13.1.1 (8/0), 1 packet
R1#show ip access-lists
Extended IP access list 114
10 deny tcp 13.13.3.0 0.0.0.255 13.13.1.0 0.0.0.255 eq telnet (3 matches)
20 deny icmp 13.13.3.0 0.0.0.255 13.13.1.0 0.0.0.255 log-input (5 matches)
30 deny tcp 13.13.2.0 0.0.0.255 host 13.13.1.100 eq www
40 permit ip any any
참고 CDP
# CDP(Cisco Discovery Protocol)
- Cisco 개발한 프로토콜, Cisco 장비에서만 동작 가능
- Layer 2 계층까지 동작 가능 구간에서 인접 시스코 장비를 정보를 학습하는 프로토콜
R1# show cdp neighbor
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater
Device ID Local Intrfce Holdtme Capability Platform Port ID
R2 Ser 1/0 142 R S I 3640 Ser 1/1
R2# show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater
Device ID Local Intrfce Holdtme Capability Platform Port ID
R3 Fas 2/0 123 R S I 3640 Fas 2/0
R1 Ser 1/1 122 R S I 3640 Ser 1/0
R3# show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater
Device ID Local Intrfce Holdtme Capability Platform Port ID
R2 Fas 2/0 164 R S I 3640 Fas 2/0
--------------------------------------------------------------------------
R1# show cdp neighbors detail (=show cdp entry *)
-------------------------
Device ID: R2
Entry address(es):
IP address: 13.13.12.2
Platform: Cisco 3640, Capabilities: Router Switch IGMP
Interface: Serial1/0, Port ID (outgoing port): Serial1/1
Holdtime : 141 sec
Version :
Cisco IOS Software, 3600 Software (C3640-IK9O3S-M), Version 12.4(8a), RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2006 by Cisco Systems, Inc.
Compiled Wed 19-Jul-06 18:43 by prod_rel_team
advertisement version: 2
VTP Management Domain: ''



