티스토리 뷰
ACL(Access Control List)은 네트워크 보안의 핵심 구성요소로 네트워크 장비에서 데이터 패킷의 흐름을 제어하는 데 사용되는 일련의 지침입니다. 이 규칙들은 특정 조건에 따라 네트워크 트래픽을 허용하거나 차단합니다.
특정 자원에 대한 사용자나 시스템 프로세스의 권한을 정의하는 규칙 또는 집합입니다. 네트워크 장비에서는 패킷 필터링 및 분류에 사용되며, 파일 시스템에서는 특정 사용자나 그룹에 대한 파일 또는 디렉토리 액세스 권한을 설정하는 데 사용됩니다.

ACL 개요
네트워크 관리자는 네트워크에 대한 적절한 접근을 허락하면서도 원하지 않는 접근을 거부해야 합니다. 패스워드, 콜백 장치 그리고 물리적인 보안장비들 같은 보안 도구들이 도움을 줄 수 있지만, 관리자들이 선호하는 특정 제어와 기본적인 트래픽 필터링 간의 유연성이 부족합니다. 예를 들면, 네트워크 관리자는 사용자들이 인터넷에 접근하는 것은 원하지만 외부 사용자들이 텔넷을 사용하여 LAN에 접근하는 것은 원하지 않을 수도 있습니다.
라우터들은 ACL(Access Control List)를 가지고 인터넷 트래픽을 거부하는 것과 같은 기본적인 트래픽 필터링 기능을 제공합니다. ACL은 주소나 상위 계층 프로토콜에 적용하는 연속적인 허락 또는 거부 문장의 집합입니다.
ACL을 정확히 설정하고 네트워크 내의 어디에 배치를 하는지 아는 것은 중요합니다. ACL 은 네트워크에 여러 가지 목적을 처리합니다. 일반적인 ACL 기능들은 다음과 같습니다.
- 내부적인 패킷 필터링
- 부적절한 인터넷 접근으로부터의 내부 네트워크 보호
- 가상 터미널 포트들에 대한 접근 제한
ACL은 라우터의 인터페이스에 적용하는 명령들의 리스트인데, 이 리스트들은 라우터가 어떤 종류의 패킷들을 허락하고 거부하는지를 알려줍니다. 발신지 주소, 목적지 주소 그리고 TCP/UDP 포트 번호 같은 사항들을 기반으로 허락과 거부를 할 수 있습니다.
ACL은 트래픽을 관리할 수 있으며 라우터 인터페이스에 ACL을 적용함으로써 특정 패킷 을 필터링할 수 있습니다. 그 인터페이스를 통과하는 임의의 트래픽은 ACL의 특정 조건들에 의하여 검사됩니다.
IP(Internet Protocol)와 IPX(Internetwork Packet Exchange) 같은 모든 라우티드 프로토콜들은 라우터를 통과하는 패킷을 필터링하기 위하여 ACL을 생성할 수 있습니다. 네트워크 또는 서브넷에 대한 접근을 제어하기 위하여 라우터에 ACL을 설정할 수 있습니다.
ACL은 프로토콜을 기반으로 정의되어야 합니다. 다시 말해서, 인터페이스 내의 프로토콜에 대하여 트래픽을 제어하고 싶다면 인터페이스에 설정된 모든 프로토콜에 대하여 ACL을 정의해야 합니다. 예를 들어 라우터 인터페이스에 IP, 애플토크, IPX가 설정되었다면 적어도 세 개의 ACL을 정의해야 합니다. ACL은 라우터 인터페이스의 내부 또는 외부에서 전송되는 패킷들을 필터링하기 위한 유연성을 추가함으로써 네트워크를 제어할 수 있는 도구로 사용될 수 있습니다. 이것은 각 프로토콜의 ACL에 대한 번호 범위나 계획을 수립함으로써 사용할 수 있습니다.

ACL을 생성하는 이유
네트워크 트래픽을 제한하고 네트워크 성능을 증진시킵니다. 예를 들어, ACL은 프로토콜을 기반으로 하여, 특정 패킷을 다른 트래픽보다 라우터가 먼저 처리하도록 설정할 수 있는데 이것을 큐잉(queuing)이라 합니다. 큐잉은 라우터가 필요 없는 패킷을 처리하지 않도록 하고 그 결과, 큐잉은 네트워크 트래픽을 제한하고 네트워크 혼잡을 감소시킵니다.
트래픽 흐름을 제어합니다. ACL은 라우팅 업데이트 목록을 제한하거나 감소시킬 수 있습니다. 이러한 제한은 특정한 네트워크의 정보들이 네트워크를 통하여 확산되는 것을 제한할 수 있습니다.
네트워크 접근에 대한 기본적인 보안 레벨을 제공합니다. ACL은 어떤 호스트가 네트워크의 일부분에 접근하는 것을 허용하며, 다른 호스트가 같은 지역에 접근하는 것은 막을 수 있습니다. 만약 라우터에 ACL을 설정하지 않는다면, 라우터를 통과한 모든 패킷은 네트워크의 모든 부분에 접근하는 것이 허용될 수 있습니다.
어떤 트래픽 유형이 라우터의 인터페이스에서 전송될 것인지 차단될 것인지를 결정합니다. 예를 들어, 전자우편 트래픽은 승인할 수 있지만 동시에 텔넷 트래픽은 차단할 수 있습니다.
ACL 생성시 문장 순서가 중요한 이유
ACL을 생성할 때는 문장의 순서가 중요합니다. ACL이 적용되는 라우터의 인터페이스에서 트래픽이 입출력될 때 ACL에 정의된 순서대로 패킷을 검사합니다. 즉 네트워크 관리자가 ACL에 삽입한 순서로 문장을 평가하는 것입니다.
예를 들어, 모든 트래픽을 허용하도록 조건 문장을 생성한다면, 차후 추가되는 어떠한 문장도 검사되지 않을 것입니다. 만약 추가 문장이 필요하거나 문장을 수정해야 하면, 그 ACL을 삭제하고 새로운 조건 문장을 다시 생성해야 합니다.
ACL 사용
각각의 라우터 인터페이스에 대하여 필터링하기를 원하는 프로토콜마다 ACL을 생성할 수 있습니다. 어떤 프로토콜에 대해서는, 들어오는 트래픽에 대하여 하나의 ACL을 생성하고, 나가는 트래픽에 대하여 하나의 ACL을 생성할 수 있습니다. 하나의 ACL 문장이 자신과 패킷이 일치하는지를 검사한 후, 패킷을 거부하거나 액세스 그룹 내의 인터페이스를 사용하도록 승인할 수 있습니다.

ACL 동작
ACL은 다음과 같이 동작하는 패킷들에 대하여 정의하는 문장들의 집합입니다.
- 인바운드(inbound) 인터페이스로 들어옴
- 라우터를 통한 릴레이
- 아웃바운드(outbound) 인터페이스에서 나감
통신 과정의 시작은 ACL의 사용 유무에 관계없이 동일합니다. 하나의 패킷이 인터페이스 안으로 들어가면, 라우터는 그 패킷을 라우팅할 것인지 브리징할 것인지를 검사합니다. 그 다음 라우터는 유입 인터페이스가 ACL을 가지고 있는지를 검사합니다. 만약 ACL이 존재하면 리스트의 조건에 따라 패킷을 검사합니다. 패킷이 허용되면 목적지 인터페이스를 결정하기 위하여 라우팅 테이블 엔트리에 따라서 검사할 것입니다. ACL은 라우터 자신이 생성한 패킷은 필터링하지 않고, 다른 곳에서 만들어진 패킷은 필터링합니다.

ACL 문장 예시
access-list 2 deny 172.16.1.1
access-list 2 permit 172.16.1.0 0.0.0.255
access-list 2 deny 172.16.1.1 0.0.255.255
access-list 2 permit 172.16.1.1 0.255.255.255
전역 설정 명령어 access-list의 표준 버전은 1에서 99까지 사이의 번호로 표준 ACL을 정의합니다.
첫 번째 ACL 문장에는 와일드카드 마스크가 없습니다. 와일드카드 마스크가 보이지 않는 경우는 기본 마스크인 0.0.0.0이 사용된 경우입니다. 이 문장은 IP 주소 172.16.1.1을 거부합니다.
두 번째 문장에서는 특정 호스트 172.16.1.0 또는 서브넷 172.16.1.0으로부터의 임의의 호스트를 허락합니다.
세 번째 문장에서는 172.16.0.0 네트워크로부터의 임의의 호스트를 거부하고, 네 번째 문 장은 172로 시작하는 임의의 네트워크로부터의 임의의 호스트를 허락합니다.
ip access-group 명령어는 존재하는 ACL을 인터페이스에 적용할 때 사용합니다. 그것은 원하는 인터페이스에 접근하여 인터페이스 설정 모드에서 입력해야 합니다. 명령어의 형식은 다음과 같습니다.
Router(config-if) ip access-group access-list number (in | out)
'잡동사니' 카테고리의 다른 글
| EAI, ESB 개념 및 비교 (1) | 2025.07.02 |
|---|---|
| OSI 참조 모델, OSI 7계층 (0) | 2025.06.18 |
| 네트워크 토폴로지(Network Topology) (0) | 2025.06.12 |
| 컴퓨터 개론의, 자료표현 중, [논리회로] (0) | 2020.06.11 |
| 카카오페이 혜택(금융분야) 정리 (0) | 2020.03.08 |
- Total
- Today
- Yesterday
