네트워크 접근제어 구현 및 테스트
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