[ 네트워크 ] VPN(Virtual Private Network)과 IPsec (Internet Protocol Security)

2026. 1. 7. 21:42·공부기록/Network

 

 

0. VPN 이란?

VPN은 공용 네트워크 등을 이용해서 안전한 사설 네트워크를 구축하는 기술이다.

VPN을 통해서 원격에서 내부 네트워크에 접속하거나 보안이 강화된 통신을 수행할 수 있게된다.

​

[VPN으로 할 수 있는 것]

VPN을 이용하면 인터넷을 통해서 안전하게 데이터를 전송할 수 있고,

원격 근무나 외부 접속을 지원할 수 있다.

또 공용 wi-if 사용 시에도 보안을 강화할 수 있으며,

기업 간 네트워크 연결을 할 수 있다.

​

[VPN 주요 개념과 VPN의 유형]

VPN의 주요 개념은 터널링/암호화/인증 등이 있으며,

VPN의 유형에는 원격 액세스 VPN과 사이트 간 VPN이 있다.

​

1) 원격 액세스 VPN (Remote Accesss VPN)

외부에서 private 서브넷에 접근이 가능한 것으로,

개별 사요자가 인터넷을 통해서 기업이나 조직의 내부 네트워크에 안전하게 접속할 수 있도록 하는 VPN 유형이다.

​

(포트포워딩과 Static NAT도 외부에서 내부로 접근 가능한 방법이고,

VPN이나 포트포워딩, Static NAT 모두 기본적으로는 암호화를 제공하지 않는다.)

​

2) 사이트 간 VPN (site-to-site VPN)

기업이나 조직 간의 여러 네트워크를 인터넷을 통해 안전하게 연결하는 방식이다.

일반적으로 두 가지 방식으로 나뉜다.

  • 인트라넷 VPN : 동일 조직 내 지사 간의 네트워크 연결에 사용된다.
  • 엑스트라넷 VPN : 서로 다른 조직 간의 네트워크 연결에 사용된다.

+ AWS 서버와 Onpremise 서버를 연결할 때도 이 방식이 사용된다.

 

 

1. VPN 프로토콜

VPN은 다양한 프로토콜들이 있고,

프로토콜 마다 적용되는 네트워크 레이어와 보안의 범위가 다르다.

​

1) PPTP (Point to Point Tunneling Protocol)

Layer2에서 사용되고, 설정이 간단하고 속도가 빠르다.

하지만 보안성이 낮아서 현재는 거의 사용되지 않는다.

​

2) L2TP/IPsec (Layer2 Tunneling Porotol with IPsec)

이름에 써 있듯이 Layer2에서 사용되고, 데이터 무결성과 보안성을 강화한다.

속도가 다소 느릴 수 있다.

​

3) OpenVPN

오픈 소스 기반으로 높은 보안성과 유연성을 제공한다.

다양한 운영체제에서 지원된다.

​

4) IKEv2/IPsec (Internet Key Exchange version2)

모바일 환경에서 안정적인 연결 유지가 가능하고

보안성이 높고 성능이 좋다.

​

등이 존재하고, VPN을 구현하는 가장 대표적인 방법인 IPsec 대해서 자세히 알아보자.


2. IPsec (Internet Protocol Security)

IPsec은 ​보안과 관련된 여러가지 프로토콜을 모아놓은 프레임워크 같은 것을 의미한다.

(하나의 프로토콜을 뜻하는게 아니라, 여러 개의 보안 프로토콜과 기술이 모여 있는 프로토콜 모음집이다!)

​

IPsec은 3계층(네트워크 계층)에서 작동하는 암호화 프로토콜로

위의 7계층부터 내려온 데이터 전체를 암호화하여 보호한다.

그래서 HTTP, FTP, SMTP 등의 종류와 상관 없이 모든 트래픽을 투명하게 보호할 수 있다는 장점이 있다.

​

​

[ IPsec이 보장하는 4가지 핵심 보안 기능 ]

#기밀성(Confidentiality) - #무결성(Integrity) - #인증(Authentication) - #재전송 방지(Anti-reply)

위의 4가지 기능을 IPsec은 보장한다.

​

1) 기밀성 (Confidentiality)

데이터를 암호화해서 인가되지 않은 사람이 내용을 보지 못하게 하는 것으로

AES, 3DES와 같은 암호화 기술을 이용한다.

​

2) 무결성(Integrity)

데이터가 조작되지 않음을 보장하는 것으로

HMAC-SHA, HMAC-MD5와 같은 암호화 기술을 이용한다. (HMAC은 HashMac이다)

​

3) 인증(Authentication)

통신하는 사용자(호스트/노드/장치 등..)가 신뢰할 수 있는 대상인지 확인하는 것으로

Pre-Shared Key(공유키)나 RSA(디지털 서명) 등의 암호화 기술을 이용한다.

​

4) 재전송 방지(Anti-Reply)

이미 전송된 패킷을 가로채서 똑같이 다시 보내는 공격(Replay Attack)을 Sequence Number를 이용하여 차단한다.


2-2. IPsec의 주요 구성요소

앞서 언급했듯이 IPsec은 여러 프로토콜로 구성되어 있고,

필요로 하는 보안 서비스의 종류와 네트워크 구성방식 (동작모드)에 따라 유연하게 설정하여 사용할 수 있다.

ESP와 AH로 무엇을 보호할지 정하고, 전송모드와 터널모드로 어디까지 보호할지를 정한다고 보면 된다.

​

[ 보안 서비스 종류 (보안프로토콜) ]

IPsec은 두 가지 주요 프로토콜인 AH와 ESP를 사용한다.

(하지만 AH는 암호화를 제공하지 않아서 ESP를 보편적으로 사용한다.)

​

1. AH (Authentication Header)

데이터의 무결성과 인증, 재전송 방지를 보장하지만, 암호화를 제공하지는 않는다.

그래서 데이터의 변경/조작 여부를 확인할 수 있다.

IP 프로토콜 번호 51을 사용한다.

​

2. ESP (Encapsulating Security Payload)

데이터의 암호화 무결성, 인증, 재전송 방지 모두 보장한다.

IP 프로토콜 번호 50을 사용한다.

​

[ IPsec의 네트워크 구성방식 (동작모드) ]

트래픽의 보호 범위에 따라서 전송 모드와 터널 모드로 나뉜다.

모드
설명
사용 예시
전송 모드 (Transport Mode)
원본 IP 헤더 유지, 페이로드(데이터)만 보호
호스트 간 통신 보호 (예: SSH 보안)
터널 모드 (Tunnel Mode)
전체 IP 패킷을 캡슐화하여 새 IP 헤더 추가
VPN, 사이트 간 통신

 

1. 전송 모드 (Host-to-Host)

 

: IP 헤더를 제외하고, 페이로드를 기준으로 보호한다.

: 이걸 하려면 공인 ip를 가지고 있어야 한다. → IPv6에 적합하다. (그래서 IPv6 보안이 좋은 것이다.)

[원본 패킷]   | IP 헤더 | TCP/UDP 데이터 |
[AH 적용]    | IP 헤더 | AH | TCP/UDP 데이터 |
[ESP 적용]   | IP 헤더 | ESP Header | 암호화된 데이터 | ESP Trailer |
>> 원본 헤더는 그대로 유지된다.

 

​

2. 터널 모드 예시 (Site-to-Site VPN)

: 원본 IP 패킷을 캡슐화하고, 새로운 IP 헤더를 사용한다.

: 내부 네트워크 구조를 숨기고, 패킷 내용을 보호하기 위해 사용한다.

: 딱 암호화가 필요한 부분만 터널링을 쓴다.

(터널 구간에 새로운 헤더를 붙여서, 전체가 암호화 되었다가 풀린다.)

: 보안적으로 얘가 더 좋다.

[원본 패킷]  
           | 원본 IP 헤더 | TCP/UDP 데이터 |

[ESP 적용 터널모드]  
>> 원본 헤더에 새로운 헤더가 붙어서 원본헤더부터 쭉--- 암호화 된다.

| 새 IP 헤더 |
|====================  ESP 터널  ====================|
| ESP Header |
| 암호화(
    원본 IP 헤더
    + TCP/UDP 데이터
    + ESP Trailer
) |
| ESP Auth |
|====================================================|

 

 

저작자표시 비영리 변경금지 (새창열림)

'공부기록 > Network' 카테고리의 다른 글

[ 네트워크 ] 라우팅 | 정적 라우팅 | 동적 라우팅  (0) 2026.02.09
[ 네트워크 ] ACL (Access Control List)  (0) 2026.01.28
[ 네트워크 ] NAT (Network Address Translation)  (0) 2026.01.27
'공부기록/Network' 카테고리의 다른 글
  • [ 네트워크 ] 라우팅 | 정적 라우팅 | 동적 라우팅
  • [ 네트워크 ] ACL (Access Control List)
  • [ 네트워크 ] NAT (Network Address Translation)
Lyv
Lyv
  • Lyv
    inimizi
    Lyv
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 이것저것 도전 (5)
        • 공모전 (0)
        • 우테코 (5)
      • PS (16)
        • 삼성기출 (2)
        • LeetCode & Codility (4)
        • Programmers (6)
        • BaekJoon (4)
      • 공부기록 (33)
        • CS (16)
        • 영어 (1)
        • iOS (1)
        • 프로그래밍 언어 (0)
        • Web (4)
        • Linux (1)
        • Docker (2)
        • Network (4)
        • IaC (3)
      • 프로젝트 경험 (0)
      • DailyLog (4)
      • 취준Log (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ansible
    컨테이너
    FastAPI
    프로그래머스
    디자인패턴
    DP
    이미지
    우테코
    C++
    운영체제intro
    코테
    우테코프리코스
    정처기실기
    프리코스회고
    정처기
    os
    백준
    IAC
    자동화
    c언어
    대학생
    문제풀이
    PS
    네트워크
    운영체제
    리눅스
    스케줄링
    공부기록
    til
    manifest
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Lyv
[ 네트워크 ] VPN(Virtual Private Network)과 IPsec (Internet Protocol Security)
상단으로

티스토리툴바