네트워크 기초 Part 3 - 네트워크 서비스와 보안
📚 전체 흐름 요약
Part 3에서는 실무에서 필수적인 네트워크 서비스와 보안 기술을 학습합니다. IP 주소를 자동으로 할당하는 DHCP, 사설 IP를 공인 IP로 변환하는 NAT, 그리고 네트워크 접근을 제어하는 ACL 등을 다룹니다.
학습 목표:
- DHCP의 동작 원리와 설정 방법
- NAT의 종류와 실무 활용
- ACL을 통한 네트워크 접근 제어
- 방화벽의 기본 개념
- 포트 스캔과 보안 대책
1. DHCP (Dynamic Host Configuration Protocol)
1.1 DHCP란?
DHCP는 네트워크 장치에 IP 주소와 네트워크 설정을 자동으로 할당하는 프로토콜입니다 (RFC 1541).
graph LR
A[DHCP 서버] -->|IP 할당| B[PC1]
A -->|IP 할당| C[PC2]
A -->|IP 할당| D[PC3]
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#fff4e1
style D fill:#fff4e1
장점:
- 관리자의 수동 설정 불필요
- IP 주소 충돌 방지
- 효율적인 IP 주소 관리
- 중앙 집중식 관리
할당 정보:
- IP 주소
- 서브넷 마스크
- 기본 게이트웨이
- DNS 서버 주소
- 임대 시간 (Lease Time)
1.2 DHCP 동작 과정 (4단계)
DHCP는 DORA 과정을 통해 IP 주소를 할당합니다.
sequenceDiagram
participant C as 클라이언트
participant S as DHCP 서버
C->>S: ① DISCOVER<br/>(브로드캐스트)
Note over C,S: "DHCP 서버 찾기"
S->>C: ② OFFER<br/>(유니캐스트)
Note over C,S: "IP 주소 제안"
C->>S: ③ REQUEST<br/>(브로드캐스트)
Note over C,S: "IP 주소 요청"
S->>C: ④ ACK<br/>(유니캐스트)
Note over C,S: "IP 주소 승인"
① DISCOVER (서버 찾기)
클라이언트 → 브로드캐스트
출발지 IP: 0.0.0.0
목적지 IP: 255.255.255.255
메시지: "DHCP 서버 있나요?"
상황:
- PC 부팅 또는 네트워크 연결 시
- IP 주소가 없어 0.0.0.0 사용
- 브로드캐스트로 네트워크 전체에 전송
② OFFER (IP 제안)
DHCP 서버 → 클라이언트
출발지 IP: DHCP 서버 IP
목적지 IP: 클라이언트가 받을 IP
메시지: "이 IP 주소(192.168.10.100) 어때요?"
내용:
- 사용 가능한 IP 주소
- 서브넷 마스크
- 임대 시간
- 게이트웨이, DNS 정보
③ REQUEST (IP 요청)
클라이언트 → 브로드캐스트
메시지: "192.168.10.100 주소를 사용하겠습니다!"
이유:
- 여러 DHCP 서버가 응답할 수 있음
- 선택한 서버에게 알림
- 다른 서버는 제안 철회
④ ACK (IP 승인)
DHCP 서버 → 클라이언트
메시지: "승인! 192.168.10.100 사용하세요."
임대 시간: 7일
결과:
- IP 주소 할당 완료
- 클라이언트 네트워크 통신 가능
1.3 DHCP 임대 갱신
임대 시간: 7일
50% 경과 (3.5일) → 갱신 시도 (UNICAST)
75% 경과 (5.25일) → 재갱신 시도 (BROADCAST)
100% 경과 (7일) → IP 반납, 새로 할당받기
1.4 DHCP Relay Agent
문제 상황:
graph LR
A[DHCP 서버<br/>네트워크 A] -.라우터.- B[클라이언트<br/>네트워크 B]
style A fill:#e1f5ff
style B fill:#ffe6e6
DHCP DISCOVER는 브로드캐스트이므로 라우터를 넘지 못합니다.
해결책: DHCP Relay Agent
graph LR
A[클라이언트] -->|브로드캐스트| B[라우터<br/>Relay Agent]
B -->|유니캐스트| C[DHCP 서버]
C -->|유니캐스트| B
B -->|유니캐스트| A
style B fill:#ffe6e6
동작 방식:
- 클라이언트 → 라우터: DISCOVER (브로드캐스트)
- 라우터 → DHCP 서버: DISCOVER (유니캐스트로 변환)
- DHCP 서버 → 라우터: OFFER
- 라우터 → 클라이언트: OFFER 전달
2. NAT (Network Address Translation)
2.1 NAT란?
NAT는 IP 패킷의 주소 정보를 변환하는 기술로, 주로 사설 IP ↔ 공인 IP 변환에 사용됩니다 (RFC 1631).
graph LR
A[내부 네트워크<br/>192.168.10.0/24] -->|사설 IP| B[NAT 라우터]
B -->|공인 IP<br/>203.235.222.10| C[인터넷]
style A fill:#fff4e1
style B fill:#e1f5ff
style C fill:#e6ffe6
필요성:
- IPv4 주소 고갈 문제 해결
- 보안 강화 (내부 네트워크 숨김)
- 비용 절감 (공인 IP 최소화)
용어:
- Inside Local: 내부 사설 IP (192.168.10.10)
- Inside Global: 외부로 나갈 때 변환된 공인 IP (203.235.222.10)
2.2 NAT 종류
1) Static NAT (정적 NAT)
1:1 고정 매핑 - 특정 사설 IP를 특정 공인 IP로 고정 변환
사설 IP 공인 IP
192.168.10.5 → 203.235.222.10 (항상 고정)
192.168.10.6 → 203.235.222.11 (항상 고정)
특징:
- NAT 테이블이 삭제되지 않음
- 외부에서 내부 서버 접속 가능
- 공인 IP가 많이 필요
용도:
- 웹 서버, 메일 서버 등 공개 서비스
- DMZ 영역 서버
2) Dynamic NAT (동적 NAT)
N:M 매핑 - 사설 IP를 공인 IP Pool에서 동적 할당
사설 IP Pool 공인 IP Pool
192.168.10.10 ─┐
192.168.10.11 ─┼─→ 203.235.222.1 ~ .14
192.168.10.12 ─┘ (14개 공인 IP)
...
특징:
- 통신 시에만 NAT 테이블 생성
- 일정 시간 후 자동 삭제
- 공인 IP보다 사설 IP가 많으면 대기
용도:
- 내부 → 외부 인터넷 사용
- 일반 사무실 네트워크
3) PAT (Port Address Translation)
N:1 매핑 - 여러 사설 IP를 하나의 공인 IP로 변환 (포트 번호 활용)
사설 IP 포트 → 공인 IP 포트
192.168.10.10:1111 ────→ 203.235.222.1:1111
192.168.10.10:2222 ────→ 203.235.222.1:2222
192.168.10.11:3333 ────→ 203.235.222.1:3333
192.168.10.12:4444 ────→ 203.235.222.1:4444
특징:
- 공인 IP 1개로 수천 대 지원
- 포트 번호로 구분
- 가장 일반적인 NAT 방식
- 가정용 공유기에서 사용
2.3 NAT의 장단점
장점:
- IPv4 주소 절약
- 내부 네트워크 보안 강화
- 네트워크 구조 변경 용이
단점:
- 패킷 지연 발생
- 종단 간 투명성 저하
- 일부 프로토콜 호환 문제 (FTP, SIP 등)
3. ACL (Access Control List)
3.1 ACL이란?
ACL은 네트워크 트래픽을 필터링하여 접근을 제어하는 보안 기술입니다.
graph LR
A[허용된 트래픽] -->|PERMIT| B[ACL<br/>필터]
C[차단된 트래픽] -.DENY.-> B
B --> D[목적지]
style A fill:#e6ffe6
style C fill:#ffe6e6
style B fill:#e1f5ff
용도:
- 특정 트래픽 허용/차단
- 원격 접속 제어 (Telnet, SSH)
- NAT와 함께 사용
- QoS 정책 적용
3.2 ACL 종류
1) Standard ACL (표준 ACL)
출발지 IP 주소만 검사합니다.
| 항목 | 내용 |
|---|---|
| 번호 범위 | 1~99, 1300~1999 |
| 검사 항목 | 출발지 IP만 |
| 적용 위치 | 목적지에 가깝게 |
| 세밀도 | 낮음 |
2) Extended ACL (확장 ACL)
출발지, 목적지, 프로토콜, 포트 모두 검사합니다.
| 항목 | 내용 |
|---|---|
| 번호 범위 | 100~199, 2000~2699 |
| 검사 항목 | 출발지, 목적지, 프로토콜, 포트 |
| 적용 위치 | 출발지에 가깝게 |
| 세밀도 | 높음 |
프로토콜:
ip: 모든 IP 트래픽tcp: TCP 트래픽udp: UDP 트래픽icmp: ICMP (ping 등)
포트 연산자:
eq (equal): 같음 (예: eq 80)neq (not equal): 같지 않음gt (greater than): 초과lt (less than): 미만range: 범위 (예: range 1000 2000)
3.3 Wildcard Mask
Wildcard Mask는 서브넷 마스크와 반대 개념입니다.
| 비트 | 의미 |
|---|---|
0 |
검사 (정확히 일치해야 함) |
1 |
무시 (아무 값이나 허용) |
계산 방법:
서브넷 마스크: 255.255.255.0
Wildcard: 0.0.0.255 ← 255에서 빼기
예시:
| 목적 | IP 주소 | Wildcard Mask | 의미 |
|---|---|---|---|
| 단일 호스트 | 192.168.10.1 | 0.0.0.0 | 정확히 192.168.10.1만 |
| C 클래스 네트워크 | 192.168.10.0 | 0.0.0.255 | 192.168.10.0/24 전체 |
| 홀수 호스트만 | 192.168.10.0 | 0.0.0.1 | 마지막 비트 무시 (0,1 / 2,3 …) |
| 모든 주소 | 0.0.0.0 | 255.255.255.255 | any와 동일 |
4. 방화벽의 이해
4.1 방화벽이란?
방화벽(Firewall)은 신뢰할 수 있는 네트워크와 신뢰할 수 없는 네트워크 사이에서 트래픽을 제어하는 보안 시스템입니다.
graph LR
A[내부 네트워크<br/>신뢰 영역] <-->|검사| B[방화벽]
B <-->|허용된 트래픽만| C[인터넷<br/>비신뢰 영역]
style A fill:#e6ffe6
style B fill:#ffe6e6
style C fill:#fff4e1
4.2 방화벽 필터링 방식
1) Egress Filtering (Outbound)
내부 → 외부 나가는 트래픽 검사
목적: 내부 시스템의 악성 행위 차단
검사: 출발지 IP 주소
예시: 특정 PC의 외부 통신 차단
2) Ingress Filtering (Inbound)
외부 → 내부 들어오는 트래픽 검사
목적: 외부 공격 차단
검사: 출발지 IP, 목적지 포트
예시: 특정 IP 대역 차단, 포트 스캔 차단
3) Blackhole Filtering (Null Routing)
특정 트래픽을 null 인터페이스(쓰레기통)로 전송
장점:
- CPU 부하 최소 (ACL보다 효율적)
- 간단한 설정
4) Unicast RPF (Reverse Path Forwarding)
IP 스푸핑 공격 방어
동작 원리:
1. 패킷 수신 (출발지 IP: 1.1.1.1)
2. 라우팅 테이블 확인: 1.1.1.1로 가는 경로는?
3. 같은 인터페이스로 나가는가?
- Yes → 정상 트래픽 (통과)
- No → 스푸핑 의심 (차단)
5. 포트 스캔 (Port Scan)
5.1 포트 스캔이란?
포트 스캔은 대상 시스템의 열린 포트를 찾아내는 정찰 기법입니다.
graph LR
A[공격자] -->|포트 스캔| B[대상 서버]
B -->|응답 분석| A
style A fill:#ffe6e6
style B fill:#e1f5ff
목적:
- 서비스 탐지
- 취약점 분석
- 침투 경로 파악
5.2 포트 스캔 종류
1) TCP Connect Scan (TCP OPEN 스캔)
3-way handshake 완료 - 가장 정확하지만 로그 기록됨
클라이언트 → 서버: SYN
서버 → 클라이언트: SYN+ACK ← 포트 열림
클라이언트 → 서버: ACK
결과: 포트 OPEN
단점:
- 로그에 기록됨
- 느림
2) TCP SYN Scan (Half-OPEN 스캔)
SYN만 전송, 연결 완료하지 않음 - 스텔스 스캔
클라이언트 → 서버: SYN
서버 → 클라이언트: SYN+ACK ← 포트 열림
클라이언트 → 서버: RST ← 연결 중단
결과: 포트 OPEN, 로그 기록 최소화
장점:
- 로그 회피 가능
- 빠름
3) FIN/NULL/XMAS Scan
비정상 패킷 전송 - 닫힌 포트 기준으로 판단
| 스캔 | 플래그 설정 | 응답 |
|---|---|---|
| FIN | FIN=1 | RST+ACK (닫힘), 무응답 (열림) |
| NULL | 모두 0 | RST+ACK (닫힘), 무응답 (열림) |
| XMAS | FIN+PSH+URG=1 | RST+ACK (닫힘), 무응답 (열림) |
원리:
RFC 793: 닫힌 포트는 RST 응답
열린 포트는 무시
→ 응답 없음 = 포트 열림
→ RST 응답 = 포트 닫힘
4) UDP Scan
UDP는 비연결성이므로 ICMP 응답으로 판단
열린 포트: 무응답 또는 UDP 응답
닫힌 포트: ICMP Port Unreachable
단점:
- 신뢰성 낮음
- 느림
5) TCP ACK Scan
포트 상태가 아닌 방화벽 정책 테스트
클라이언트 → 서버: ACK
방화벽 필터링: 무응답 또는 ICMP
필터링 없음: RST+ACK
용도:
- Stateful 방화벽 탐지
- 방화벽 규칙 분석
6) Decoy Scan
다양한 IP로 출발지 위조 - 추적 회피
실제 공격자: 10.10.10.10
위조 IP1: 20.20.20.20
위조 IP2: 30.30.30.30
위조 IP3: 40.40.40.40
→ 서버 로그에 여러 IP 기록
→ 실제 공격자 특정 어려움
7. 주요 개념 요약표
DHCP 메시지 비교
| 단계 | 메시지 | 전송 방식 | 내용 |
|---|---|---|---|
| ① | DISCOVER | 브로드캐스트 | DHCP 서버 찾기 |
| ② | OFFER | 유니캐스트 | IP 주소 제안 |
| ③ | REQUEST | 브로드캐스트 | IP 주소 요청 |
| ④ | ACK | 유니캐스트 | IP 주소 승인 |
NAT 종류 비교
| 종류 | 매핑 | NAT 테이블 | 용도 | 공인 IP 수 |
|---|---|---|---|---|
| Static | 1:1 고정 | 유지 | 서버 공개 | 많음 |
| Dynamic | N:M 동적 | 임시 | 내부→외부 | 중간 |
| PAT | N:1 포트 | 임시 | 가정/사무실 | 1개 |
ACL 종류 비교
| 구분 | Standard ACL | Extended ACL |
|---|---|---|
| 번호 | 1~99, 1300~1999 | 100~199, 2000~2699 |
| 검사 항목 | 출발지 IP만 | 출발지, 목적지, 프로토콜, 포트 |
| 적용 위치 | 목적지 근처 | 출발지 근처 |
| 세밀도 | 낮음 | 높음 |
포트 스캔 비교
| 스캔 종류 | 플래그 | 로그 기록 | 탐지 난이도 |
|---|---|---|---|
| TCP Connect | SYN→SYN+ACK→ACK | 많음 | 쉬움 |
| SYN | SYN→RST | 적음 | 중간 |
| FIN | FIN | 적음 | 어려움 |
| NULL | 없음 | 적음 | 어려움 |
| XMAS | FIN+PSH+URG | 적음 | 어려움 |
8. 마무리
핵심 요점
- DHCP는 DORA 과정으로 IP를 자동 할당합니다.
- NAT는 사설 IP를 공인 IP로 변환하여 IPv4 부족 문제를 해결합니다.
- ACL은 출발지, 목적지, 프로토콜, 포트를 기반으로 트래픽을 제어합니다.
- 방화벽은 다양한 필터링 기법으로 네트워크 보안을 강화합니다.
- 포트 스캔을 이해하고 대응 방법을 마련해야 합니다.
실무 팁
DHCP 설계 시:
- 충분한 IP Pool 확보 (사용자 수의 120%)
- 중요 장비는 고정 IP 또는 DHCP Reservation
- 임대 시간은 환경에 맞게 조정 (일반: 7일, 유동적: 1일)
NAT 설계 시:
- 서버는 Static NAT 사용
- 일반 사용자는 PAT 사용
- NAT Pool 크기는 동시 접속자 수 고려
ACL 설계 시:
- 구체적인 규칙부터 작성 (위→아래 순서 중요)
- 마지막에
permit any또는deny any명시 - Extended ACL은 출발지 근처에 적용
마무리
이번 Part 3에서는 실무 네트워크 서비스와 보안 기술을 종합적으로 학습했습니다. DHCP를 통해 IP 주소를 자동으로 할당받는 4단계 DORA 과정(Discover, Offer, Request, ACK)을 이해하고, DHCP 릴레이를 통해 다른 네트워크에 있는 DHCP 서버와 통신하는 방법을 익혔습니다.
NAT(Network Address Translation)와 PAT(Port Address Translation)의 차이를 명확히 구분하며, 사설 IP를 공인 IP로 변환하여 인터넷 통신을 가능하게 하는 원리를 파악했습니다. Static NAT는 1:1 매핑으로 서버에 적합하고, Dynamic NAT는 Pool 방식으로 여러 공인 IP를 공유하며, PAT는 포트를 이용해 하나의 공인 IP로 여러 사설 IP를 동시에 인터넷에 연결할 수 있습니다.
ACL(Access Control List)을 통한 네트워크 접근 제어 기법을 학습했습니다. Standard ACL은 출발지 IP만 검사하고, Extended ACL은 출발지/목적지 IP, 프로토콜, 포트까지 세밀하게 제어합니다. ACL은 위에서 아래로 순차 검사하므로 구체적인 규칙을 먼저 배치하고, 마지막에 deny any로 기본 차단하는 것이 원칙입니다.
방화벽의 개념과 포트 스캔 대응 방법을 이해하며, Stateless 방화벽(패킷 필터링)과 Stateful 방화벽(상태 추적)의 차이를 파악했습니다. nmap을 이용한 포트 스캔 기법과 이에 대한 방어 전략도 학습했습니다.
다음 Part 4에서는 Layer 2 네트워킹의 핵심인 스위치 동작 원리와 VLAN을 학습합니다. 스위치의 5가지 동작(Learning, Flooding, Forwarding, Filtering, Aging), MAC 주소 테이블 관리, VLAN을 통한 브로드캐스트 도메인 분리, Inter-VLAN 라우팅, STP를 이용한 루프 방지 등 실무 네트워크 구축의 필수 기술을 익히게 됩니다.
댓글 남기기