특정 주소에서만 ACL이 Permit으로 적용한다면 명시한 주소 외의 다른 주소들은 모두 Deny로 적용되기 때문에 특정 주소를 제외한 나머지 주소에 대한 언급이 반드시 필요하기 때문이다.
ACL은 standard 형식과 extend 형식으로 분류되며, 이 글에서는 standard 형식에 대해서만 다룰 예정이다.
Router(config)# access-list [access_list_number] {deny | permit | remark text} [source] [source-wildcard] [log]
매개변수 | 설명 |
---|---|
access-list-number | 주소대약만 검사하는 경우는 1~99, 1300~1999의 범위 내에서 사용해야한다. |
remark text | ACL의 목적을 설명할 때 사용하며 선택적으로 사용한다. |
source | 필터링을 하기 위한 출발지 주소 혹은 네트워크를 뜻한다. |
source-wildmask | source에 작성한 주소의 32비트 와일드카드 마스크를 뜻하며 선택적으로 작성한다. |
Router(config)# access-list 10 remark ACE permits ONLY host 192.168.10.10 to the internet
Router(config)# access-list 10 permit host 192.168.10.10
- 첫 번째 명령어는 remark 명령어를 사용해 access-list 10에 'ACE permits ONLY host 192.168.10.10 to the internet'라는 설명을 추가했다.
- 두 번째 명령어는 특정 호스트 192.168.10.10에 대해 permit 명령어를 사용했다.
위 명령어에 이어서 다음 명령어까지 적용해보면 다음과 같다.
Router(config)# access-list 10 remark ACE permits all hosts in LAN 2
Router(config)# access-list 10 permit 192.168.20.0 0.0.0.255
Router(config)# do show access-lists
Standard IP access list 10
10 permit 192.168.10.10
20 permit 192.168.20.0 wildcard bits 0.0.0.255
- 앞선 명령어와 같이 remark를 통해 'ACE permits all hosts in LAN 2'라는 설명을 추가 했다.
- 두 번째 줄은 같은 ACL에 특정 네트워크를 permit을 부여하는 명령어로 "주소영역 : 192.168.20.0, 와일드마스트 : 0.0.0.255"에 대한 네트워크를 추가한 것이다.
- do show access-lists 명령어를 통해 적용된 ACL을 확인해보면 이전에 적용한 특정 호스트에 대한 ACL 규칙과 이번 예시에서 적용한 특정 네트워크에 대한 ACL 규칙이 출력된다.
- 이때 permit 앞에 나오는 10, 20은 각각 10번, 20번 ACL을 뜻하는 것이 아니며, access-list 10의 규칙 번호라고 생각하면 된다.
결론은 두가지 모두 10번 ACL이다.
Router(config)# ip access-list standard [access-list-name]
Router(config)# ip access-list standard PERMIT-ACCESS
Router(config-std-nacl)# remark ACE permits host 192.168.10.10
Router(config-std-nacl)# permit host 192.168.10.10
- 첫 번째 명령어는 standard 형식으로 PERMIT-ACCESS라는 이름을 적용한 ACL이다.
- 두 번째 줄부터 라우터의 명령 위치가 config-std-nacl로 변경되면서 해당 위치는 이전 명령어에서 입력한 PERMIT-ACCESS이다.
- remark 명령어를 통해 ACE permits hosts 192.168.10.10이라는 설명을 표기했다.
- 세 번째 줄은 특정 호스트 192.168.10.10주소만 permit 명령어를 사용했다.
위 명령어에 이어서 적용하면 다음과 같다.
Router(config-std-nacl)# remark ACE permits all host LAN 2
Router(config-std-nacl)# permit 192.168.20.0 0.0.0.255
- 첫 번째 줄은 이 글을 작성하며 지속적으로 언급했던 것 처럼 remark를 통해 ACE permits all host LAN 2 라는 설명을 추가 했다.
- "주소영역 : 192.168.20.0, 와일드마스크 : 0.0.0.255" 에 해당하는 특정 네트워크에 대해 permit을 적용하는 명령어이다.
지금까지 번호형식과 이름형식의 standard ACL을 구성하는 절차를 확인해보았다. 하지만 구성한 ACL을 적용하고자 하는 인터페이스에 적용해야만 ACL의 규칙이 활성화 된다.
구성한 ACL을 인터페이스에 적용하지 않으면 규칙이 활성화되지 않으므로 반드시 적용하는 명령어를 입력해야한다.
Router(config-if)# ip access-group {access-list-number | access-list-name} {in | out}
먼저 적용하고자 하는 인터페이스로 접속 후 ip access-group 명령어를 통해 번호형식 또는 이름형식의 ACL을 적용하며 명령어 입력 시 in 또는 out 명령어를 통해 inbound 또는 outbound로 규칙을 규명한다.
Router(config)# interface s0/0/0
Router(config-if)# ip access-group 10 out
- ACL을 적용하기 전에 라우터의 s0/0/0 인터페이스로 접속한다.
- 두 번째 줄은 ip access-group 명령어를 통해 번호 형식으로 구성한 10번 ACL을 입력 후 out을 입력하여 outgoing으로 적용하여 패킷이 해당 인터페이스를 통과하여 외부로 나갈 때 필터링을 진행하도록 설정하도록 입력한 것이다.
Router(config)# interface s0/0/0
Router(config-if)# ip access-group PERMIT-ACCESS out
- 번호 형식의 ACL을 적용하는 것처럼 동일하게 명령어를 작성하며, 번호를 넣는 부분에 이름으로 지정한 ACL 이름을 넣는다.
ACL을 구성하여 적용하는 것까지 진행해보았다. 이제 구성된 ACL 목록, 동작여부, 인터페이스 적용 여부를 확인하는 명령어를 기술했다.
번호와 이름의 차이만 있기 때문에 이름으로 구성한 ACL로 예시를 기술했다.
Router# show access-lists
Standard IP access list PERMIT-ACCESS
10 permit 192.168.10.10
20 permit 192.168.20.0, wildcard bits 0.0.0.255
Router# show run | section ip access-list
ip access-list standard PERMIT-ACCESS
remark ACE permits host 192.168.10.10
permit 192.168.10.10
remark ACE permits all host in LAN 2
permit 192.168.20.0 0.0.0.255
Router# show ip int Serial 0/0/0 | include access list
Outgoing Common access list list is not set
Outgoing access list is PERMIT-ACCESS
Inbound Common access list is not set
Inbound access list is not set
간단하게 ACL 목록을 구성하고 인터페이스에 적용하는 법을 알아보았다.
이렇게 구성한 것으로 알수 있는점을 기술해보았다.
1. 192.168.20.0 네트워크의 서브넷마스크는 255.255.255.0 이다.(서브넷 마스크는 와일드카드 마스크의 역수이다.)
2. ACL목록을 확인하여 나오는 두 가지 네트워크 및 호스트 이외의 네트워크 및 호스트는 따로 명시하지 않았기 때문에 모두 deny가 되어있다.
3. 인터페이스에 구성할 때 out으로 적용했기 때문에 Outgoing 규칙만 적용이 되고 Inbound에 대한 규칙은 적용되지 않았다.