채이_E 2023. 11. 21. 10:57

Router ACL

ACL (Access Control List)

- Router 내부 정책을 통해 데이터를 Filtering 해주는 역할

- 정책에 따른 트래픽 필터링, 식별, 분류, 암호화, 변환 작업 등을 수행함

- ACL 정책은 항상 위에서 아래로 순차적으로 적용됨

ACL 기본 동작

- 순차적인 동작

- Permit -> 허용, 사용됨

- Deny -> 거부, 사용되지 않음

- 모든 조건에 해당되지 않으면 ALL Deny

ACL 종류

- Numbered 형 ACL

        > 숫자를 식별 값으로 사용하는 ACL

        > 주로 특정 기능 수행을 위한 트래픽 분류를 목적으로 사용됨

- Named 형 ACL

        > 문자를 식별 값으로 사용하는 ACL

        > 방화벽의 보안정책 구성 및 복잡한 정책 구성을 할 때 사용됨

종류 Numbered형 식별 값 필수 조건 옵션
Standard 1 ~ 99 Source IP X
Extended 100 ~ 199 Protocol, Source IP, Destination ID Port 주소, Protocol 조건에 따라 다름

ACL 적용 위치

- 정책에 맞춰 구성된 조건과 실 트래픽을 필터링 할 지점 설정

- 종류 -> inbound, outbound

- Inbound

        > 인터페이스로 데이터가 유입됐을 때 정책 확인 후 전송

        > ACL 확인 -> Routing Table 확인(Routing)

- Outbound(default)

        > 인터페이스로 데이터가 전달되기 직전에 정책 확인 후 전송

        > Routing Table 확인(Routing) -> ACL 확인

ACL 설정 확인

//설정한 ACL의 조건 및 조건에 매치된 트래픽 정보 확인
R1#show ip access-lists [number/string] (=show access-list)
//ACL이 적용된 인터페이스 정보 확인
R1#show ip interface fasteEthernet 0/0

 

Router ACL - Numbered 형

Numbered형 ACL 설정

- Access-list 정책 설정

R1(config)#access-list <acl number> <action -> permit/deny> <조건>

 

        > Standard형 조건 : [Source IP] [Wildcard Mask]

        > Extended형 조건 : [Protocol] [Source IP] [Wildcard Mask] [옵션]

 

- ACL 적용

R1(config)#interface <적용할 interface>
R1(config-if)#ip access-group <acl number> <in/out>

Standard ACL

- ACL Number 1 ~ 99, 1300 ~ 1999 사용

- 특정 키워드를 이용해 범위 지정 가능

        > 모든 IP(0.0.0.0 255.255.255.255) = any

        > 특정 IP 하나(10.10.10.1 0.0.0.0) = host 10.10.10.1

Router(config)#access-list <acl number> <permit / deny> <source IP> [wildcard mask]
R1(config)#access-list 1 permit 10.10.10.1
R1(config)#int fa 1/0
R1(config-if)#ip access-group 1 in

Extended ACL

- ACL Number 100 ~ 199, 2000 ~ 2699 사용

- 필수 조건 -> Protocol(IP 헤더의 Protocol 필드와 비교할 값), Source IP, Destination IP

Router(config)#access-list <acl number> <permit / deny> <protocol> <source IP>
[wildcard mask] [source port] <destination IP> [wildcard mask] [destination port] [option]
R1(config)#access-list 100 permit tcp host 10.10.10.1 any eq 80
R1(config)#int fa 1/0
R1(config-if)#ip access-group 100 in

ACL 예제

- 10.10.10.1 PC에서 172.16.10.0/24 대역으로 통신 거부 설정

R1(config)#access-list 10 deny 10.10.10.1
R1(config)#int fa 0/0
R1(config-if)#ip access-group 10 out

 

- 다른 PC들은 172.16.10.0/24 대역으로 통신 허용 설정(Access-list 10번에 정책 추가)

Router(config)#access-list 10 permit any

 

- 10.10.10.2 PC에서만 외부 통신 못하도록 설정

Router(config)#access-list 11 deny 10.10.10.2
Router(config)#access-list 11 permit any
Router(config)#int fa 0/1
Router(config-if)#ip access-group 11 out

 

- 10.10.10.1 PC에서만 172.16.10.20 서버로 ping 통신 거부

R1(config)#access-list 100 deny icmp host 10.10.10.1 host 172.16.10.20
R1(config)#access-list 100 permit ip any any
R1(config)#int fa 0/0
R1(config-if)#ip access-group 100 out

 

- 10.10.10.2 PC에서 모든 Web (80번 포트) 통신 차단

R1(config)#access-list 101 deny tcp host 10.10.10.2 any eq 80
R1(config)#access-list 101 permit ip any any
R1(config)#int fa 1/0
R1(config-if)#ip access-group 101 in

 

Router ACL - Named 형

Named형 ACL 설정

- Access-list 정책 생성

R1(config)#ip access-list [standard / extended] [string]
R1(config-[std / ext])#[action -> permit / deny] [조건]

 

        > Standard / Extended : 정책 종류 설정

        > String : 정책 이름 설정

        > Action : 정책의 허용 / 거부 여부를 지정

 

- ACL 적용

R1(config)#int [적용할 interface]
R1(config-if)#ip access-group [acl number] [in / out]

Standard ACL

Router(config)#ip access-list standard <name>
Router(config-std)#[no] [sequence number] <permit / deny> <source IP> [wildcard mask]
R1(config)#access-list standard TEST
R1(config-std)#permit 10.10.10.1
R1(config)#int fa 1/0
R1(config-if)#ip access-group TEST in

Extended ACL

Router(config)#ip access-list extended <name>
Router(config)#[no] [sequence number] <permit / deny> <protocol> <source IP> [wildcard mask]
[source port] <destination IP> [wildcard mask] [destination port] [option]
R1(config)#ip access-list extended TEST2
R1(config-std)#permit icmp host 10.10.10.2 host 172.16.10.20
R1(config-std)#permit tcp host 10.10.10.1 host 172.16.10.20 eq 80
R1(config)#int fa 0/0
R1(config-if)#ip access-group TEST2 out

간접(원격) 접근 접속 제어

- 허용되지 않은 사용자의 접근을 제어함

Router(config)#access-list [1~99, 1300~1999] [permit] host [관리자 시스템 IP]
Router(config)#line vty 0 4
Router(config-line)#access-class [number] [in / out]
R1(config)#access-list 20 permit host 10.10.10.1
R1(config)#line vty 0 4
R1(config-line)#access-class 20 in