2024. 3. 17. 17:11ㆍNetwork
네트워크에선 접근통제를 할 수 있는데 세가지로 나뉜다.
강제적 접근통제 : MAC (Mandatory Access Control)
임의적 접근통제 : DAC (Discretionary Access Control)
비 임의적 접근통제 : Non-DAC (RBAC, Role Based Access Control)
우리가 실습할 ACL은 DAC에 속한다.
ACL은
출발지, 목적지 IP주소,
4계층의 포트 번호를 특정하고
위와 같은 라우터를 통과하는 패킷의 특성을 기반하여
트래픽을 식별하고 라우터는 ACL을 토대로 조치를 취하게 된다.
ACL은 L3 장비에 설정할 수 있는데
라우터에 ACL을 설정하는 순간 3,4 계층 방화벽 역할을 하게 되는 것이다.
그리고 ACL 안에서도 세가지로 나뉘게 되는데
1. Standard (1~99)
-. 표준 ACL
-. 출발지 IP 주소만 지정
-. 프로토콜 구분 없이 모두 접근통제
2. Extended (100~199)
-. 확장 ACL
-. 출발지 , 목적지 IP , 프로토콜, 포트등 여러가지를 지정해 접근통제
2. Named
-. 번호가 아닌 이름으로 지정된 ACL
ACL이 적용되지 않은 라우터는 모든 트래픽을 허용한다.
최근에는 보안용도 뿐만 아니라 트래픽 식별이 필요한 다른 소프트웨어의 정책에서도 활용된다.
(ex. 더 나은 QoS 서비스 제공, NAT의 내부 주소 지정 등)
ACL은 ACE로 구성된다.
ACL (Access Control List)
ACE (Access Control Entry)
아래와 같이 사용된다.
Router(config)#access-list 99 permit 10.10.30.0 0.0.0.255
표준 ACL
Router(config)#access-list 100 deny tcp 10.10.30.0 0.0.0.255 gt 49151 10.0.20.1 0.0.0.0 eq 23
확장형 ACL
표준형 ACL은 출발지만 참조해 모두 차단한다.
확장형 ACL의 경우를 조금 더 알아보자
Router# access-list 100 deny tcp 10.10.30.0 0.0.0.255 gt 49151 10.0.20.1 0.0.0.0 eq 23
위의 확장형 ACL 명령어를 뜯어보자
100 : ACL 번호
deny : 차단, 허용 여부 (deny, permit)
tcp : 프로토콜의 종류 (udp, tcp, ospf.. 등)
10.10.30.0 0.0.0.255 : Source IP 주소 (출발지 정보)와 wildcard mask
gt : 비교 표현식 등 (lt 이하 , eq 같은, gt 이상..등)
49151 : 출발지 포트 번호 (앞의 비교 표현식에 적용)
10.0.20.1 0.0.0.0 :Destination IP 주소 (목적지 정보) 와 wildcard mask
eq : 비교 표현식
23 : 목적지 포트 번호
표준형 ACL(1~99)은 IP 주소가 0.0.0.0 와일드 카드 마스크를 가질때
기본이라 생략이 가능하다.
확장형 ACL (100~199)은 기본 와일드 카드 마스크가 없다.
Named ACL 사용법
Router(config)#ip access-list standard Doghj
Router(config-std-nacl)#deny 10.10.10.10 0.0.0.0
Router(config-std-nacl)#permit 10.10.10.0 0.0.0.255
Router(config-std-nacl)#deny any
표준형 이름지정 ACL
Router(config)#ip access-list extended Doghj1
Router(config-ext-nacl)#deny ip 10.10.10.0 0.0.0.255 10.10.30.10 0.0.0.0
확장형 이름지정 ACL
위처럼 ACL의 이름을 먼저 지정한 뒤 제어목록을 설정한다.
위 명령어에서 프로토콜의 종류가 IP로 되있는 것을 볼 수 있을 것이다.
TCP, UDP를 사용하면 해당 프로토콜을 제어하고
IP를 사용하면 해당 주소의 모든 프로토콜을 제어하게 된다
또한 IP주소란에 any나 host를 입력하면
any : 모든 호스트
host : 단일 호스트 (이후 IP 주소 입력)
범위, 단일로 지정할 수 있다.
Router#show access-lists
Standard IP access list Doghj
10 deny host 10.10.10.10
20 permit 10.10.10.0 0.0.0.255
Extended IP access list Doghj1
10 deny ip 10.10.10.0 0.0.0.255 host 10.10.30.10
위의 명령어로 ACL 리스트들을 확인할 수 있다!
또한 Named ACL은 위와 같이 넘버링 되어서 입력되어 있는 것을 볼 수 있다.
입력시 10씩 증가하여 자동으로 입력되는데
이를 이용하여 11,12 등의 번호를 부여하여 규칙 사이에 새규칙을 추가할 수 있다.
Router(config)#ip access-list standard Doghj
Router(config-std-nacl)#15 deny 10.10.11.11 0.0.0.255
Router(config-std-nacl)#do show access-lists
Standard IP access list Doghj
10 deny host 10.10.10.10
15 deny 10.10.11.0 0.0.0.255 <<<<<<<추가된 ACE
20 permit 10.10.10.0 0.0.0.255
Extended IP access list Doghj1
10 deny ip 10.10.10.0 0.0.0.255 host 10.10.30.10
하지만 ACL의 허용 규칙을 적용하는데 반드시 기억해야할 두가지가 있다.
암묵적 deny any 와 ACL의 적용순서다.
잊어버렸다간 설계대로 차단, 허용이 이뤄지지 않는다.
ACL의 적용순서
ACL 1 deny host 10.10.10.10
ACL 1 permit 10.10.10.0 0.0.0.255
ACL 2 permit 10.10.10.0 0.0.0.255
ACL 2 deny 10.10.10.10
예시로 위의 ACL은 어떻게 적용될까?
ACL 1은
10.10.10.10을 제외한 10.10.10.0 /24 서브넷의 접근이 허용된다.
ACL 2는
모든 10.10.10.0 /24 서브넷의 접근이 허용된다.
위처럼 순서가 바뀌면 완전히 다른 내용의 ACL이 적용되기에 주의가 필요하다.
즉,
★ACL은 위에서 아래로 읽는 것이다!
이해가 잘 안될 수도 있다.
간단하게 비유하자면,, 3차원의 블럭으로 생각해보자!
먼저 ACL1이다.
deny가 첫번째로 입력되고
permit 문구가 두번째로 입력되었다.
이 블럭을 회전시켜 위에서 바라보자
10.10.10.0/24 서브넷에서 10.10.10.10 호스트만 제외된 것을 볼 수 있다!!
다음으로 ACL2 이다.
permit 문구가 첫번째
deny 문구가 두번째로 입력되었다.
다시 회전시켜 확인하자!
첫번째 permit에 가려져 deny 문구가 보이질 않는다!!
즉 세세한 사항일 수록 먼저 입력되고 포괄적인 부분일수록 나중에 입력되는 것이 좋다..
이해가 잘 안되는 부분이라면 이처럼 블럭단위로 생각해보자!
암묵적 deny any
Router(config)#access-list 1 permit 10.10.10.0 0.0.0.255
라우터에 해당 허용 ACE를 입력하면 어떻게 될까??
10.10.10.0 /24 의 서브넷을 제외한 모든 트래픽이 차단된다.
말그대로 암묵적 deny any가 ACL 최하단에 깔려있다고 생각하면 된다.
그것을 원치않는다면 permit any나 특정 서브넷을 허용하는 포괄적인 규칙을 추가해주어야 한다!!
마지막으로
ACL을 인터페이스에 적용시켜보자
Router(config)#int f0/1
Router(config-if)#ip access-group doghj in
특정 인터페이스에 in , out 명령어로
패킷의 인바운드, 아웃바운드를 제어할 수 있게 된다!!
위처럼 특정 인터페이스에 적용된 ACL은 라우터 자체에서 발생하는 트래픽에는 적용되지않는다!
Router(config-if)#line vty 0 15
Router(config-line)#access-class doghj in
또한 라우터로 접근하는 원격 접속도 ACL로 제어할 수 있다!
'Network' 카테고리의 다른 글
Network 14. OSPF 심화 (0) | 2024.03.19 |
---|---|
Network 13. Routing protocol (0) | 2024.03.18 |
Network 11. Etherchannel (0) | 2024.03.14 |
Network 10. Spanning-Tree Protocol (0) | 2024.02.25 |
Network 9. NAT, PAT (0) | 2024.02.13 |