본문 바로가기

전공 공부/네트워크 해킹과 보안 : 정보보안 개론과 실습

ch13 - 사용자 네트워크 보안 [ACL, VLAN, NAC] / 13장 연습문제

728x90

 

01 ACL

 - ACL(ACess Control List)

  : 접근 제어 목록을 나타내며 네트워크상에 전달되는 패킷을 필터링하여 네트워크 트래픽을 제한하고 특정 사용자나 네트워크 서비스를 제한한다.

[광범위하게 운영체제에서 객체에 대한 접근 제어를 담당하는 테이블]

 

 

 - 패킷에 대한 허용, 거절 정책으로 라우터나 L3 스위치를 통과하는 트래픽을 필터링하여 특정 인터페이스의 패킷을 허용하거나 거절해서 방화벽의 룰셋과 비슷한 역할을 한다.

 

 - 사용자 네트워크에서 NetBIOS를 이용한 폴더 공유와 같은 서비스를 이용하지 못하게 차단하거나 특정 웜의 확산을 막기 위해 특정 IP 대역이나 포트 번호를 차단하기 위해 사용한다.

방화벽보다 좋은 점 : 적용되는 규칙이 단순하여 높은 대역폭에서도 효과적으로 작동한다.

단점 : 방화벽에 비해 기능이 제한적이다.

 

#ACL의 종류

숫자로 구분하는 Numbered - [standard 1~99 / Extended 100~199] / 사용자가 임의의 이름을 부여하는 Named

 

  • Standard ACL

 : 기본적인 접근 제어로 IP 패킷의 출발지 주소(Source Address)만 검사하여 제어하고 Extended ACL은 IP 패킷의 출발지와 목적지 주소, 프로토콜을 검사하여 제어한다.(TCP/IP만 제어)

 

 - 구조

access-list <list-number> {permit|deny} source mask

R1 #access-list 1 deny 192.168.1.0 0.0.0.255 //192.~1./24 네트워크에 대한 접근을 차단하라

R1 #access-list 2 permit any //모든 네트워크에 대한 접근을 허락

 -> 위의 ACL은 네트워크 장비의 포트에 할당되어 인바운드(Inbound)와 아웃바운드를 설정한다.

 

R1#interface serial 0/0 //인터페이스 생성

R1#ip access-group 1 in //1번을 인바운드 적용

R1#ip access-group 2 out //2번을 아웃바운드로 적용

 

  • Extended ACL

IP, TCP, UDP, ICMP 등의 상세 프로토콜 선택해서 설정 가능

 

access-list <list-number> {permit|deny} <protocol> source [source_mask] destination [destination_mask] [operator port]

 -> 작성 예로 R1 : 192.168.1.0/24 네트워크에 대한 접근을 차단하라.

                  R2 : 192.168.1.0/24 네트워크에서 172.6.1.0/24 네트워크로 TCP를 허용하라

 

#ACL 적용 규칙

  • 입력 순서대로 수행 : ACL은 입력한 순서대로 수행된다. ACL 허용의 경우, 좁은 범위의 설정을 먼저 작성하고 넓은 범위를 순서대로 작성해야 한다.
  • 마지막에 deny any 생략 : 마지막에 permit any가 없고 ACL 조건이 없는 모든 경우는 deny가 된다.
  • 중간에 수정 불가 : Numbered ACL은 순서대로 입력되므로 중간에 삽입하거나 삭제하기가 불가능하다.

02 VALN

 : 라우터가 전통적으로 제공하던 네트워크 분할 기능을 제공하고 네트워크에서 하나의 스위치에 연결된 2 계층 네트워크를 VLAN으로 분할하면 여러 개로 구별되는 브로드캐스트 도메인을 만들 수 있다.

 - VLAN을 이용할 경우, 네트워크 관리자는 네트워크를 작은 네트워크로 임의로 나눈 뒤 나누어진 것에 ARP Request, NetBIOS Name Query와 같은 브로드캐스트 패킷을 제한하는 기능을 갖게 한다.

 

 #스위치의 VLAN 통신

  • 1단계

 - 클라이언트가 특정 VLAN에 할당되어 있을 때, 클라이언트는 자신이 속한 VLAN을 인식하지 못한 채 일반적인 통신을 할 때와 똑같이 통신을 위한 프레임을 스위치에 전달한다.

 

  • 2단계

프레임을 전달받은 스위치는 클라이언트가 속한 VLAN을 표시하기 위해 전송받은 프레임에 VLAN 정보를 붙인다.

 

  • 3단계

프레임을 스위치 밖으로 보내기 전에 프레임의 VLAN 정보와 스위치 포트의 VLAN 정보를 비교한다. 두 정보가 같으면 프레임에 붙어 있는 VLAN 정보를 떼고 프레임만 전송한다.

 

  • 4단계

다른 VLAN으로 프레임을 보낸 경우, 해당 포트의 VLAN과 프레임에 추가된 VLAN이 다르므로 프레임을 차단한다.

 

 #스위치 간의 VLAN 통신

두 개 이상의 스위치에서 VLAN 간의 통신을 하기 위해서는 여러 개의 VLAN 프레임을 전송할 수 있는 트렁크 포트(Trunk)를 이용

트렁크 포트는 VLAN 종류에 관계없이 프레임을 전송하고 VLAN 정보도 떼어내지 않고 트렁크 포트로 전송된 프레임을 다시 각각의 VLAN으로 전송할 때 정보를 떼어낸다.

 

03 NAC

Network Access Control : 네트워크 접근 통제 시스템이라는 뜻으로 IP가 무질서하게 사용되는 것을 막아 가용 IP를 쉽게 확인하고, IP 충돌 문제를 막아주는 것으로 IP를 지정해서 사용하는 기능은 보안 사고가 발생했을 때 공격자를 추적하는데 도움된다.

 

 #NAC의 기능

 - NAC 사용자 인증 절차

 1) 네트워크 접근 요청 : PC 사용자는 최초 네트워크에 대한 접근을 시도한다.

 2) 사용자 및 PC 인증 : NAC에 등록된 MAC 주소를 통해 사용자 PC를 인증하거나, SSO와 연계하여 네트워크에 접근하    려는 사용자의 아이디와 패스워드를 추가로 요청하여 인증을 수행한다. 인증 과정에서 백신이나 보안 패치의 적절성      여부를 검토한다.

 3) 네트워크 접근 허용 : 인증이 완료되면 네트워크 접근을 허용한다.

 4) 네트워크 접근 거부 : 보안 정책이 제대로 준수되지 않거나 바이러스에 감염된 경우에는 네트워크 접근이 거부되고,    네트워크에서 격리된다. 격리된 PC는 필요한 정책 적용이나 치료 과정을 거쳐 다시 점검한다.

 

 #다양한 NAC 방식

- 접근 제어 방식

  • In-Line 방식

 : 방화벽과 같이 물리적으로 접근을 차단하는 것이다. 게이트웨이 형태로 일부 물리적 네트워크에 NAC를 추가하는 것으로 기존 네트워크의 변경을 최소화하여 적용할 수 있다.

 

  • 802.1x 방식

: 무선랜의 802.1x와 비슷하며 이 방식으로 NAC를 구현하려면 RADIUS 서버와 802.1x를 지원하는 스위치가 필요하다.

RADIUS 서버 : 네트워크 접근을 통제하는 중심 역할을 하고 네트워크 스위치와 함께 작동하여 NAC 역할을 수행한다.

 

 - 이 경우 실질적인 접근의 허용 및 차단은 스위치에서 수행하고 신규 클라이언트에 대한 인증 요청은 실제 인증을 수행하는 RADIUS 서버로 전달하고 서버에서 스위치로 반환되는 결과에 따라 스위치는 네트워크에 대한 클라이언트 접근을 허용하거나 거부한다.

802.x1는 스위치 포트를 차단하여 우회 가능성을 거의 없앤, 매우 효과적인 네트워크 차단 방식이지만 구축이 어렵고 스위치가 모두 802.1x를 지원해야 하는 제한이 있다.

 

  • VLAN 방식

 : 신규 클라이언트가 접근할 때, 인가받지 않은 사용자라면 VLAN으로 미리 분리된 망 중에서 통신이 되지 않는 VLAN 망에 신규 클라이언트를 할당한다. 그리고 인가받은 사용자라면 통신이 가능한 VLAN 망에 할당해준다.

그러면 접근하는 클라이언트에 문제가 있어도 접근이 차단된 클라이언트만 모인 망에서 문제를 일으켜 다른 클라이언트를 보호할 수 있다.(문제인 클라이언트들을 격리)

 -> 격리되어 보안이 좋고 우회하기도 어렵지만, 관리하는 모든 네트워크 장비가 VLAN을 지원해야 하는 단점이 있다.

 

  • ARP 방식

: 차단하려는 단말에게 ARP 스푸핑 패킷을 보내 네트워크의 정상적인 접근을 막는 것.

 

새로운 PC가 내부망에 접속하려고 게이트웨이의 MAC 주소를 알기 위한 ARP 요청을 보내면 NAC는 그것을 감지하여 해당 게이트웨이의 MAC 주소가 자기 자신(단말)이라는 응답을 하게 된다.

단말은 게이트웨이의 주소를 자기 자신으로 알기 때문에 패킷이 나가지 못하고 고립된다.(DoS-Land 공격과 유사)

DoS-LAND 공격 : 출발지와 목적지의 ip 주소를 동일하게 해서 패킷을 보내는 방식으로 / NAC에서는 출발지와 목적지의 mac주소를 동일하게 해서 보낸 방식이다.

ex) 새로운 클라이언트 IP가 ~0.100 / MAC 주소가 AA:BB:CC 인 경우, 게이트웨이 192.168.0.1의 MAC 주소를 확인하려고 ARP Request를 보내는 경우,

새로운 클라이언트가 적법한 경우 = NAC는 192.168.0.1의 정상적인 MAC 주소를 알려주고,

새로운 클라이언트가 적법하지 않은 경우 = 클라이언트의 MAC 주소인 AA:BB:CC를 192.168.0.1의 주소라고 알려줘 접근을 막는다.

 

 - ARP를 이용하면 NAC를 구현하는 방식은 모든 스위치에서 ARP를 사용할 수 있어서 다른 방식과 다르게 장비의 제약을 받지 않고 단순한 구조라 빠르게 적용할 수 있다.

하지만 ARP의 특성상 네트워크당 하나의 에이전트가 필요하고, 클라이언트가 게이트웨이의 MAC 주소를 이미 알고 있거나 정적으로 설정하면 효과가 없는 단점이 있다.

 

  • 소프트웨어 에이전트 설치 방식

 : 네트워크에 접속하려는 모든 클라이언트에 에이전트를 설치하는 방식으로 서버에서 차단 정책을 설정하여 설치된 에이전트를 통해 네트워크를 차단한다.

장점 : 클라이언트에 설치된 에이전트는 네트워크 제어뿐만 아니라, 네트워크 접속 후에도 지속적인 관리 및 통제가 가능하며 다른 네트워크 방식보다 격리 수준이 높다.

단점 : 소프트웨어 에이전트를 반드시 설치해야 가능하고 에이전트를 보호할 수 있는 방법도 필요하다.

 

[실습]

 

연습문제

 

ACL VS NAC

https://www.reddit.com/r/CompTIA/comments/9gd0ix/nac_vs_acl/

 

NAC vs ACL

I can’t seem to understand the difference between the two. Don’t they both use pre defined policies to allow or deny access to a network? I know...

www.reddit.com

ACL은 2계층