CCNA(ENSA)-setACL

김상우·2022년 5월 20일
0

CCNA

목록 보기
11/14
post-thumbnail

ACL 구성

구성지침

  • 먼저 ACL을 구성하기 위해서는 다음과 같은 지침이 있다.
    1. 텍스트 편집기 등을 사용해서 ACL을 구현할 정책의 세부사항을 작성한다.(혹은 페이퍼 프로토타입 형식으로 수기로 작성)
    2. 세부적인 목표를 수행하기 위한 명령어를 작성한다.
    3. 주석을 사용하여 ACL을 문서화한다.
    4. 장비에 위의 절차를 통해 작성한 명령어들을 복사한다.
    5. 구성완료 후 올바르게 적용되었는지 확인한다.
  • ACL을 적용하고 올바르게 적용되었는지 확인하는 절차의 이유
    특정 주소에서만 ACL이 Permit으로 적용한다면 명시한 주소 외의 다른 주소들은 모두 Deny로 적용되기 때문에 특정 주소를 제외한 나머지 주소에 대한 언급이 반드시 필요하기 때문이다.

구성방법

ACL은 standard 형식과 extend 형식으로 분류되며, 이 글에서는 standard 형식에 대해서만 다룰 예정이다.

번호 형식의 standard IPv4 ACL 구문(numbered standard IPv4 ACL syntax)

  • 명령어
Router(config)# access-list [access_list_number] {deny | permit | remark text} [source] [source-wildcard] [log] 
  • 명령어의 각 매개변수에 대한 설명
매개변수설명
access-list-number주소대약만 검사하는 경우는 1~99, 1300~1999의 범위 내에서 사용해야한다.
remark textACL의 목적을 설명할 때 사용하며 선택적으로 사용한다.
source필터링을 하기 위한 출발지 주소 혹은 네트워크를 뜻한다.
source-wildmasksource에 작성한 주소의 32비트 와일드카드 마스크를 뜻하며 선택적으로 작성한다.
  • 특정 주소만 ACL 적용 방법(예시)
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 명령어를 사용했다.

위 명령어에 이어서 다음 명령어까지 적용해보면 다음과 같다.

  • 특정 네트워크에 대한 ACL 적용 방법(예시)
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이다.

이름 형식의 standard IPv4 ACL 구문(named standard IPv4 ACL syntax)

  • 특징
    • ACL 이름은 영문또는 숫자로 이뤄지며, 대소문자를 구분하고 각각 고유한 이름을 사용한다.
    • 꼭 대문자를 사용할 필요는 없으나 CLI환경에서 작업하는 특성상 눈에 잘띄어 ACL을 확인할 때 수월하다.
    • 아래 명령어의 [access-list-name]은 extend, standard 모두에서 사용가능하므로 반드시 앞에 extend인지 standard인지 명시해야한다.
  • 명령어
Router(config)# ip access-list standard [access-list-name]
  • 특정 주소만 ACL 적용 방법(예시)
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 명령어를 사용했다.

위 명령어에 이어서 적용하면 다음과 같다.

  • 특정 네트워크에 대한 ACL 적용 방법(예시)
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을 적용하는 명령어이다.

IPv4 ACL 적용 및 확인

지금까지 번호형식과 이름형식의 standard ACL을 구성하는 절차를 확인해보았다. 하지만 구성한 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로 규칙을 규명한다.

  • 번호 형식의 ACL을 적용하는 방법(예시)
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으로 적용하여 패킷이 해당 인터페이스를 통과하여 외부로 나갈 때 필터링을 진행하도록 설정하도록 입력한 것이다.
  • 이름 형식의 ACL을 적용하는 방법(예시)
Router(config)# interface s0/0/0
Router(config-if)# ip access-group PERMIT-ACCESS out
  • 번호 형식의 ACL을 적용하는 것처럼 동일하게 명령어를 작성하며, 번호를 넣는 부분에 이름으로 지정한 ACL 이름을 넣는다.

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
  • ACL 동작 여부 확인
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에 대한 규칙은 적용되지 않았다.

profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글