ACL 개념 및 Router 에서 설정 실습

최병훈·2024년 10월 1일
post-thumbnail

1) 개요

  • 네트워크에서 네트워크로 오고 가는 트래픽을 검사하고 필터링 하는 방법이 필요
    • 데이터 네트워크에서는 라우터 트래픽 연결점의 역할 수행
    • 라우터에서 Access Control List를 사용해서 트래픽 식별, 필터링, 분류, 변환 작업을 수행
  • 라우터의 ACL은 자신의 네트워크로 적절한 접속은 허용하면서 원치 않는 연결을 거부할 수 있는 방법
  • ACL을 이용하면 라우터의 지정된 인터페이스에 패킷의 통과를 허용하거나 거부할 수 있다.
  • ACL은 라우터를 통과하여 지나가는 트래픽은 필터링하지만 출발하는 트래픽은 필터링하지 않음.
  • 대부분은 패킷 필터링이 목적이지만, 특정한 트래픽을 구별해서 분류하는 용도로도 사용이 가능
  • ACL 동작
    • 허용 또는 거부 동작은 입력 ACL과 출력 ACL로 구분
    • 입력 ACL은 패킷들이 라우팅되기 전에 처리
    • 출력 ACL은 라우팅 된 후에 패킷을 처리
    • 입력 ACL이 효율적, 라우터의 오버헤드를 줄일 수 있기 때문
    • 입력 ACL의 경우 필터링 조건을 확인해서 패킷의 허용 여부를 결정하고 패킷이 허용되면 라우팅 과정으로 넘어가는데 라우팅 테이블을 참조해서 라우팅이 가능한지 여부를 결정하고 불가능할 경우에는 패킷을 폐기
    • 출력 ACL의 경우 입력된 패킷이 출력 인터페이스로 라우팅 된 후에 패킷의 허용 여부를 결정
  • 동일한 ACL을 하나의 라우터에 여러 개 설정하는 것이 가능
  • ACL의 종류
    • Standard ACL
      • 패킷의 발신지 IP 주소를 검사해서 패킷을 필터링
      • 10.1.1.1 로 부터 출발한 패킷은 허용하고 10.1.1.2 로 부터 출발한 패킷은 거부하는 형태로 작성
      • 발신지 주소에 따라 프로토콜 전체를 허용 또는 거부하는 형식
    • Extended ACL
      • 패킷의 발신지와 목적지를 모두 검사
      • 10.1.1.1 로 부터 출발해서 10.1.1.3 으로 가는 패킷은 거부하고 10.1.1.2 로 가는 패킷은 허용
      • 특정 프로토콜, 포트 번호 등 다른 매개변수들도 검사할 수 있습니다.
      • HTTP 패킷은 허용하고 Telnet 패킷은 거부할 수 있다.
  • ACL을 구분하기 위한 방법
    • numbered ACL : 번호를 붙여서 식별
    • named ACL : 이름을 붙여서 식별
    • numbered ACL은 번호에 따라 Standard 인지 Extended 인지 구별할 수 있습니다.
      • Standard : 1~99, 1300~1999
      • Extended : 100~199, 2000~2699
  • 와일드카드마스크
    • 여러 개의 IP 주소를 하나로 표현하기 위한 방법
    • 4개의 옥텟으로 32비트
    • 마스크 비트 0은 대응하는 비트 값을 검사하라는 의미이고 1은 무시하라는 의미
    • 서브넷 마스크에서 0과 1은 대응하는 IP 주소의 호스트 부분과 네트워크 부분을 결정하지만, 와일드카드 마스크에서 0과 1은 대응하는 IP 주소가 일치해야 하는지 무시해도 되는지를 결정

2) 설정

  • Standard ACL의 설정
    • IP 헤더에서 출발지 IP 주소를 기반으로 패킷을 필터링
    • 번호는 1~99 또는 1300~1999 번을 이용
    • 단계
      • ACL 구문 작성
      access-list 번호 {permit | deny | remark}
      access-list 1 permit 172.16.0.0 0.0.255.255
      • ACL 구문을 인터페이스에 적용
      ip access-group 번호 {in | out}
      interface fa0/1
      ip access-group 1 out
      • ACL의 기본은 deny all
      • 특정 네트워크의 트래픽만 허용
      configure terminal
      access-list 1 permit 12.16.0.0 0.0.255.255
      interface fastethernet0/1
      ip access-group 1 out
      • 특정 네트워크의 트래픽만 거부
      configure terminal
      access-list 2 deny 12.16.0.0 0.0.255.255
      access-list 2 permit 0.0.0.0 255.255.255.255
      interface fastethernet0/1
      ip access-group 2 out
  • Standard ACL 적용 실습

    • 4개의 라우터를 배치하고 연결한 후 IP를 설정하고 서로 간의 네트워크가 전부 가능하도록 라우팅

    • ping을 보낼 때 ping이라고 입력하면 여러 옵션을 지정해서 ping이 가능

    • R2에서 192.168.0.0 255.255.255.0 만 허용 가능하도록 fa0/1에 in 으로 적용

      configure terminal
      access-list 1 permit 192.168.0.0 0.0.0.255
      interface fa0/1
      ip access-group 1 in

    • R1 라우터에서 192.168.10.1 에 ping을 전송

      • source IP를 192.168.0.1 로 전송, 이 경우는 permit 이라서 전송 가능
      • source IP를 192.168.30.254 로 전송, 이 경우는 deny라서 전송되지 않음 (UUUUU)

    • R2 라우터의 ACL 적용 해제

      interface fa0/1
      no ip access-group 1 in
    • R2에서 192.169.0.0 255.255.255.0 만 거부하도록 fa0/1에 적용

      configure terminal
      access-list 2 deny 192.169.0.0 0.0.0.255
      access-list 2 permit 0.0.0.0 255.255.255.255
      interface fa0/1
      ip access-group 2 in

3) Extended ACL(확장 ACL)

  • 개요
    • Standard ACL에 비해서 더 넓은 범위의 제어와 유연성을 가지고 있음
    • Standard ACL은 출발지 주소를 기반으로 전체 프로토콜에 대해서만 허용과 거부를 할 수 있음
    • 출발지 주소와 목적지 주소 IP를 모두 검사하고 프로토콜, 포트 번호 등을 이용해서 접속을 거부하거나 허용할 수 있습니다.
      • ex) HTTP는 허용하고 FTP는 거부할 수 있음
    • ACL 번호를 100~199 또는 2000~2699FMF TKDYD
  • 명령어 형식
    access-list 번호 {permit | deny} 프로토콜 출발지주소 와일드카드마스크 [연산자 포트번호] 목적지주소 와일드카드마스크 [연산자 포트번호]
    • 172.16.4.0/24 에서 출발해서 172.16.3.0/24로 가는 TCP 21번 포트를 사용하는 FTP-control 패킷을 차단
      access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21
      access-list 102 permit ip any any
  • ACL을 적용할 때는 출발지 근처에서 설정하는 것을 권장
    • 불필요하게 트래픽이 이동하는 것을 줄이기 위해서
  • 특정 네트워크 대역을 거부하고자 할 때는 마지막에 permit ip any any 를 추가해주어야 합니다.
  • Extended ACL을 적용하는 경우는 라우터 뒤에 여러 종류의 서버가 존재하는 경우
  • 172.16.4.0/24 에서 출발해서 172.16.3.0/24로 가는 TCP Telnet 포트(23번) 패킷을 차단

    access-list 102 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 23
    access-list 102 permit ip any any
  • 172.16.4.0/24 에서 나가는 모든 Telnet을 차단

    access-list 102 deny tcp 172.16.4.0 0.0.0.255 any eq 23
    access-list 102 permit ip any any

4) Named ACL

  • CISCO 장비에서는 이름을 이용한 ACL 작성을 지원
  • 번호를 이용한 ACL은 줄 단위 수정이 안되서 수정을 하는 경우 ACL을 삭제하고 다시 작성해야 합니다.
  • Standard Named ACL
    ip access-list standard 이름
    구분번호 {deny | permit} {출발지주소 와일드카드마스크 | any}
    ip access-group 이름 {in | out}
  • named ACL을 사용하는 이유
    • 번호보다는 이름이 기억하기가 쉽다.
    • ACL은 작성한 순서대로 적용이 되고 작성을 하면 마지막에 deny any가 추가된다.
    • 번호를 이용한 ACL은 한번 작성을 하고 수정을 할 때, 맨 뒤에 추가만 된다.
    • 번호를 이용한 ACL은 수정이 안됩니다.
  • named ACL을 이용해서 R2 라우터의 fa0/1에 192.168.0.0/24 에서 들어오는 트래픽 차단
    configure terminal
    ip access-list standard issuemaker
    15 deny 192.168.0.0 0.0.0.255
    20 permit any
    interface fa0/1
    ip access-group issuemaker in

  • 확인

    • R1 라우터에서 192.168.10.1 에 ping을 전송

      • source IP를 192.168.0.1 로 전송, 이 경우는 deny라서 전송되지 않음 (UUUUU)

      • source IP를 192.168.30.254 로 전송, 이 경우는 permit 이라서 전송 가능

0개의 댓글