1.GRE 터널링
1)Host_A(192.168.1.10/24)
- Dst: Host_B(사설IP: 192.168.2.10/24)
- Src: Host_A(사설IP: 192.168.1.10/24)
2)Router_A(GRE터널링: int tunnel 0, 172.16.0.1/30, src 222.222.1.10/24, dst 222.222.2.10/24)
- Dst:Router_B(공인IP: 222.222.2.10/24)[Dst: Host_B(사설IP: 192.168.2.10/24)]
- Src:Router_A(공인IP: 222.222.1.10/24)[Src: Host_A(사설IP: 192.168.1.10/24)]
3)Router_B(GRE터널링: int tunnel 0, 172.16.0.2/30, src 222.222.2.10/24, dst 222.222.1.10/24)
- Dst:Router_B(공인IP: 222.222.2.10/24)[Dst: Host_B(사설IP: 192.168.2.10/24)]
- Src:Router_A(공인IP: 222.222.1.10/24)[Src: Host_A(사설IP: 192.168.1.10/24)]
4)Host_B(192.168.2.10/24)
- Dst: Host_B(사설IP: 192.168.2.10/24)
- Src: Host_A(사설IP: 192.168.1.10/24)
패킷구조 > FRAME = [ETHERNET_Header] [IP_Header(222.222.x.x)] [GRE_Header] [IP_Header(192.168.x.x)] [TCP_Header] [Payload]
2.IPSec터널링
단순히 GRE 터널링을 통한 VPN 사용은 기밀성에 취약하다.
IPSec을 사용함으로써 기밀성, 무결성(HMAC)을 보장할 수 있다.
IPSec 동작에는 3개의 터널이 필요하다.
첫번째 터널은 암호화에 필요한 키교환 터널이고
두번째와 세번째 터널은 암호화된 데이터(트래픽)가 전송되는 터널이다.
1) IKE 1단계
1-1) 1단계 키교환 협상(Main-Mode)
VPN_A : 보안정책리스트 전달
VPN_B : 보안정책 응답
VPN_A : 키정보 공유(Diffie-Hellman 알고리즘)
VPN_B : 키정보 공유(Diffie-Hellman 알고리즘)
VPN_A : IPSec 피어 인증 시작
VPN_B : IPSec 피어 인증 응답
양방향 보안채널생성(ISAKMP SA) : 키 정보 교환(암호화종류, 해시종류, 키정책등 교환)
1-2) 1단계 키교환 협상(Aggressive-Mode)
VPN_A : 보안정책(키/인증정보 포함) 전달
VPN_B : 보안정책 응답
VPN_A : 암호화 해시 정보 전달
양방향 보안채널생성(ISAKMP SA) : 키 정보 교환(암호화종류, 해시종류, 키정책등 교환)
2) IKE 2단계
양방향 보안채널생성(ISAKMP SA) 후 트래픽 암호화를 위한 보안터널생성(IPSec SA)
보안터널(IPSec SA)은 단방향 터널이다. 그러므로 송신 IPSec 터널과 수신 IPSec 터널이 생성된다.
패킷의 암호화에는 AH(Athentication Header) 프로토콜과 ESP(Encapsulating Security Payload) 프로토콜이 사용된다.
- AH : 암호화를 제공하지 않고 패킷 조작 여부 같은 확인 작업만 한다. (무결성)
- ESP : 상위 계층 정보인 페이로드의 암호화를 진행한다. (일부 무결성+기밀성)
2-1) AH 터널모드 패킷구조 > [IP_Header(222.222.x.x)] [AH_Header] [IP_Header(192.168.x.x)] [TCP_Header] [Payload]
- 인증 구간 > [IP_Header(222.222.x.x)] [AH_Header] [IP_Header(192.168.x.x)] [TCP_Header] [Payload]
2-2) AH 전송모드 패킷구조 > [IP_Header(192.168.x.x)] [AH_Header] [TCP_Header] [Payload]
- 인증 구간 > [IP_Header(192.168.x.x)] [AH_Header] [TCP_Header] [Payload]
2-3) ESP 터널모드 패킷구조 > [IP_Header(222.222.x.x)] [ESP_Header] [IP_Header(192.168.x.x)] [TCP_Header] [Payload] [ESP_Trailer] [ESP_Auth]
- 인증 구간 > [ESP_Header] [IP_Header(192.168.x.x)] [TCP_Header] [Payload] [ESP_Trailer] [ESP_Auth]
- 암호화 구간 > [IP_Header(192.168.x.x)] [TCP_Header] [Payload] [ESP_Trailer] [ESP_Auth]
2-4) ESP 전송모드 패킷구조 > [IP_Header(192.168.x.x)] [ESP_Header] [TCP_Header] [Payload] [ESP_Trailer] [ESP_Auth]
- 인증 구간 > [ESP_Header] [TCP_Header] [Payload] [ESP_Trailer]
- 암호화 구간 > [TCP_Header] [Payload] [ESP_Trailer]
2-5) AH+ESP 전송모드 패킷구조 > [IP_Header(192.168.x.x)] [AH_Header] [ESP_Header] [TCP_Header] [Payload] [ESP_Trailer] [ESP_Auth]
- 인증 구간 > [IP_Header(192.168.x.x)] [AH_Header] [ESP_Header] [TCP_Header] [Payload] [ESP_Trailer] [ESP_Auth]
- 암호화 구간 > [TCP_Header] [Payload] [ESP_Trailer]
참고 : IP Protocol Number - icmp=1, igmp=2, tcp=6, udp=17, gre=47, eigrp=88, ospf=89
GRE over IPSec VPN : 인터넷을 통한 본사와 지점간의 통신에 사용
SSL VPN : 집에서 회사간 통신에 사용
'Analysis > Network' 카테고리의 다른 글
Tcpdump usage examples (0) | 2016.04.26 |
---|---|
HTTPS와 SSL 이해 (0) | 2016.04.15 |
Next Squence Number (0) | 2016.03.24 |