ACL은 라우터 뿐만 아니라 스위치에서도 설정할 수 있다. 스위치에서 구성할 수 있는 ACL은 아래와 같다.
1. MAC ACL
MAC 주소를 이용해 트래픽을 제어한다. 일반적인 IP ACL과 다르게 MAC ACL은 반드시 Named ACL을 사용해야 한다.
설정
Switch(config)# mac access-list extended <name> Switch(config-ext-macl)# deny host <MAC> host <MAC> Switch(config-ext-macl)# permit any any
만일, 여러 개의 MAC주소를 지정하려면, 와일드카드 마스크를 이용해 지정한다.
ex) 0011. CB 로 시작하는 모든 MAC주소를 지정한다면, 와일드카드 마스크가 0000.00FF.FFFF가 될 것이다.
2. Port ACL
일반적으로 라우터에 사용하는 IP ACL과 비슷해보이지만, Port ACL은 L2 포트에 ACL을 적용하는 것이다. IP주소/MAC주소 모두 사용할 수 있고, 동시에 필터링을 할 수도 있다.
- 프레임을 수신하는 경우(in방향)에만 ACL을 설정할 수 있다.
- 특정 스위치에 VLAN ACL이 설정되었거나 라우터에 Inbound ACL이 설정되어있다면, 사용할 수 없다.
- Etherchannel을 사용하는 인터페이스에서 사용할 수 없다.
- MAC주소로만 필터링 한다면, MAC의 접근은 차단되어도 해당 MAC의 IP로는 접근할 수 있다.
3. VLAN ACL
VLAN에 적용하는 ACL이다. 서로 다른 VLAN 번호 간 제어, 같은 VLAN 번호 간 트래픽을 제어한다.
VACL, VLAN Map 이라고도 한다.
설정
(1) ACL 생성
(2) VLAN MAP 생성
(3) VLAN MAP을 VLAN에 적용
[설정 예시]
- Switch(config)# access-list 100 permit tcp host 10.10.10.1 host 10.10.10.3 eq ssh Switch(config)# access-list 100 permit tcp host 10.10.20.1 host 10.10.10.3 eq ssh Switch(config)# access-list 101 permit ip any any Switch(config)# Switch(config)# vlan access-map <VLAN_MAP_NAME> Switch(config-access-map)# match ip address 100 Switch(config-access-map)# action drop Switch(config-access-map)# exit Switch(config)# Switch(config)# vlan access-map <VLAN_MAP_NAME> Switch(config-access-map)# match ip address 101 Switch(config-access-map)# action forward Switch(config-access-map)# exit Switch(config)# Switch(config)# vlan filter <VLAN_MAP_NAME> vlan-list <VLAN_NUM> -
2,3,4 : Access list를 통해 허용할 호스트를 지정한다.
6: VLAN Map을 설정한다.
7: 허용하거나 차단할 대상을 불러온다.
8: 7번 대상이 오면 Drop(차단)하도록 설정한다. 별도 action 설정을 하지 않으면, Forward(허용)이다.
11: 6번과 같은 이름을 사용한다. 이름이 같아도 상관없다. 어차피 access-map을 보게 되면 자동으로 맵 이름 뒤에 20이 추가로 붙게 되어 서로 다른 맵이다.
12,13: 맵 이름만 정의하면, match / action을 설정하지 않으면 나머지 모든 것을 허용한다는 의미이므로 12,13는 생략해도 된다.
16: 원하는 VLAN에 VLAN 맵을 적용한다.
4. PBACL
Policy-Based ACL
IP 주소나 포트 번호를 ‘Object Group’으로 지정하고, ACL 생성 시 ‘Object Group’을 사용해 지정하는 방식이다. Routed / SVI와 같은 L3 인터페이스와 IPv4만 적용할 수 있다. 또한, Named ACL로만 적용할 수 있다.
설정
- Switch(config)# object-group ip address <OBJECT_NAME> Switch(config-port-ogroup)# host <IP> Switch(config-port-ogroup)# <NETWORK_ID> <SUBNETMASK> Switch(config-port-ogroup)# exit Switch(config)# Switch(config)# object-group ip address <OBJECT_NAME2> Switch(config-port-ogroup)# eq <PORT_NUM> Switch(config-port-ogroup)# <NETWORK_ID> <SUBNETMASK> Switch(config-port-ogroup)# exit Switch(config)# Switch(config)# ip access-list extended <ACL_NAME> Switch(config-ext-nacl)# permit tcp addgroup <OBJECT_NAME> portgroup <OBJECT_NAME2> any Switch(config-ext-nacl)# deny tcp any any Switch(config-ext-nacl)# exit Switch(config)# int <interface> Switch(config-if)# ip access-group <ACL_NAME> in -