2022. 12. 12. 13:55ㆍ네트워크
ACCESS LIST
ACL(접근제어목록)
- ACL(Access Control List)은 패킷의 주소를 기반으로 출입을 제어하는 기능이다.
ACL의 종류
트래픽(Traffic)
- Inbound traffic : 들어오는 패킷
- Outbound traffic : 나가는 패킷
- 패기 패킷을 inbound로 처리하면 네트워크 자원을 사용함으로 outbound로 처리하는 것이 좋
지만 이는 관리 주체가 동일한 경우만 가능하다. 그리고 ACL은 라우터의 빈약한 자원을 이용
함으로 과도한 설정은 지양한다.
표준 ACL 실습 환경
표준 ACL
access‐list ## [permit | deny | remark] src_add wildcard_mask
- ## : # of ACL, 1~99 1300~1999
- [permit | deny | remark]
‐ 허용, 폐기, ACL 주석
- src add : Sender IP address
- wildcard mask : 호스트 주소의 범위
0.0.0.0 : host
0.0.0.255 : C class
0.0.1.255 : 2*C class ex) #.#.0.0~#.#.1.255, #.#.2.0~#.#.3.255, ......
255.255.255.255 : any, 모든 네트워크
Ex)
2.2.2.3 0.0.0.0 또는 host 2.2.2.3
0.0.0.0 255.255.255.255 또는 any
ACL 설정
① access‐list 설정
② 인터페이스 적용
interfce [인터페이스]
ip access‐group ## [in | out]
- ## : 적용할 ACL 번호
- [in | out] : ACL을 해당 인터페이스의 inbound 또는 outbound에 적용
- 인터페이스에 ACL을 적용하고 ACL을 정의해도 된다.
ACL 확인
# show ip access‐lists [##]
- ## : 확인할 ACL번호
- 지정하지 않으면 모든 ACL을 확인한다.
표준 ACL 설정 1
호스트 차단
- R1에서 2.2.2.3 호스트 차단
R1(config)# access‐list 1 deny 2.2.2.3 0.0.0.0 [access‐list 1 deny host 2.2.2.3]
R1(config)# access‐list 1 permit any
R1(config)# int s0/0/0
R1(config‐if)# ip access‐group 1 in
- ACL의 기본은 ALL DENY이므로 반드시 PERMIT을 지정해야 한다.
: ACL 설정은 access‐list명령이 유효할 때 활성화 된다.
- 설정 확인
R1# show run
......
interface Serial0/0/0
ip address 12.1.1.1 255.255.255.0
ip access‐group 1 in
......
access‐list 1 deny host 2.2.2.3
access‐list 1 permit any
......
표준 ACL 설정 2
네트워크 설정
- R1
permit : 2.2.0.0/24, 2.2.1.0/24
R1(config)# access‐list 1 permit 2.2.0.0 0.0.1.255
R1(config)# int s0/0/0
R1(config‐if)# ip access‐group 1 in
R1# show ip access‐lists
Standard IP access list 1
10 permit 2.2.0.0 0.0.1.255
R1# show run
......
interface Serial0/0/0
ip address 12.1.1.1 255.255.255.0
ip access‐group 1 in
......
access‐list 1 permit 2.2.0.0 0.0.1.255
......
표준 ACL 설정 3
ACL 삭제
- 아래와 같이 ACL을 새로 설정한다.
R1# show ip access‐lists
Standard IP access list 1
10 permit 2.2.0.0 0.0.0.255
20 permit 2.2.1.0 0.0.0.255
R1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)# no access‐list 1 permit 2.2.1.0 0.0.0.255
R1(config)# do show ip access‐lists
- ACL의 access‐list에서 일부를 삭제하면 전체가 삭제된다.
no access‐list 1 permit 2.2.1.0 0.0.0.255
no access‐list 1
- access‐list는 추가 가능하지만 삭제는 전체 삭제이므로 주의한다.
ACL 적용
ACL 적용 순서
① Inbound ACL
② Routing table
③ Outbound ACL
Access‐list 적용 순서
- 첫 번째 access‐list 부터 확인하며 작용되는 access‐list가 있으면 그것을 적용하고 이후 access‐list는 확인하지 않는다.
- access‐list에 정의하는 대상의 범위가 중첩되는 경우, 반드시 범위가 좁은 것을 먼저 설정한다.
- Ex) ACL을 설정하고 작동을 확인한다.
R1# show ip access‐lists
Standard IP access list 1
10 permit any (4 match(es))
20 deny 2.2.2.0 0.0.0.255
R1# show ip access‐lists
Standard IP access list 1
10 deny 2.2.2.0 0.0.0.255
20 permit any
ACL Remark
각각의 ACL에 대해서 주석을 제공한다.
ACL의 개수가 많은 경우 각 ACL의 용도를 추후 확인하고 개선하기 편하도록 ACL에 주석을 제공한다.
access‐list ## remark 주석…
- 한글 지원 불량
- 여러 행 지정이 가능하다.
R1(config)# access‐list 1 remark test ACL list
주석확인은 running‐config나 startup‐config를 통해 확인 가능하다.
- Show access‐lists는 확인불가!
확장 ACL 실습 환경
확장 ACL 설정 1
확장 ACL
- src, dst, Protocol등 다양한 요소를 통해 패킷을 제어한다.
access‐list ## [permit | deny | remark] protocol src_address dst_address [sub_protocol]
- ## : # of ACL, 100~199, 2000~2699
- protocol : tcp, udp, ip, icmp, ospf, eigrp, ahp, esp, gre
- src, dst_address
any : all add
host #.#.#.# : host 주소 지정
#.#.#.# wildcard_mask : 네트워크 주소 지정
- sub_protocol : 서브 프로토콜
echo, eq 80(eq www),eq 53(eq domain)등 지정 가능
확장 ACL 설정 2
예제
R1(config)# access‐list 100 permit ospf host 12.1.1.2 any
R1(config)# access‐list 100 permit tcp 2.2.0.0 0.0.0.255 1.1.1.0 0.0.0.255 eq 80
R1(config)# access‐list 100 permit tcp 2.2.1.0 0.0.0.255 1.1.1.0 0.0.0.255 eq telnet
R1(config)# access‐list 100 permit ip host 2.2.2.3 host 1.1.1.11
R1(config)# access‐list 100 permit ip any any
R1(config)# access‐list 100 permit icmp host 2.2.2.3 any
R1(config)# int s0/0/0
R1(config)# ip access‐group 100 in
ex) 다음 조건에 맞도록 설정한다.
① 2.2.0.0/24, 2.2.1.0/24 에서 1.1.1.0/24 로의 모든 접속을 허용한다.
② 2.2.2.0/24에서 1.1.1.11로 web 접속을 허용한다.
③ 2.2.1.3에서 1.1.1.11로의 web 접속은 불허한다.
2.2.2.3 ‐> 1.1.1.11 web allow, icmp deny
2.2.1.3 ‐> 1.1.1.11 web deny, icmp allow
확장 ACL 연습
named ACL
Name ACL
- Standard named ACL
ip access‐list standard [acl_name]
[permit | deny | remark] src_add wildcard_mask
exit
- Extended named ACL
ip access‐list extended [acl_name]
[permit | deny | remark] protocol src_address dst_address [sub_protocol]
exit
- ACL 설정은 각각 표준, 확장 ACL과 동일하다.
ACL 적용
interfce [인터페이스]
ip access‐group acl_name [in | out]
named standard ACL
제한 설정
- R1 : 2.2.2.3(2.2.2.0/24)차단
R1(config)# ip access‐list standard st_test1
R1(config‐std‐nacl)# deny host 2.2.2.3 [or deny 2.2.2.3 0.0.0.255]
R1(config‐std‐nacl)# permit any [or permit 2.2.0.0 0.0.1.255 주의!!]
R1(config‐std‐nacl)# exit
R1(config)# int s0/0/0
R1(config)# ip access‐group st_test1 in
- R2에서 : 2.2.2.3(2.2.2.0/24)차단
: access list 설정은 동일
R2(config)# ip access‐list standard st_test1
R2(config‐std‐nacl)# deny host 2.2.2.3 [or deny 2.2.2.3 0.0.0.255]
R2(config‐std‐nacl)# permit any [or permit 2.2.0.0 0.0.1.255 주의!!]
R2(config‐std‐nacl)# exit
R2(config)# int s0/0/1
R2(config)# ip access‐group st_test1 out
제한 설정
- 2.2.0.0/24, 2.2.1.0/24 에서 1.1.1.0/24 로의 모든 접속을 허용한다.
- 2.2.2.0/24에서 1.1.1.11로 web 접속을 허용한다.
- 2.2.1.3에서 1.1.1.11로의 web 접속은 불허한다.
R1(config)# ip access‐list extended ex_test1
R1(config‐ext‐nacl)# permit ospf host 12.1.1.2 any
R1(config‐ext‐nacl)# deny tcp host 2.2.1.3 host 1.1.1.11 eq 80 (eq www)
R1(config‐ext‐nacl)# permit ip 2.2.0.0 0.0.1.255 1.1.1.0 0.0.0.255
R1(config‐ext‐nacl)# permit tcp 2.2.2.0 0.0.0.255 host 1.1.1.11 eq 80
R1(config‐ext‐nacl)# permit tcp 2.2.2.0 0.0.0.255 host 1.1.1.11 eq 53 (eq domain)
R1(config‐ext‐nacl)# exit
R1(config)# int s0/0/0
R1(config‐if)# ip access‐group ex_test1 in
*2.2.1.0에 대해서 *
named ACL 연습
'네트워크' 카테고리의 다른 글
CISCO 네트워크 - EIGRP (0) | 2022.12.07 |
---|---|
CISCO 네트워크 - OSPF (0) | 2022.12.05 |
CISCO 네트워크 - 방화벽 (0) | 2022.11.30 |
CISCO 네트워크 - Router (0) | 2022.11.29 |
CISCO 네트워크 - Switch, STP (0) | 2022.11.23 |