ACL ( Aceess Control List ) 이란?
- 원하지 않는 트래픽이 네트워크를 경유하거나 접근 할 수 있는데 이 것을 차단하는데 사용
- 허가되지 않은 이용자가 라우터를 포함한 네트워크의 특정 자원을 접근하려는 것을 차단
- Routing Table Update시 Routing Table의 어느 부분을 전달하지 않게 하고자 할 때 이를 차단
- Access List는 라우터를 경유하는 모든 packet에 대한 제어를 적용할 수 있는 것
- Access List를 이용하여 방화벽 기능과 같은 보안 기능을 할 수도 있다.
< ACL의 사용 원칙 >
- 트래픽이 많이 발생되는 것을 가장 위에 배치한다.
- 범위가 적은 것을 먼저 구성한다.
- no accss-list 10 을 실행하면 모든 list가 삭제된다.
< ACL의 종류 >
- Standard Access list
- Extended Access list
Standard Access list는 IP Packet의 source address만을 검사하여 제어하는 것
Extended Access list는 IP Packet의 source 및 destination address 뿐만 아니라
Application port 번호 등을 검사하여 제어한다
< Standard Access List >
- 패킷의 헤더에서 Source IP만을 검사한다
- Access list Number 는 1~99까지 사용
- 좁은범위의 것은 먼저 적용
- 해당되는 경우가 많은 조건을 먼저 선언
- 기본적으로 마지막을 deny any를 반드시 추가한다.
- 중간의 임의의 값을 수정할 수 없다 ( 조건을 지우거나 추가할 시 마지막에 추가한다. )
< Standard Access list의 형식 >
router # access-list access-list-number { permit | deny } [ source address wildmask | any ]
ex) router # access-list 10 permit 192.168.0.0 0.0.255.255 // 192.168.0.0 네트워크의 모든 호스트
router # access-list 55 deny 168.126.66.0 0.0.0.255 // 168.126.66.0 네트워크의 모든 호스트
router # access-list 25 permit any // 모든 IP 허용
router # access-list 11 permit 122.58.5.203 0.0.0.0 // 122.58.5.203 단일 호스트. 0.0.0.0은 생략 가능
router # access-list 12 deny 255.255.255.255 // 모든 IP 거부 (모든 리스트의 마지막룰에 기본적으로 추가)
< Standard Access List의 사용 예 >
R3(config)# access-list 10 permit 192.168.1.100 0.0.0.255 // access-list 10 : 10번 목록 사용
즉, 192.168.1.100 만 패킷 전송을 허용하겠다고 선언한다. 만약 차단하겠다는 명령어는 Deny이다.
R3(config)# int s0/1
R3(config-if)# ip access-group 10 in // In_Traffic을 제어할 것인지 Out_Traffic을 제어할 것인지 결정
Access list를 구성할 경우 Default는 deny이다. 만약 특정 IP만 Deny로 설정하고 나머지는 Permit을 할 경우
R3(config)# access-list 10 deny 192.168.1.100 0.0.0.255 // 192.168.1.100을 뺀 나머지 모든 ip를 허용한다는 의미이다.
< Extended Access List >
- Source Address 및 Destination Address를 점검하여 제어
- Internet Layer Protocol 및 Transport Layer Protocol, Application Layer Protocol 종류를 점검하여 제어
( icmp, igmp, tcp, udp 인 경우 추가적인 정보 명시 필요 )
< Extended Access List 적용 과정 >
Protocol Option은 생략 가능
Standard Access List의 적용 과정과 비교할 때 Destication Address, Protocol, Protocol Option을 추가적으로 점검한다.
< IP Extended Access List 명령 >
- 일반적인 형태
Router(config)# access-list access-list-number {permit | deny} {protocol | protocol-keyword} {source wildcard | any} {destination wildcard|any} {protocol-options}
Access-list-number는 100 ~ 199 까지 이용
protocol keyword로는 ip, icmp, udp, tcp, igrp, eigrp, ospf, nos등이 있으며 0~255까지 이용
( ip는 다른 Protocol을 모두 포함하는 가장 큰 범위 )
- ICMP Protocol에 대한 Extended Access List
Router(config)# access-list access-list-number {permit | deny} icmp {source wildcard | any} {destination wildcard | any} {icmp-type [icmp-code] | icmp-message}
icmp-type : ICMP Message Type에 따라 제어가 가능
생략 가능한 icmp-type : ICMP Message Type에 의헤 Filtering된 Packet은 ICMP Message Code에 의해
Filtering 될 수 있다.
icmp-message : icmp-type과 icmp-code를 조합한 것을 알기 쉬운 Keyword로 정의하여 놓은 것으로 이것을 이용하면
icmp-type과 icmp-code를 입력해야 하는 불편과 복잡함을 피할 수 있다.
- TCP Protocol에 대한 Extended Access List
Router(config)# access-list access-list-number {permit | deny} tcp {source wildcard | any} {destination wildcard | any} [operator destination-port | destination-port] [established]
tcp port number 혹은 keyword로 제어 가능
established가 지원
( TCP Segment 내의 ACK 혹은 RST bit이 1로 설정되어 있는 경우를 뜻하는 데, 이것은 데이터 요청에 대한 응답을
가리키는 것이다.)
operator : lt, gt, eq, neq
- UDP Protocol에 대한 Extended Access List
Router(config)# access-list access-list-number {permit | deny} udp {source wildcard | any} [operator source-port | source-port] {destination wildcard | any} [operator destination-port | destination-port]
udp port 혹은 keyword로 제어 가능
established가 지원되지 않는 이유는 UDP Segment는 Call Connetion 과정이 없고 전달한 데이터에 대한 ack를 받지
않기 때문이다.
< Extended Access List의 사용 예 >
- 외부에서 X로 메일만 보낼 수 있게 할 경우
Router A
access-list 100 permit tcp any 128.88.1.0 0.0.0.255 established
access-list 100 permit any host 128.88.1.2 eq stmp
interface ethernet 1
ip access-group 100 in
- 외부에서 X로 메일만 보내게 하고, 128.88.0.0/16으로 nslookup 및 ping을 허용하려고 할 경우
Router A
access-list 100 permit tcp any 128.88.1.0 0.0.0.255 established
access-list 100 permit tcp any host 128.88.1.2 eq smtp
access-list 100 permit udp any any eq domain
access-list 100 permit tcp any any eq domail
access-list 100 permit icmp any any echo
access-list 100 permit tcmp any any echo-reply
interface serial 0
ip access-group 100 in
- 외부에서는 203.252.1.202로 nslookup, 인터넷 메일, 웹서비스만 접속 할 수 있게 하고 203.252.1.0/24에
있는 모든 시스템들은 외부의 서비스를 이용할 수 있도록 할 경우
Configuration 결과
Router
access-list 101 permit tcp any 203.252.1.0 0.0.0.255 established
access-list 101 permit tcp any host 203.252.1.202 eq smtp
access-list 101 permit tcp any host 203.252.1.202 eq www
access-list 101 permit udp any host 203.252.1.202 eq domain
access-list 101 permit tcp any host 203.252.1.202 eq domain
access-list 101 permit udp any 203.252.1.0 0.0.0.255 gt 1023
// 내부 이용자가 udp segment로 데이터를 보내주는 외부의 서버에 접속하는 것을 허용해 주기 위하서이다.
intergace ethernet 0
ip access-group 101 out
access-list를 선언한 것을 확인하려면 다음과 같은 명령어를 이용한다.
Router# show access-lists
Router# show ip access-list [access-list-numner]
< 원본 : http://blog.naver.com/cafca23?Redirect=Log&logNo=90048750084 >
< 원본 : http://blog.naver.com/menkib?Redirect=Log&logNo=70014002622 >
'네트워크 > 네트워크이론' 카테고리의 다른 글
[스위치] 스위치의 구분 (0) | 2010.06.18 |
---|---|
[라우터] 라우팅 테이블 (0) | 2010.06.18 |
[네트워크] 소켓의 동작모드 (0) | 2010.06.18 |
[네트워크] 포트스캔의 이해와 구현 (0) | 2010.06.18 |
[스위치] VLAN ( Virtual LAN ) (0) | 2010.06.18 |