네트워크 보안

2024. 11. 29. 19:25Linux*security/Network

반응형

01 구축 프로세스, 시나리오

 

 

구축과정

  1. 장비 상태 점검
    • CPU, 메모리, 대역폭 등: 서비스 제공을 위한 서버와 네트워크 장비의 상태를 점검한다. CPU와 메모리 용량, 네트워크 대역폭 등이 적정 수준인지 확인하여 성능 저하나 병목 현상이 발생하지 않도록 한다.
  2. 문제 접수 및 조치
    • 체크리스트 점검 후 레이어별 확인: 서비스 런칭 후 발생할 수 있는 문제를 빠르게 식별하고 해결하기 위해 체크리스트를 활용하여 각 레이어(네트워크, 서버, 애플리케이션 등)를 점검한다. 문제 발생 시 신속한 대응을 위해 우선순위를 정하고, 문제를 해결한다.
  3. 모니터링
    • 지속적인 연결성과 레이턴시 확인: 서비스가 오픈된 후에는 연결성과 레이턴시를 지속적으로 모니터링하여, 서비스의 안정성 및 성능을 점검한다. 네트워크 지연이나 서버의 연결 문제를 빠르게 발견하고 조치할 수 있도록 한다.

서비스 런칭 및 실제 대내외 서비스 오픈

  • 대내 서비스: 내부 직원들이나 테스트 환경에서 서비스가 원활히 작동하는지 점검한 후, 실제 운영 환경으로의 전환을 준비한다.
  • 대외 서비스: 외부 고객을 대상으로 서비스를 오픈하며, 트래픽과 실제 사용 환경에서의 반응을 지속적으로 모니터링한다.

 

 

 

 

구축 과정: 서브네팅과 IP 할당

  1. 서브네팅 및 IP 할당
    • 네트워크를 효율적으로 관리하기 위해 서브넷을 나누고, 각 서브넷에 적절한 IP 주소를 할당하는 과정이다. 이 과정은 네트워크를 효율적으로 운영하고, 충돌을 방지하며 보안을 강화하는 데 중요한 역할을 한다.
  2. 서비스 또는 팀별 서브넷 구분
    • 네트워크 상에서 각 서비스나 팀별로 별도의 서브넷을 구분하여 관리한다. , 개발팀, 운영팀, 관리팀 등을 각각 다른 서브넷으로 분리하면 네트워크 보안과 성능을 향상시킬 수 있다. 이를 통해 각 팀이나 서비스가 독립적으로 통신할 수 있도록 한다.
  3. 공인 IP (WAN 구간 라우터 IP 할당, 서버, NAT 등)
    • 공인 IP 할당: 인터넷과 연결되는 WAN 구간의 라우터에 공인 IP를 할당한다. 이 공인 IP는 외부와의 직접적인 통신을 담당한다.
    • 서버에 IP 할당: 서비스 제공을 위한 서버에 공인 IP를 할당하여 외부 접근이 가능하도록 설정한다.
    • NAT (Network Address Translation): 내부 사설 IP를 공인 IP로 변환하여 외부와 통신할 수 있도록 하는 NAT를 설정한다. 이는 주로 보안을 강화하고, 공인 IP 수를 절약하는 데 사용된다.
  4. 사설 IP (L3 백본 기준으로 서비스 또는 팀별 구분 -> Zone & VLAN)
    • L3 백본 네트워크: L3 스위치를 기준으로 네트워크를 분리하여 각 서비스나 팀별로 사설 IP를 할당한다.
    • Zone 및 VLAN 설정: 각 서비스나 팀에 맞는 네트워크 구분을 위해 Zone과 VLAN (Virtual LAN)을 사용한다. VLAN을 통해 각 서브넷을 논리적으로 분리하고, 각 구역에 대한 접근 제어를 강화할 수 있다.
      • Zone: 보안, 트래픽, 또는 서비스에 따른 구역을 설정하여 서로 다른 구역 간의 통신을 제한한다.
      • VLAN: 가상 네트워크를 생성하여 물리적 장비에 의존하지 않고 네트워크를 분할하고, 각 VLAN 간의 트래픽을 논리적으로 구분하여 보안 및 성능을 관리한다

 

 

 

 

테스트 과정: 물리적 작업 완료 후 기본 통신 점검

  1. 네트워크 연결성 점검
    • 인접 장비 점검:
      • Ping: 네트워크 연결이 정상적으로 이루어지는지 확인하기 위해 인접 장비에 대해 ping 테스트를 실행한다. 이는 네트워크 경로가 열려 있는지, 패킷 손실이 없는지 확인하는 기본적인 방법이다.
      • Tracert (Traceroute): 네트워크 경로를 추적하여 패킷이 목적지까지 어떻게 이동하는지, 중간 경유지에서의 지연 시간을 확인한다. 이 방법은 라우팅 경로와 네트워크 지연 문제를 점검하는 데 유용하다.
  2. 라우팅 점검
    • Static Routing: 라우터에 수동으로 설정된 정적 라우팅이 올바르게 작동하는지 확인한다. 이 단계에서는 각 라우터가 정의된 경로를 통해 올바르게 패킷을 전달하는지 점검한다.
    • BGP (Border Gateway Protocol): BGP를 통한 동적 라우팅 설정이 제대로 이루어졌는지 확인한다. BGP는 대규모 네트워크에서 경로 정보 교환을 담당하므로, 올바르게 동작하는지 점검이 필요한다.
    • OSPF (Open Shortest Path First): OSPF 프로토콜을 사용하여 내부 라우팅이 잘 이루어지는지 점검한다. OSPF는 대형 네트워크에서 빠르고 효율적인 경로 선택을 위한 프로토콜이다.
  3. 서비스 점검
    • 개별 서비스 확인: 네트워크 연결성 및 라우팅이 정상적이라면, 각 서비스(웹 서버, 데이터베이스 서버, 애플리케이션 등)가 정상적으로 작동하는지 확인한다. 각 서비스의 포트와 프로토콜을 점검하여 클라이언트가 서버와 정상적으로 통신할 수 있는지 확인한다.
      • 예: HTTP 서비스가 제공되는 웹 서버에 대해 curl 또는 웹 브라우저를 사용하여 정상적으로 페이지를 로드하는지 확인한다.
      • 예: 데이터베이스 서버에 대해 SQL 클라이언트 도구를 이용하여 접속 가능 여부를 점검한다.

요약

  1. 네트워크 연결성: ping과 tracert를 사용하여 인접 장비와의 연결을 점검한다.
  2. 라우팅 점검: Static Routing, BGP, OSPF 등의 라우팅 프로토콜이 정상 작동하는지 확인한다.
  3. 서비스 점검: 각 서비스가 정상적으로 동작하는지 확인한다.

 

 

 

 

 

요구사항 수립

  1. 서비스 확인
    • 웹 서비스:
      • 트래픽 예상: 외부 접속 시 웹 서비스는 약 1Gbps의 트래픽을 예상. 이를 수용할 수 있는 대역폭을 확보하고, 웹 서버와 관련된 인프라를 준비한다.
    • ERP 시스템:
      • 내부 백플레인 트래픽 예상: ERP 시스템의 내부 네트워크에서의 트래픽은 약 100Gbps가 예상된다. 내부 서버 간의 빠르고 안정적인 데이터 전송을 위한 고속 네트워크 환경이 필요하다.
      • 외부 원격 근무 인원: 원격 근무 인원은 약 100Mbps의 트래픽을 사용할 것으로 예상된다. 이를 위한 VPN 및 원격 접속 인프라를 준비한다.
  2. 공인 IP 할당
    • 웹 서버: 외부에서 웹 서비스에 접근하기 위해 공인 IP를 1개 할당한다.
    • 내부 NAT용: 내부 서버가 외부와 연결할 수 있도록 NAT용 공인 IP를 1개 할당한다.
    • 개발 서버: 개발 서버에는 공인 IP를 1개 할당하여 외부와의 통신을 원활하게 한다.
  3. 전용선 구입
    • 확장성 고려: 전용선의 대역폭은 2Gbps로 구입하여, 향후 네트워크 확장에 대비할 수 있도록 한다.
    • 공인 IP C 클래스: 공인 IP C 클래스 대역에서 32개를 할당받아, 서버 및 장치에 IP를 효율적으로 배정한다.
  4. 장비 구입
    • 회선용 라우터: 외부와의 연결을 담당할 회선용 라우터를 1대 구입한다. 이 라우터는 전용선 및 외부 인터넷과의 연결을 관리한다.
    • 백본용 L3 스위치: L3 스위치 1대를 구입하여 내부 네트워크의 라우팅과 트래픽 분배를 담당한다. 대규모 네트워크의 효율적인 운영을 위해 중요한 장비이다.
    • 서버존 L2 스위치: 서버와 연결할 L2 스위치 1대를 구입하여 서버 간 통신을 지원한다. 이 스위치는 주로 데이터 링크 계층에서 작동하며, 빠른 데이터 전송을 돕는다.
    • VLAN 기능을 지원하는 내부 L2 스위치 (48포트): 내부 네트워크의 가상 LAN(VLAN)을 구현하고, 여러 포트를 통해 서버 및 다른 장치들을 연결할 수 있는 L2 스위치 (48포트)를 구입한다. 이는 네트워크의 효율성과 보안을 향상시키는 데 중요하다.

 

스펙 확인

  1. 전용선 속도 확인
    • 테스트용 PC 연결: 전용선의 회선 스위치에 테스트용 PC를 연결하여 속도를 확인
    • 속도 확인 웹사이트: http://www.benchbee.co.kr에서 속도를 측정

 

 

구성도 작성

1. 전체 네트워크 구성

          +------------------+
          |   외부 (EXT)     |  <--- 인터넷 연결
          +------------------+
                   |
               [Router] 
                   |
          +------------------+
          |   L3 스위치     |  <--- 라우팅 및 VLAN 분배
          +------------------+
                   |
          +--------------------+
          |     DMZ 영역      |  <--- 웹서버 및 외부 연결
          +--------------------+
                   |
          +------------------+
          |    웹 서버 1대   |  <--- 외부 접속을 위한 웹 서비스
          +------------------+
                   |
          +------------------+
          |   Backbone L3 SW |  <--- 백본 네트워크, 대규모 트래픽 처리
          +------------------+
                   |
         +-----------------+------------------+
         |                                   |
    +------------+                      +-------------+
    |  내부 L2 SW|                      |  내부 L2 SW  |  <--- 각 VLAN별 내부 네트워크 연결
    +------------+                      +-------------+
          |                                   |
+-----------------+        +-----------------+    +-------------------+    +------------------+
|    VLAN100     |        |     VLAN200     |    |    VLAN210         |    |    VLAN220       | 
|   개발팀       |        |   총무팀        |    |    인사팀          |    |    영업팀        |
+-----------------+        +-----------------+    +-------------------+    +------------------+
          |                                   |
  +--------------------+            +---------------------+
  |    개발 서버 1대   |            |    사용자 PC 20여명  |  <--- 각 팀의 사무실/PC 연결
  +--------------------+            +---------------------+
          |                                   |
    +-------------+                      +-------------+
    |   기술팀    |                      |  관리자 등  |
    +-------------+                      +-------------+

구성 설명

  1. 외부(EXT): 인터넷을 통한 외부 연결.
  2. Router: 인터넷과 내부 네트워크를 연결하는 라우터. 외부와 내부 트래픽을 관리.
  3. L3 스위치: 라우팅 기능을 제공하는 레벨 3 스위치로, 여러 VLAN 간 트래픽을 라우팅한다.
  4. DMZ (Demilitarized Zone): 웹 서버와 같이 외부와 연결된 서버들이 위치하는 구역. 이곳에서 외부와의 접속을 처리한다.
  5. Backbone L3 SW: 네트워크 백본을 구성하는 레벨 3 스위치로, 데이터의 빠르고 효율적인 전달을 담당한다.
  6. L2 스위치 (내부): 각 VLAN에 속한 장치들을 연결하는 L2 스위치로, 주로 내부 통신에 사용된다.
  7. VLAN:
    • VLAN100 (개발팀): 개발팀에 할당된 네트워크 구간.
    • VLAN200 (총무팀): 총무팀에 할당된 네트워크 구간.
    • VLAN210 (인사팀): 인사팀에 할당된 네트워크 구간.
    • VLAN220 (영업팀): 영업팀에 할당된 네트워크 구간.
    • VLAN230 (기술팀): 기술팀에 할당된 네트워크 구간.
  8. 개발 서버: 개발팀에서 사용할 서버.
  9. 사용자 PC: 각 팀의 사용자들이 사용하는 PC로, 각 VLAN에 연결된다.

 

 

 

 

 

 

 

 

 

02 네트워크 관리(Network Management)


 

네트워크의 성능, 안정성, 보안 및 효율성을 보장하기 위해 네트워크 인프라 자원을 적절히 배치하고 유지 관리하는 작업이다.
주요 영역:

  1. 유지보수 (Maintenance):
    • 네트워크 장비의 정기적인 점검 및 고장 수리.
    • 펌웨어/소프트웨어 업그레이드 및 패치 적용.
  2. 모니터링 및 관제:
    • 네트워크 트래픽, 성능, 상태를 실시간으로 점검.
    • 장애 발생 시 빠르게 탐지하고 해결.

NMS (Network Management System)

네트워크 구성 요소를 효과적으로 관리하기 위한 소프트웨어 시스템이다.
주요 기능:

  1. 모니터링:
    • 네트워크 상태 및 트래픽 확인.
    • 장애 탐지 및 경고.
  2. 관리:
    • 장비 설정 변경.
    • 장비 간 연결 및 자원 할당 관리.

관련 프로토콜 및 기술

  1. SNMP (Simple Network Management Protocol):
    • 네트워크 장비를 관리하고 모니터링하기 위한 표준 프로토콜.
    • SNMP Agent가 장비의 정보를 NMS에 제공.
    • E-SNMP는 강화된 SNMP로, 추가적인 보안 기능을 제공한다.
  2. Syslog:
    • 네트워크 장비에서 발생한 이벤트와 로그를 기록하는 표준.
    • NMS에서 로그를 분석하여 문제를 파악할 수 있음.
  3. NTP (Network Time Protocol):
    • 네트워크 장비 간 시간 동기화를 제공.
    • 로그와 이벤트 분석 시 정확한 타임스탬프가 필수적.
  4. Port Mirror:
    • 네트워크 스위치에서 특정 포트의 트래픽을 복제하여 분석 장비로 전송.
    • 트래픽 모니터링 및 침입 탐지에 유용.
  5. Telnet & SSH:
    • Telnet: 장비의 원격 접속을 위한 기본 프로토콜(보안 취약점 존재).
    • SSH: Telnet의 보안 강화 버전으로, 암호화된 데이터 전송을 제공.

실제 활용 예

  1. NMS를 이용한 중앙 집중식 관리:
    • SNMP와 Syslog를 사용해 네트워크 장비의 상태를 NMS에서 확인.
    • NTP로 모든 장비의 시간을 동기화.
  2. 문제 발생 시 빠른 대처:
    • Syslog에서 경고 메시지를 분석해 원인 파악.
    • SSH로 장비에 접속해 설정을 수정.
  3. 트래픽 분석:
    • Port Mirror를 통해 특정 장비의 트래픽을 모니터링 툴로 전송.

 

 

 

 

 

 

 

 


SNMP (Simple Network Management Protocol)

  • 네트워크 관리 프로토콜로, 네트워크 장치(라우터, 스위치, 서버 등)의 상태를 모니터링하고 관리한다.
  • SNMP는 관리 시스템(NMS)과 에이전트(네트워크 장치) 간에 데이터를 교환하는 데 사용된다.

MIB (Management Information Base)

  • MIB란?
    네트워크 장비에서 모니터링 및 제어 가능한 자원(객체)의 정보를 계층적 트리 구조로 관리하는 데이터베이스이다.
  • 주요 특징:
    1. 트리 구조(Tree Structure):
      • 객체를 계층적으로 정리하여 관리.
      • 루트 노드부터 말단까지 OID(Object Identifier)를 사용하여 객체를 식별.
    2. RFC 표준:
      • RFC1213-MIB는 SNMP에서 가장 일반적으로 사용하는 MIB 모듈 중 하나이다.
    3. OID (Object Identifier):
      • MIB의 각 객체를 고유하게 식별하기 위해 사용되는 번호 체계.

MIB 트리 구조

  • 트리 구조의 루트는 국제 표준화 기구(ISO)에 의해 정의된다.
  • 주요 경로:
    1.3.6.1.2.1  
    |  
    ├── system (1.3.6.1.2.1.1): 시스템 정보  
    ├── interfaces (1.3.6.1.2.1.2): 네트워크 인터페이스 정보  
    └── ...  
    

OID (Object Identifier)

  • OID란?
    객체를 고유하게 식별하는 숫자 기반 경로.
  • 예시:
    • 1.3.6.1.2.1
      • ISO > org > dod > internet > mgmt > mib-2
    • 1.3.6.1.2.1.1:
      • system 객체 (시스템 정보: Uptime, 이름 등)
    • 1.3.6.1.2.1.2:
      • interfaces 객체 (네트워크 인터페이스 관련 정보)

SNMP MIB의 주요 구성

  1. mib-2 (1.3.6.1.2.1):
    • 네트워크 장치와 관련된 기본 MIB.
    • 주요 하위 그룹:
      • system (1.3.6.1.2.1.1):
        • 장비의 이름, 가동 시간(Uptime), 설명 정보.
      • interfaces (1.3.6.1.2.1.2):
        • 네트워크 인터페이스의 상태 및 통계 정보.
  2. SNMPv2-SMI (Structure of Management Information):
    • SNMP에서 관리 데이터를 표현하는 방법을 정의.
    • 데이터 유형과 객체 정의.

MIB와 SNMP의 관계

  • SNMP 에이전트는 MIB를 기반으로 데이터를 저장하고 관리.
  • SNMP 관리 시스템(NMS)는 OID를 사용하여 에이전트에서 데이터를 요청하거나 제어.
  • OID 요청 예:
    • 1.3.6.1.2.1.1.3: 시스템 가동 시간(Uptime)을 조회.

 

 

 

 

 

 

 


SNMP 동작 프로세스

SNMP는 Manager(관리자)와 Agent(에이전트) 간의 요청/응답으로 작동한다.


1. GET Request (객체 값 요청)

  • 목적:
    • 관리자가 에이전트(네트워크 장비)에서 특정 객체의 값을 요청한다.
  • 프로세스:
    • Manager: 특정 OID 값을 요청 (GET Request).
    • Agent: 해당 값 응답 (GET Response).
  • 예시:
    • 요청: 1.3.6.1.2.1.1.3 (시스템 가동 시간).
    • 응답: "123456" (초 단위의 Uptime 값).

2. GET Next Request (다음 객체 값 요청)

  • 목적:
    • 다음 OID에 해당하는 객체 값을 요청한다.
    • 트리 구조로 이루어진 MIB에서 순차적으로 객체를 탐색할 때 유용하다.
  • 프로세스:
    • Manager: GET Next Request 요청.
    • Agent: 다음 OID 값을 반환 (GET Next Response).
  • 사용 사례:
    • MIB 테이블의 모든 값 조회.

3. SET Request (객체 값 설정)

  • 목적:
    • 관리자가 에이전트의 객체 값을 설정하거나 변경한다.
  • 프로세스:
    • Manager: OID에 새로운 값을 설정 (SET Request).
    • Agent: 설정 성공 여부를 반환 (SET Response).
  • 예시:
    • 네트워크 장비의 IP 주소나 설정 변경.

4. GET Bulk Request (대량 객체 값 요청)

  • 목적:
    • 여러 객체의 값을 한 번에 요청한다.
    • 대규모 데이터를 조회할 때 효율적이다.
  • 프로세스:
    • Manager: 여러 OID 값 요청 (GET Bulk Request).
    • Agent: 요청된 OID에 해당하는 값 반환 (GET Bulk Response).

5. Trap (트랩)

  • 목적:
    • 네트워크 장비에서 문제가 발생하거나 이벤트가 발생했을 때, Agent가 Manager에게 알림을 보낸다.
  • 특징:
    • Manager의 요청 없이도 Agent가 자발적으로 전송.
  • 예시:
    • 네트워크 장비의 장애 발생, 인터페이스 다운.
  • 구성:
    • Trap Receiver(트랩 수신기)는 트랩을 수신하고 관리자에게 알림.

동작 요약

 

GET Request 특정 객체 값 요청 단일 값 조회
GET Next Request 다음 객체 값 요청 객체를 순차적으로 조회
SET Request 객체 값 설정 네트워크 설정 변경
GET Bulk Request 대량 객체 값 요청 여러 값 조회
Trap 에이전트가 자발적으로 알림 전송 장애 및 이벤트 알림

예시 시나리오

  1. 네트워크 상태 확인:
    • Manager가 SNMP GET Request로 라우터의 CPU 사용량 요청.
    • Agent가 CPU 사용량 데이터를 응답.
  2. 인터페이스 상태 조회:
    • Manager가 GET Next Request를 사용하여 인터페이스 상태를 순차적으로 확인.
  3. 장애 발생 알림:
    • 라우터에서 장애 발생 시, Agent가 Trap으로 관리자에게 즉시 알림.

 

 

추가 내용

  1. SNMP 버전에 따른 차이점
    • SNMPv1: 초기 버전으로 보안이 미흡하며, 기본적인 요청/응답 방식만 제공.
    • SNMPv2c: GET Bulk Request 추가 및 성능 개선.
    • SNMPv3: 인증, 암호화 등의 강력한 보안 기능 도입.
  2. Trap 이외의 알림 방식
    • Inform: Trap과 비슷하지만, Manager의 확인 응답(Acknowledgment)을 받음.
  3. SNMP 동작의 활용 사례
    • 모니터링 시스템: Zabbix, Nagios 같은 도구에서 SNMP를 통해 장치 상태를 실시간 모니터링.
    • 자동화: 네트워크 장치 설정 자동화 및 장애 대응.
  4. MIB 정보의 활용
    • OID 구조
      • 예: 1.3.6.1.2.1.1
        • 1 - ISO
        • 3 - org
        • 6 - dod
        • 1 - internet
        • 2 - mgmt
        • 1 - MIB-2
        • 1 - System Group
    • 이를 통해 SNMP에서 어떤 데이터를 요청할지 구체적으로 알 수 있음.

추가 예시 시나리오

  • 장비 상태 모니터링:
    네트워크 관리자(Manager)가 SNMP GET Bulk Request를 사용해 모든 라우터 인터페이스 상태를 확인.
    • 응답: 인터페이스별 전송량, 에러 수치 등이 포함된 데이터.
  • 설정 변경:
    특정 라우터의 SNMP Agent를 통해 IP 주소를 SET Request로 변경.
    • 요청: 1.3.6.1.2.1.4.20 (IP Table 관련 OID).
    • 응답: 성공 시 "OK" 메시지.

 

 
 
 

 

 

반응형