ACL(Access Control List)
본문 바로가기

ACL(Access Control List)

액트 2019. 5. 27.

@ ACL(Access Control List)


- Router에 경유하는 Packet들을 IP, TCP, UDP Header를 검사하여 Router에 접근 허용하거나 거부하는 항목을 만든다.

                                             3,        4     계층

- 3계층은 주소를 이용해서 항목을 만든다.

- 4계층은 Port를 이용해서 항목을 만든다.

 

 

- ACL생성시 알아야할 정보들 -


*Header 정보
IP Header
=> Source IP
=> Destination IP

 

TCP Header
=> Source Port
=> Destination Port
=> Flag(syn,ack,fush,fin,res,urg)

 

UDP Header
=> Source Port
=> Destination Port

 

*Well Known Port 정보
TCP
=> FTP : 20(DATA), 21(Control)
=> SSH : 22
=> Telnet : 23
=> SMTP : 25
=> HTTP : 80
=> POP3 : 110
=> HTTPs : 443

UDP
=> DNS : 53
=> DHCP : 67(Server), 68(Client)
=> TFTP : 69

 


- ACL 생성방법 -

=> 내 라우터에 접근 허용할수 있는 Network와 거부할수 있는 Network를 구분하여 List를 생성(Standard)
=> 내 라우터에서 사용할수 있는 Protocol과 사용할수 없는 Protocol을 구분하여 List 생성(Extended)
=> 해당 List를 들을 인터페이스에 인바운드 또는 아웃바운드로 적용

 


- ACL 종류 -
*Standard ACL(표준 ACL) : 접근제어항목 - 출발지만 가지고 판단
Source IP Address만 검사하여 
허용하거나 거부하는 항목을 만든다.

 

*Extended ACL(확장 ACL) : Application제어항목 - 출발지와 목적지 둘 가지고 판단
Source/Destination IP Address, Protocol, Option을 검사하여 허용하거나 거부하는 항목을 만든다.

 

 


@ Standard ACL 설정방법


Router(config)#access-list <list-number> <permit/deny> <Source Network> <Wildcardmask>

Router(config)#ip access-group <list-number> <in/out>

list-number : 1-99

=> 아웃바운드 설정 권장 (인바운드는 들어오는 경로가 여러가지일 수 있다.)

 

 

Ex) (1) 일부를 허용하고 나머지 거부, (2) 일부를 거부하고 나머지 허용

=> 권장 (1). 내가 사용하고 싶은 범위만 허용하고 나머지를 거부.

 


(1) 192.168.1.0 255.255.255.0 Network만 허용하는 항목을 만드시오
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255

 

(2) 192.168.1.0 255.255.255.0 Network만 거부하는 항목을 만드시오
Router(config)#access-list 2 deny 192.168.1.0 0.0.0.255
Router(config)#access-list 2 permit any                             // 일부 거부하고 나머지 전체를 허용하는 것에 적용

 

 

@ Extended ACL 설정방법


Router(config)#access-list <list-number> <permit/deny> <Protocol> <Source Network> <Wildcardmask> <Destination> <Wildcardmask> <Option>

Router(config)#ip access-group <list-number> <in/out>

 

list-number : 100-199
Protocol : IP, ICMP, IGMP, TCP, UDP
Option : IP(X), ICMP/IGMP(type,code), TCP(port,flag), UDP(port)

 

Ex)
(1) 192.168.1.0/24 Network를 192.168.2.0/24 Network에 접근할수 없도록 설정하여라
Router(config)#access-list 100 deny 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

 

(2) ITBANK(121.160.70.0/24) 내부 Network에서 HTTP, DNS, Telnet만 사용할수 있도록 설정하여라
Router(config)#access-list 101 permit tcp 121.160.70.0 0.0.0.255 any eq 80      // TCP중에 HTTP(80)
Router(config)#access-list 101 permit tcp 121.160.70.0 0.0.0.255 any eq 23      // TCP중에 DNS(23)
Router(config)#access-list 101 permit udp 121.160.70.0 0.0.0.255 any eq 53     // UDP중에 Telnet(53)

 

 

- 주의 사항 -

1. 암시적 거부 :  ACL는 자신이 가지고 있지 않은 목록에 대해선 거부한다. 

    => 일부만 거부하는 항목을 만들 때 나머지 허용에 대한 항목을 만들어줘야 한다.

2. 먼저 들어온 항목을 먼저 처리한다.

    => 좁은 범위에서 점점 범위가 커지게 끔 설정해주는 것을 권장한다.

3. 부분 수정이 안된다.

    => 해당 그룹에 전체에 적용되어 수정된다.

    => 메모장을 이용해서 작성해주는 것을 권장한다.

 

 

 

 

- 실습 -

 

 

 

@ Standard ACL 설정 예 

1. 172.12.0.0/24 Network에 172.13.1.0/24 Network만 접근 거부하는 항목을 만드시오.

 

!-- R2
conf t
access-list 1 deny 172.13.1.0 0.0.0.255
access-list 1 permit any
int f0/0 
ip access-group 1 out
end

 

확인
!-- R3
ping 172.12.0.2 source 172.13.0.1
!!!!!
ping 172.12.0.2 source 172.13.1.1
U.U.U

삭제 -> 다음 실습을 위한 준비
!-- R2
conf t
no access-list 1
int f0/0
no ip access-group 1 out
end

 


2. R1 Router에 172.13.0.0/24, 172.13.1.0/24  Network만 거부하는 항목을 만드시오

!-- R1
conf t
access-list 2 deny 172.13.0.0 0.0.0.255
access-list 2 deny 172.13.1.0 0.0.0.255
access-list 2 permit any
int s1/0
ip access-group 2 in
int s1/1
ip access-group 2 in
end

 

확인
!-- R2
ping 192.168.1.1 source 172.12.0.1
!!!!!
ping 192.168.1.1 source 172.12.1.1
!!!!!
ping 192.168.1.9 source 172.12.0.1
!!!!!
ping 192.168.1.9 source 172.12.1.1
!!!!!

!-- R3
ping 192.168.1.1 source 172.13.0.1
U.U.U
ping 192.168.1.1 source 172.13.1.1
U.U.U
ping 192.168.1.9 source 172.13.0.1
U.U.U
ping 192.168.1.9 source 172.13.1.1
U.U.U

 

삭제 -> 다음 실습을 위한 준비
!-- R1
conf t
no access-list 2 
int s1/0
no ip access-group 2 in
int s1/1
no ip access-group 2 in
end


3. R2 Router에 172.12.0.0/24, 172.12.1.0/24 Network만 허용하는 항목을 만드시오

=> 자신의 네트워크 말고 모두 거부 (들어왔을때 검사하여 아니면 거부하면다)

!-- R2
conf t
access-list 3 permit 172.12.0.0 0.0.1.255
int s1/0
ip access-group 3 in
int s1/1
ip access-group 3 in
end

 

확인
!-- R2
ping 192.168.1.1 source 172.12.0.1
!!!!!
ping 192.168.1.1 source 172.12.1.1
!!!!!

!-- R1
ping 192.168.1.1 source 172.11.0.1
U.U.U
ping 192.168.1.1 source 172.11.1.1
U.U.U

!-- R3
ping 192.168.1.1 source 172.13.0.1
U.U.U
ping 192.168.1.1 source 172.13.1.1
U.U.U

 

삭제 -> 다음 실습을 위한 준비
!-- R2
conf t
no access-list 3 
int s1/0
no ip access-group 3 in
int s1/1
no ip access-group 3 in
end

 

 


@Extended ACL 설정예 


HTTP 설정
!-- R1, R2, R3
conf t
ip http server
ip http authentication local
username admin privilege 15 password cisco
line vty 0 4
login local
end

 


1. 172.12.0.0/24 Network에서 Ping Test만 할수 없도록 설정
!-- R2
conf t
access-list 100 deny icmp 172.12.0.0 0.0.0.255 any echo             // ping 요청과 응답만 존재하므로 eq 없다.
access-list 100 deny icmp 172.12.0.0 0.0.0.255 any echo-reply     
access-list 100 permit icmp any any
access-list 100 permit ip any any                                             // 암시적 거부로 인한 나머지 프로토콜의 사용을 위해서 

int f0/0
ip access-group 100 in
end

확인
C:\>ping 172.12.0.1
Reply from 172.12.0.1: Destination net unreachable.

C:\>telnet 172.12.0.1
R2>

http://172.12.0.1
R2>

삭제
!-- R2
conf t
no access-list 100 
int f0/0
no ip access-group 100 in
end

 


2. 172.12.0.0/24 Network에서 Ping과 Telnet만 사용할수 있도록 설정
!-- R2
conf t
access-list 101 permit icmp 172.12.0.0 0.0.0.255 any echo
access-list 101 permit icmp 172.12.0.0 0.0.0.255 any echo-reply
access-list 101 permit tcp 172.12.0.0 0.0.0.255 any eq 23
int f0/0
ip access-group 101 in
end

확인
C:\>ping 172.12.0.1
Reply
C:\>telnet 172.12.0.1
R2>

http://172.12.0.1 -> X

삭제
!-- R2
conf t
no access-list 101 
int f0/0
no ip access-group 101 in
end


3.R2 Router에서 172.11.1.0/24 Network와 172.13.0.0/24 Network만 접근 거부하는 항목을 만들고 172.12.0.0/24 Network에서 HTTP, DNS, FTP, SSH만 사용할수 있도록 설정하시오

!-- R2
conf t
access-list 10 deny 172.11.1.0 0.0.0.255
access-list 10 deny 172.13.0.0 0.0.0.255
access-list 10 permit any
access-list 110 permit tcp 172.12.0.0 0.0.0.255 any eq 80
access-list 110 permit tcp 172.12.0.0 0.0.0.255 any eq 20
access-list 110 permit tcp 172.12.0.0 0.0.0.255 any eq 21
access-list 110 permit tcp 172.12.0.0 0.0.0.255 any eq 22
access-list 110 permit udp 172.12.0.0 0.0.0.255 any eq 53
int s1/0
ip access-group 10 in
int s1/1
ip access-group 10 in
int f0/0
ip access-group 110 in
end 

댓글