📚 네트워크 · 패킷 분석 › 04. 네트워크 장비 실습 — 179편
이전 글: 178. ACL · 다음 글: 180. DMZ
Network Segmentation(네트워크 분리·구역화) 은 네트워크를 역할과 중요도에 따라 여러 보안 구역(Zone) 으로 나누고, 구역 사이 통신을 정해진 지점에서만, 필요한 것만 허용하도록 설계하는 것입니다.
목적은 두 가지입니다.
지금까지 본 VLAN(163. VLAN이란 무엇인가), Inter-VLAN Routing(167. Inter-VLAN Routing), ACL(178. ACL)은 모두 분리를 구현하는 부품이고, Segmentation은 이 부품들로 만드는 설계입니다.
| 구역 예 | 포함 자산 | 신뢰 수준 |
|---|---|---|
| 사용자망 | 업무 PC, 노트북 | 낮음 (피싱·웹 노출) |
| 서버망 | 업무 시스템, 파일 서버 | 중간 |
| DB망 | 데이터베이스 | 높음 (서버망에서만 접근) |
| 관리망 | 장비 관리 인터페이스, 점프 서버 | 매우 높음 |
| DMZ | 외부 공개 서버 | 외부 노출 (180. DMZ) |
| 게스트망 | 방문자 무선 | 신뢰하지 않음 (인터넷만 허용) |
분리 설계는 구역 정의 → 통신 매트릭스 작성 → 통제 지점 배치 → 장비 설정 순서로 진행합니다. 핵심 산출물은 구역 간 통신 매트릭스입니다.
| 출발 \ 목적 | 사용자망 | 서버망 | DB망 | 관리망 | 인터넷 |
|---|---|---|---|---|---|
| 사용자망 | — | 업무 포트만 | 차단 | 차단 | 프록시 경유 |
| 서버망 | 차단 | 필요 시 개별 허용 | DB 포트만 | 차단 | 업데이트 대상만 |
| DB망 | 차단 | 응답만 | — | 차단 | 차단 |
| 관리망 | 관리 포트 | 관리 포트 | 관리 포트 | — | 제한 |
매트릭스에 없는 통신은 모두 차단하는 것이 원칙입니다(기본 차단). 통제 지점은 구역 경계마다 둡니다.
[인터넷]
↓
[경계 방화벽] ──→ [DMZ]
↓
[내부 방화벽 / L3 스위치 + ACL] ← 구역 간 통신이 모두 여기를 지남
↙ ↓ ↓ ↘
[사용자망] [서버망] → [DB망] [관리망]
VLAN 10 VLAN 20 VLAN 30 VLAN 99
분리를 구현하는 수단은 계층과 세밀함이 서로 다릅니다.
| 수단 | 분리 단위 | 통제 방식 | 한계 |
|---|---|---|---|
| 물리 분리 | 장비·회선 | 연결 자체가 없음 | 비용, 자료 전송 절차 필요 |
| VLAN + ACL | 서브넷 | L3 스위치·라우터 ACL (Stateless) | 같은 VLAN 안은 통제 불가 |
| 방화벽 Zone | 인터페이스 묶음 | 구역 간 Stateful 정책 | 방화벽을 지나지 않는 경로는 통제 불가 |
| VRF | 라우팅 테이블 | 구역마다 테이블 자체를 분리 | 구역 간 통신에는 별도 연결 지점 필요 |
| 호스트 방화벽 / 마이크로 세그멘테이션 | 개별 호스트·워크로드 | 호스트마다 정책 | 정책 수가 많아 관리 부담 |
실습 예시 — 방화벽 역할의 Linux VM(Rocky, firewalld)에서 인터페이스를 구역(zone)에 배정하고, 관리망 출발지만 SSH를 허용하는 구성입니다. 인터페이스와 주소는 예시(값은 환경마다 다름)입니다.
# 구역 생성과 인터페이스 배정
sudo firewall-cmd --permanent --new-zone=users
sudo firewall-cmd --permanent --new-zone=servers
sudo firewall-cmd --permanent --zone=users --change-interface=ens37
sudo firewall-cmd --permanent --zone=servers --change-interface=ens38
# 관리망(10.99.0.0/24) 출발지는 mgmt 구역으로 분류해 SSH 허용
sudo firewall-cmd --permanent --new-zone=mgmt
sudo firewall-cmd --permanent --zone=mgmt --add-source=10.99.0.0/24
sudo firewall-cmd --permanent --zone=mgmt --add-service=ssh
sudo firewall-cmd --reload
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=mgmt --list-all
firewalld zone은 이 호스트로 들어오는 트래픽을 기준으로 동작합니다. 구역 사이를 통과하는(forward) 트래픽을 제어하려면 firewalld 0.9 이상의 policy 객체(ingress-zone → egress-zone)를 쓰는데, 이는 183. Outbound 정책에서 예시로 다룹니다.
Ubuntu 방화벽 VM에서 ufw를 쓰는 경우에는 zone 개념이 없으므로 인터페이스 조건으로 구분합니다.
sudo ufw allow in on ens37 from 10.99.0.0/24 to any port 22 proto tcp
sudo ufw route allow in on ens37 out on ens38 to 10.20.0.10 port 443 proto tcp
sudo ufw status numbered
📷 [실습 화면 삽입 위치] 실습망 구성도(사용자망·서버망·관리망 VMnet)와
firewall-cmd --get-active-zones결과에서 인터페이스·출발지가 각 zone에 배정된 모습을 함께 보여 주는 화면
| 흔적 | 의미 |
|---|---|
| 내부 방화벽·ACL의 구역 간 차단 로그 | 매트릭스에 없는 통신 시도 |
| 사용자망 → 관리망·DB망 시도 | 분리 정책 위반 또는 내부 정찰 |
| 구역 간 허용 세션의 새로운 조합 | 정책 예외 추가 또는 우회 |
| Flow 기록의 동-서(East-West) 트래픽 급증 | 내부 확산 가능성 |
관제자가 확인할 질문
오탐 주의: 백업·모니터링·패치 서버는 정상적으로 여러 구역에 접근합니다. 이런 서버 목록을 예외 자산으로 관리해 두어야 오탐을 줄일 수 있고, 동시에 공격자가 가장 노리는 경유지라는 점도 기억합니다.