네트워크 보안 기초: IP 관점에서 알아야 할 것들
네트워크 보안 기초: IP 관점에서 알아야 할 것들
인터넷에 연결된 모든 장치는 IP 주소를 갖고 있으며, 이 IP 주소는 네트워크 보안의 핵심 요소입니다. 방화벽 규칙부터 DDoS 방어까지, 대부분의 보안 메커니즘은 IP 주소를 기반으로 동작합니다. 이 글에서는 개발자와 IT 관리자가 알아야 할 네트워크 보안의 기초를 IP 관점에서 정리합니다.
방화벽 기초
방화벽(Firewall)은 네트워크 보안의 첫 번째 방어선입니다. 네트워크로 들어오고 나가는 트래픽을 사전에 정의된 규칙에 따라 허용하거나 차단합니다.
패킷 필터링 (Packet Filtering)
가장 기본적인 방화벽 방식입니다. 각 패킷의 헤더 정보(출발지 IP, 목적지 IP, 포트 번호, 프로토콜)를 검사하여 규칙에 따라 처리합니다.
# iptables 예시: 특정 IP에서 SSH 접근 허용
iptables -A INPUT -s 203.0.113.50 -p tcp --dport 22 -j ACCEPT
# 나머지 SSH 접근 차단
iptables -A INPUT -p tcp --dport 22 -j DROP
# 특정 대역 차단
iptables -A INPUT -s 10.0.0.0/8 -j REJECT
Stateful Inspection (상태 기반 검사)
패킷 필터링의 발전된 형태입니다. 개별 패킷이 아닌 연결 상태를 추적합니다. 예를 들어, 내부에서 시작된 연결의 응답 패킷은 자동으로 허용하지만, 외부에서 시작된 새로운 연결은 규칙에 따라 처리합니다.
# 이미 수립된 연결 허용
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 새 연결은 지정된 포트만 허용
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
차세대 방화벽 (NGFW)
최신 방화벽은 IP와 포트뿐 아니라 애플리케이션 수준의 검사도 수행합니다. 같은 443 포트를 사용하더라도 HTTPS, VPN, P2P 등 어떤 애플리케이션 트래픽인지 구분하여 정책을 적용합니다.
IP 기반 접근 제어
화이트리스트와 블랙리스트
IP 기반 접근 제어의 두 가지 기본 방식입니다.
화이트리스트(허용 목록): 지정된 IP만 접근을 허용합니다.
# Nginx 설정 예시
location /admin {
allow 203.0.113.50;
allow 198.51.100.0/24;
deny all;
}
블랙리스트(차단 목록): 특정 IP의 접근을 차단합니다.
# 악성 IP 차단
deny 192.0.2.1;
deny 198.51.100.0/24;
Geo-blocking (지역 차단)
GeoIP 데이터베이스를 활용하여 특정 국가에서의 접근을 차단하는 방법입니다. 공격 트래픽이 특정 국가에 집중되는 경우 효과적입니다.
# 특정 국가 차단 (GeoIP 모듈 사용)
if ($geoip_country_code = "XX") {
return 403;
}
다만 Geo-blocking은 VPN으로 쉽게 우회할 수 있으므로 보조적인 수단으로만 사용해야 합니다.
Rate Limiting (속도 제한)
같은 IP에서 과도한 요청이 들어오는 것을 방지합니다.
# Nginx rate limiting
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
location /api/ {
limit_req zone=api burst=20 nodelay;
}
포트 스캐닝의 이해
포트 스캐닝은 대상 시스템에서 열려 있는 포트를 탐색하는 행위입니다. 공격자는 이를 통해 취약한 서비스를 찾습니다.
주요 스캔 유형
| 스캔 유형 | 설명 | 탐지 난이도 |
|---|---|---|
| TCP Connect | 완전한 TCP 연결 수립 | 쉬움 |
| SYN Scan | 반개방 스캔 (SYN만 전송) | 중간 |
| FIN Scan | FIN 패킷으로 스캔 | 어려움 |
| UDP Scan | UDP 포트 스캔 | 매우 어려움 |
포트 스캐닝 방어
# 짧은 시간에 많은 포트 접근 시 차단 (iptables)
iptables -A INPUT -p tcp --syn -m recent --name portscan --rcheck \
--seconds 60 --hitcount 10 -j DROP
iptables -A INPUT -p tcp --syn -m recent --name portscan --set
불필요한 포트를 닫고, 서비스가 필요한 포트만 최소한으로 열어두는 것이 기본입니다.
DDoS 공격의 이해
DDoS(Distributed Denial of Service)는 다수의 시스템에서 동시에 대량의 트래픽을 보내 서비스를 마비시키는 공격입니다.
주요 DDoS 유형
볼류메트릭 공격 (Volumetric Attack)
- UDP Flood, ICMP Flood 등
- 순수한 대역폭 소모 공격
- 수십~수백 Gbps 규모 가능
프로토콜 공격 (Protocol Attack)
- SYN Flood: TCP 핸드셰이크를 악용
- Ping of Death: 비정상 크기의 ICMP 패킷
- 서버의 연결 자원을 고갈시킴
애플리케이션 계층 공격 (L7 Attack)
- HTTP Flood: 대량의 HTTP 요청
- Slowloris: 연결을 오래 유지하여 자원 고갈
- 정상 트래픽과 구분이 어려움
DDoS 방어 전략
- CDN/WAF 서비스: Cloudflare, AWS Shield 등 전문 서비스 활용
- 트래픽 분석: 비정상 트래픽 패턴 실시간 감지
- Anycast 네트워크: 트래픽을 여러 지점으로 분산
- IP 평판 기반 필터링: 알려진 악성 IP 사전 차단
IP 스푸핑
IP 스푸핑(spoofing)은 패킷의 출발지 IP를 위조하는 기법입니다. 공격자가 자신의 실제 IP를 숨기거나, 다른 IP로 위장하여 공격합니다.
스푸핑이 위험한 이유
- 추적 회피: 공격 출처를 숨길 수 있음
- 반사 공격(Reflection): 위조된 출발지 IP로 요청을 보내면, 응답이 피해자에게 전달됨
- 인증 우회: IP 기반 인증을 우회할 수 있음
스푸핑 방어
# BCP38 (ingress filtering) - ISP 수준에서 적용
# 자신의 네트워크에 할당되지 않은 출발지 IP를 가진 패킷 차단
iptables -A FORWARD -s ! 203.0.113.0/24 -i eth0 -j DROP
uRPF(Unicast Reverse Path Forwarding): 라우터에서 패킷의 출발지 IP가 해당 인터페이스를 통해 도달 가능한지 확인합니다.
VPN으로 프라이버시 보호하기
VPN(Virtual Private Network)은 인터넷 트래픽을 암호화하고 IP 주소를 숨기는 가장 대중적인 방법입니다.
VPN이 보호하는 것
- IP 주소 은닉: 웹사이트에는 VPN 서버의 IP가 노출됨
- 트래픽 암호화: ISP도 내용을 볼 수 없음
- 위치 우회: 지역 제한 콘텐츠 접근 가능
VPN의 한계
- VPN 서버 로그: 일부 VPN 업체는 접속 로그를 보관
- DNS 누출: 잘못 설정된 VPN은 DNS 쿼리를 암호화하지 않음
- WebRTC 누출: 브라우저의 WebRTC가 실제 IP를 노출할 수 있음
- VPN 탐지 가능: 알려진 VPN IP 대역은 탐지 및 차단 가능
VPN 사용 여부가 탐지되는지 확인하려면 VPN 감지 도구를 사용해 보세요.
IP 유틸리티 도구 활용
네트워크 보안을 관리할 때 다양한 IP 관련 도구를 활용하면 효과적입니다.
블랙리스트 확인
서버 IP가 스팸 블랙리스트에 등록되어 있으면 이메일 발송이 차단되거나 접근이 제한될 수 있습니다. 정기적으로 블랙리스트 확인 도구를 사용해 서버 IP의 상태를 확인하세요. 블랙리스트에 대해 더 자세히 알고 싶다면 IP 블랙리스트 가이드를 참고하세요.
VPN/프록시 감지
서비스에 접근하는 사용자가 VPN이나 프록시를 사용하는지 확인하는 것은 사기 방지에 중요합니다. VPN 감지 도구로 IP의 VPN 사용 여부를 확인할 수 있습니다.
DNS 조회
도메인의 DNS 설정을 확인하는 것은 보안 점검의 기본입니다. SPF, DKIM, DMARC 레코드 확인부터 네임서버 상태까지 DNS 조회 도구에서 확인할 수 있습니다.
보안 체크리스트
네트워크 보안의 기본을 점검하기 위한 체크리스트입니다:
- 불필요한 포트가 닫혀 있는가?
- 방화벽 규칙이 최소 권한 원칙을 따르는가?
- 서버 IP가 블랙리스트에 등록되어 있지 않은가?
- SSH 접근이 특정 IP로 제한되어 있는가?
- DDoS 방어 서비스가 적용되어 있는가?
- DNS 레코드(SPF, DKIM, DMARC)가 올바르게 설정되어 있는가?
- 로그를 정기적으로 모니터링하고 있는가?
마무리
네트워크 보안은 단일 솔루션이 아닌 다중 계층 방어(Defense in Depth) 전략이 필요합니다. 방화벽, IDS/IPS, 애플리케이션 보안, 데이터 암호화 등 각 계층에서 적절한 보안 조치를 적용해야 합니다.
지금 바로 ip.utilo.kr에서 여러분의 IP 보안 상태를 점검해 보세요. 블랙리스트 확인, VPN 감지, DNS 조회 도구를 활용하면 기본적인 네트워크 보안 상태를 빠르게 확인할 수 있습니다.
관련 글: IP 블랙리스트 가이드 | VPN 감지 방법