IPSec 터널은 인터넷 프로토콜 보안(IPSec, IP Security)을 이용해 두 네트워크 간에 암호화된 통신 경로(터널)를 만드는 기술입니다. 보통 VPN(Virtual Private Network)의 핵심 기술 중 하나로 사용되며, 안전하게 데이터를 송수신할 수 있도록 해줍니다.
IPSec 터널이란?
- IPSec 터널 모드(IPSec Tunnel Mode)는 네트워크 장비(예: 라우터, 방화벽 등) 간에 암호화된 가상의 터널을 형성하여, 두 개의 네트워크 간에 안전한 통신을 가능하게 합니다.
- 인터넷 같은 불특정 다수가 접근 가능한 네트워크 위에 안전한 통신 경로를 구축하는 것이 목적입니다.
작동 방식
- 터널의 양 끝단 장비(예: VPN 게이트웨이)는 서로를 인증합니다. (보통 사전 공유 키(PSK), 인증서 등을 사용)
- IKE(Internet Key Exchange)를 통해 보안 매개변수를 협상하고, 세션 키를 교환합니다.
- 실제 데이터가 오갈 때는 ESP(Encapsulating Security Payload)나 AH(Authentication Header) 프로토콜을 통해 데이터를 암호화하고 인증합니다.
- 암호화된 IP 패킷을 새로운 외부 IP 헤더로 감싸 전송합니다. (이게 ‘터널 모드’의 핵심)
IPSec 터널 연결 단계 (IKEv1 또는 IKEv2 기준)
IPSec 연결은 보통 두 단계로 나뉩니다:
- IKE Phase 1: 인증 및 보안 채널 수립
- IKE Phase 2 (IPSec Phase): 실제 데이터 통신에 사용할 세션 키 생성
Phase 1: IKE Security Association 수립
목표: 두 장비 간에 안전한 제어 채널 (IKE SA)을 먼저 수립하여, 이후 민감한 설정 정보를 안전하게 교환할 수 있게 함.
1.1. IKE 협상 시작
- 양쪽 장비(IPSec peer)가 연결을 시작함 (Initiator와 Responder)
- 서로 지원 가능한 암호화 알고리즘, 인증 방법 등을 교환
- 예: AES-256, SHA-256, DH Group 14 등
1.2. Diffie-Hellman 키 교환
- 서로 키 정보를 주고받아 공유 비밀 키 생성 (이 키는 암호화에 사용됨)
- 이 과정은 공개키 기반이지만, 공유된 키는 외부에서 알 수 없음
1.3. 인증 수행
- 서로의 신원을 인증 (보통 다음 중 하나 사용):
- Pre-Shared Key (PSK): 양쪽에 같은 비밀번호 설정
- 디지털 인증서: PKI 기반
- EAP 방식: 사용자 인증용
1.4. IKE SA 생성 (Secure Association)
- 위 과정이 완료되면, 양쪽 장비 간에 암호화된 안전한 제어 채널 생성됨
Phase 2: IPSec Security Association 수립
목표: 실제 데이터를 암호화하기 위한 IPSec 터널 (IPSec SA)을 만들고, 트래픽을 전송할 준비를 마침
2.1. IPSec 프로토콜/정책 협상
- 어떤 프로토콜을 쓸지 협의
- ESP (Encapsulating Security Payload): 암호화와 인증 제공 (일반적으로 사용)
- AH (Authentication Header): 인증만 제공 (거의 안 씀)
- 어떤 암호화 알고리즘을 사용할지 결정 (예: AES, 3DES, SHA 등)
2.2. 세션 키 생성
- Phase 1에서 공유된 비밀 키를 기반으로 실제 트래픽을 암호화할 키 생성
2.3. IPSec SA 생성
- 양쪽 장비는 서로에게 암호화된 트래픽을 보낼 수 있는 IPSec 터널을 완성
이후: 데이터 통신
- 이제부터는 이 IPSec 터널을 통해 모든 데이터가 암호화되어 전송됨
- 클라이언트 또는 네트워크 장비는 인터넷을 통해 전송되지만 내부처럼 안전한 연결을 경험
요약: 단계별 체크리스트
| 단계 | 설명 | 키워드 |
|---|---|---|
| Phase 1 | 제어 채널 설정 | IKE, DH 키 교환, PSK/인증서, 암호화 |
| Phase 2 | 터널 설정 | ESP, IPSec SA, 트래픽 선택자 |
| 이후 | 암호화된 데이터 전송 | 실제 사용자 데이터 암호화 |
IKE는 어떤 방식으로 연결되나요?
기본 프로토콜
- IKE는 UDP 기반 프로토콜입니다.
- 즉, TCP가 아닌 UDP를 사용하며, 신뢰성 있는 연결을 보장하지는 않지만 빠른 통신이 가능합니다.
IKE가 사용하는 포트
| 포트 번호 | 프로토콜 | 설명 |
|---|---|---|
| UDP 500번 포트 | IKE (v1, v2 모두) | IKE SA를 설정하기 위한 초기 패킷 전송에 사용됨 |
| UDP 4500번 포트 | NAT-T (NAT Traversal) | NAT 환경에 있는 경우 ESP 대신 이 포트를 사용하여 UDP로 터널링 |
| ESP 프로토콜 (IP 프로토콜 번호 50) | 암호화된 실제 데이터 | IKE 설정 후 데이터 트래픽에 사용됨 (포트 X, IP 프로토콜 50) |
| AH 프로토콜 (IP 프로토콜 번호 51) | 인증 전용 (거의 안 씀) | 선택적 사용 |
연결 흐름 간단 요약
- UDP 500으로 IKE SA 협상 시작
- NAT 환경이면 → NAT-T가 감지되어 UDP 4500으로 포트 전환
- Phase 2까지 완료되면 → ESP(IP 프로토콜 50) 또는 AH(IP 프로토콜 51)로 암호화된 데이터 전송
NAT 환경 예시
만약 장비 뒤에 NAT가 있을 경우 (예: 공유기):
- 일반 ESP 패킷은 NAT 장비에서 막히거나 변조됨
- 이때 NAT-T (UDP encapsulation)이 작동하여 ESP를 UDP 4500 포트로 감싸서 전송함 → NAT 환경에서도 통신 가능
참고 예시 (방화벽 설정 시)
| 허용해야 할 포트/프로토콜 | 목적 |
|---|---|
| UDP 500 | IKE Phase 1/2 |
| UDP 4500 | NAT 환경에서의 IKE 및 ESP 트래픽 |
| ESP (IP 프로토콜 50) | 암호화된 데이터 (터널링된 트래픽) |
| AH (IP 프로토콜 51) | 인증용 데이터 (선택적) |
주의: ESP는 TCP/UDP 포트가 아니라 IP 프로토콜 번호 50입니다. 방화벽에서는 포트가 아닌 프로토콜 번호로 허용해줘야 합니다.