ACL을 구성하는 단계는 2가지로 나눌 수 있다.
“① ACL 설정 → ② ACL 적용“
ACL 설정은 Global mode에서 진행하고, ACL 적용은 인터페이스나 라인에서 한다.
1. Standard ACL 설정
간단한 구문으로 이루어져있다.

⑴ [1-99] : ACL 유형별로 범위가 있으며, Standard ACL은 1~99 내에서 사용한다.
⑵ {permit | deny} : permit – 접근 허용, deny – 접근 차단.
⑶ source : 출발지 호스트의 IP.
⑷ wildcard-mask : source의 와일드카드 마스크.
⑸ {log} : ACL 항목이 일치해 필터링되는 경우, 로그를 출력하는 옵션.
1-2. ACL 적용
Standard ACL 및 Extended ACL 모두 적용하는 방법은 동일하다.
(ACL이 적용돼야 하는 인터페이스로 먼저 접속 한다.)

⑴ [1-99] : 앞서 설정한 ACL의 항목 번호를 입력한다.
⑵ {in | out} : 라우터 기준으로 in / out에 해당하는 값을 넣는다.
1-3. Standard ACL 명령어 다뤄보기
Q. 192.168.0.0/24 망이 10.0.0.0/8 망에 접근할 수 없도록 차단해주세요. 단, 호스트 192.168.0.200은 접근할 수 있어야 합니다.

Router(config)# access-list 10 permit 192.168.0.200 host Router(config)# access-list 10 deny 192.168.0.0 0.0.0.255 Router(config)# access-list 10 deny any Router(config)# Router(config)# int fa0/0 Router(config-if)# ip access-group 10 in Router(config-if)# int fa0/1 Router(config-if)# ip access-group 10 out
2. Extended ACL 설정
Standard ACL보다 복잡해보이지만 이해하고 나면 막상 어렵지 않으니 일단 ‘아, 이런게 있구나’ 정도로만 봐도 될 것 같다.

⑴,⑵ : 1번 참고
⑶ protocol : 패킷의 프로토콜을 정의한다. (TCP, UDP, ICMP, EIGRP, OSPF, IP)
⑷,⑸ : 출발지 호스트 IP와 와일드카드 마스크
⑹ eq / ⑺ [port-numer] : 출발지 포트 번호를 정의하겠다는 키워드 / 출발지 포트 번호를 입력 부분
⑻, ⑼ : 목적지 호스트 IP와 와일드카드 마스크
⑽ eq / ⑾ [port-numer] : 목적지 포트 번호를 정의하겠다는 키워드 / 출발지 포트 번호를 입력 부분
⑿ log / log-input : 1번 참고 / 로그 메세지 출력 시 ACL 필터가 동작한 인터페이스 정보도 함께 출력한다.
⒀ {time-range} : 정해진 시간 동안에만 ACL 동작하게 하는 옵션이다.
⒁ {tos | precedence | dscp} : IP 패킷 마킹이 실시된 트래픽을 정의할 때 사용된다.
⒂ {TCP Flag} : TCP 플래그가 설정된 패킷을 정의한다.
(16) {fragment} : 분할된 IP 패킷을 정의한다.
(17) {established} : TCP 플래그 중 ACK, RST가 설정된 트래픽을 정의한다.
2-2. Extended ACL 명령어 다뤄보기

Q1. 호스트 172.30.5.2가 웹서버 192.168.0.2로 접근하는 것을 차단하고, 172.30.1.0/24 망에서는 웹서버 192.168.0.2로 접근할 수 있어야 합니다. 이외 나머지 트래픽은 접근할 수 있어야합니다. (R2에서 설정)
R2(config)# access-list 100 deny tcp host 172.30.5.2 host 192.168.0.2 eq 80 R2(config)# access-list 100 permit tcp 172.30.1.0 0.0.0.255 host 192.168.0.2 eq 80 R2(config)# access-list 100 permit ip any any R2(config)# R2(config)# int s0/0 R2(config-if)# ip access-group 100 in
Q2. 172.30.5.0/24 망의 모든 호스트들은 웹서버 192.168.0.2로 ping을 할 수 없고, 호스트 192.168.0.100으로는 ping을 할 수 있어야 합니다. 웹서버에 추가로 ftp 기능을 추가하면서, 모든 외부 호스트들은 09시부터 21시까지 192.168.0.2로 ftp 접속을 할 수 있어야 합니다. 이외 모든 트래픽은 차단되어야 합니다.(R2에서 설정)
R2(config)# time-range TR R2(config-time-range)# periodic weekdays 09:00 to 21:00 R2(config-time-range)# exit R2(config)# R2(config)# access-list 120 deny icmp 172.30.5.0 0.0.0.255 host 192.168.0.2 echo R2(config)# access-list 120 permit icmp 172.30.5.0 0.0.0.255 host 192.168.0.2 echo R2(config)# access-list 120 permit tcp any host 192.168.0.2 eq 21 time-range TR R2(config)# access-list 120 deny ip any any R2(config)# R2(config)# int s0/0 R2(config-if)# ip access-group 120 in
3. Named ACL 설정
Named ACL을 사용하면 항목 번호가 아닌 이름으로도 지정할 수 있다. 그리고 ACL을 부분적으로 추가하거나 삭제할 수있다.

⑴ {standard | extended} : ACL 종류를 선택한다.
⑵ {num | name} : num은 항목번호, name은 이름이다.
1-99(Standard), 100-199(Extended)를 넣거나 텍스트로 된 이름을 넣으면 된다.
위 명령어를 수행하면 아래의 모드로 변경된다.
Router(config-std-nacl)#
Router(config-ext-nacl)#
설정 방법은 기존 ACL과 매우 유사하지만, sequence number를 통해 부분적으로 acl 설정을 추가하거나 삭제할 수 있다.
Named ACL 설정은 CISCO 가이드를 참고하자.