#작성중 > [!info] **VPN로 들어가기 전, PN에 대해서** > * [[PN (Private Network)]] # **개요** ### **VPN** 인터넷과 같이 여러 사람이 공용으로 사용하는 [[공중망 (Public Network)|공중망]]을 **특정인이나 조직이 ==단독==으로 사용하는 사설망처럼 동작**시키는 기술의 집합체. 공중망에 여러 기술을 적용해서 다음과 아래의 목적을 이루는 기술이다 1. 인증 - 통신의 상대방을 확인하는 것을 인증이라고 함 - 이를 위해서 **PSK** 혹은 **디지털 인증서**를 사용하는 방식이 있음 2. 기밀성 (암호화) - 송수신하는 데이터의 내용을 다른 사람이 알지 못하게 암호화시키는 것을 **기밀성**이라고 함. - 제일 많이 사용하는 것은 DES, 3DES, AES, RC4 3. 무결성 (변조 방지) - 송수신 데이터를 도중의 공격자가 변조하는 것을 방지하는 기능 - 많이 사용하는 무결성 확인 방식으로는 MD5, SHA-1이 있다. 4. 재생방지 - 재생방지는 공격자가 자신의 패킷을 도중에 끼워넣는 것을 방지하는 기능 - 패킷의 순서번호나 도착시간을 확인해서 사전에 지정된 범위의 것들만 받아들임 ### VPN 연결 VPN 통신을 하려는 두 Site (Secure Gate)끼리 Tunneling 한다. 암호화를 어떻게 할까? 알고리즘을 뭘 쓸까? 키 길이를 얼마나 할까? 어떤 키를 쓸까? 얼마 주기로 바꿀까? 이러한 협상??? --- ## VPN의 목적 #### 1. 사설망 구축 직접 망을 설치해서 사설망을 구축할 수도 있지만, 이미 인터넷에 연결되어 있는 채로 적절한 기능을 잘 사용해서 특정 단말기들끼리 사설망을 구축하고 있는 형태로 만들 수 있다. 가상화하는 것. 예전에는 어떤 불편이 있었느냐. 보안이 중요한 회사가 있다. 본사와 지사 망을 잇는 전용 회로를 진짜로 설치했어야 했는데, 비용이 너무 많이 든다. 그렇다고 이미 설치되어 있는 회선을 따로 자기들만 쓰게 거래하기에도 돈이 너무 많이 들었다. 이를 해결하 수 있는게 지사와 본사에 VPN 라우터만 두고 얘네를 인터넷에 연결 후 라우터에서 VPN 설정을 하면 진짜로 설치된 전용 회선 없이, 이미 설치된 회선에서, 마치 자기들만 쓰는 전용회선을 가진거처럼 본사와 지사를 연결할 수 있다. 이를 site-to-Site VPN이라고 한다 코로나 시대로 재택근무를 많이 했다. 그리고 출장을 나가는 경우도 생각해보자. 인터넷에 사원의 컴퓨터를 연결시킨 다음 사내망에 접속하기 위해 VPN을 사용하기도 하는데 이같은 경우 Remote Access VPN이라고 한다. 네트워크 자체가 분리되어 있어 보안이 보장된다는 전용 회선의 특징을 보안이 보장되지 않는 공중망 위에서 구현하기 위해 VPN의 중요 기술 중 하나로서 암호화가 포함된다. 또 허용된 사용자만이 전용 망에 접속할 수 있도록 접속할 때 인증서 제출이나 로그인 등 인증을 요구하도록 구현한다. #### 2. 우회 본래 VPN의 목적은 가상의 사설망을 구축하기 위해 만들어진 것이다. 그런데 구축해두고 보니 VPN은 우회의 기능 또한 한다. 여기서는 VPN 서버라는 개념이 등장한다. 일본에 VPN 서버를 놓고 한국에 있는 사용자는 모든 트래픽을 일본의 VPN 서버를 거쳐 나가도록 설정한다. 이러면 사용자는 분명 한국에 있지만 목적지 서버가 볼때는 일본에 있다고 보인다. 일반적인 plain HTTP 프록시와는 달리 사용자 컴퓨터와 VPN 서버 간의 연결은 암호화된다. 그래서 사용자가 거주하는 국가, 소속 단체, 통신사 등이 네트워크의 트래픽을 감청하거나 사이버 검열을 실시해도 최소한 사용자 컴퓨터로부터 VPN 서버까지의 구간에서는 암호화된 내용을 열어볼 수 없으므로 회피할 수 있다. VPN은 3계층의 네트워크 레벨이고 프록시는 7계층이다. *** ## 용어 정리 통신망 사설망과 공중망 사설망 Private Network. 개인, 특정 기업의 사적인 목적 등을 위한 전용 회선을 설치하고 사설 IP 주소를 부여하여 만든 근거리 통신망(LAN). 인트라넷 공중망 Publick network. 모두가 이용할 수 있는 네트워크. 주로 인터넷. ?? 인터넷 말고 공중망이 더 있나? 가상의 의미 인트라넷을 구축할 때는 보통 해당되는 컴퓨터만 연결하고 제 3자가 접근하지 못하도록 한다. *근데 회선이 없는 지역인 경우 망 자체에 접근을 할 수 없으므로 회사의 규모 천문한적 어쩌고*. 따라서 확장성이 뛰어난 인터넷을 인트라넷처럼 사용할 수 있도록 잘 구성한 것인데 실제 회선을 깔고 필요 컴퓨터만 연결하는 물리적인 것을 가상화 시켜서 인터넷 위에다가 구현 시켰다는 것 VPN 라우터 공중망에만 연결된 단말기는 인트라넷에 접근할 수 없음. 왜냐하면 인트라넷이란 완전히 망에서 분리된 것인데 이를 이어주는 브리지 역할을 해주는 것이 VPN 라우터다. VPN 라우터는 해당 단말기가 진짜 인트라넷에 연결되어 있는 것처럼 단말기와 인트라넷 사이를 중계해주는 역할을 한다. 단말기가 VPN 라우터를 통해 인트라넷에 접속한 경로를 보면 인터넷/인트라넷 상에는 전부 라우터까지의 접속만 수행된 것으로 보인다. 터널링 인터넷 단말기에서 라우터에 VPN 프로토콜 중 하나를 이용하여 연결을 시도한다. 연결시에는 비밀번호 같은 자격 증명이 필요한 경우가 보통이며 성공 시에는 단말기와 VPN 라우터 사이에 암호화된 연결이 형성되게 된다. . --- ## 오해 유니콘 https 등과 같이 단순한 Https SNI 검열을 우회해주는 것은 VPN이라고 속하지 않는다. 경찰의 추적이나 인터넷 검열을 피하는 도구로 알려져 있는데 이런 것 중의 일부는 프록시 서버라고 불러야 한다. VPN은 익명성을 위한 기술이 아니다. 어디까지나 단말기와 VPN 서버 사이의 통신을 암호화하는 기술. 얼굴을 IP주소라고 할 때, VPN이라는 것은 가면을 쓰는 것이다. 얼굴이 보이지 않으니 완벽하다고 생각할 수 있지만, 사용자를 특정할 수 있는 것이 꼭 얼굴만 있지는 않다. 체형, 헤어스타일, 목소리, 옷, 신발 등 꼭 얼굴이 아니더라도 사용자를 특정할 수 있는 것은 상상 이상으로 많다. 가족과 친구는 가면을 쓰고 있다고 해서 지인을 못 알아보지 않는다. 이는 얼굴 외에도 사람을 특정할 수 있는 것들이 있다는 것을 뜻한다. 반면 토르 브라우저는 얼굴을 세겹의 가면으로 가려주는 것은 물론 체형, 헤어스타일, 목소리, 옷, 신발까지 모두 가려준다. VPN이 노 로그라도 VPN서버의 데이터센터는 로그를 남길 수 있기 때문에 VPN으로 정말 위험한 행동은 하면 안된다. --- ## 잡담 * VPN 회사들이 체험판 VPN에 접속한 로그를 기록했다가 광고 업체나 수사 기관에 바친다는 내용은 부분적으로 사실이다. * VPN 서버에 대한 가장 큰 오해는 VPN을 운영하는 기업이 전세계에 개별적인 서버를 소유하고 있다고 착각하는 것이다. 하지만 대부분의 VPN 서버는 AWS같은 IaaS 데이터 센터의 서버 일부를 임차한 뒤 VPN 서버로 구성을 한다. *** * 연결 방식 * Site-to-Site * Remote Access * 보안 및 암호화 방식 (전송 담당) * IPsec * SSL * MPLS * 터너링 프로토콜 * PPTP * L2TP * GRE * WireGuard * 사용 목적 * 기업용 * 개인용 * 클라우드 기반 그외? * VXLAN * DMVPN * OpenVPN * SOCKS5 * VPN Proxy * Shadowsocks * ZTNA --- ## VPN 터널링 프로토콜 ### PPTP ### L2TP ### GRE ### WireGuard ### VXLAN ### SSL --- ## 보안 방식 ### IPsec ### SSL ### MPLS --- ## VPN 연결 방식 ### Site-to-Site ### Remote Access --- ## VPN 기술 스택 / 종류 ### [[IPsec VPN]] #### 순수 IPsec VPN #### [[GRE IPsec VPN]] #### DMVPN #### IPsec VTI #### Easy VPN #### Flex VPN #### GET VPN ### SSL VPN ### PPTP VPN ### L2TP VPN ### [[MPLS VPN]] --- ## Proxy와 유사 기술 ### VPN Proxy ### SOCKSS ### Shadowsocks ### ZTNA --- ## VPN 연결 방식 ### Remote Access VPN ``` [내 폰/PC] --[공용망]--> [VPN 서버] --[인터넷]--> [구글 등] ▲ ↓ └<-------- 응답도 이 경로 --------┘ ``` 사용자는 VPN 서버와 암호화된 터널을 맺음 (IPsec, SSL, WireGuard 등) 그 이후 모든 트래픽은 VPN 서버를 통해 프록시처럼 우회 트래픽은 VPN 서버에서 복호화되어 외부 인터넷으로 나감 VPN 서버는 중계자 역할 ### Site-to-Site VPN 라우터 간에 **Tunnel 인터페이스(GRE/IPsec 등)** 가 구성됨 사용자는 전혀 VPN을 의식하지 않고 내부망 쓰듯이 통신 네트워크 대 네트워크 연결이므로 조직 단위 보안 연결 ``` [원래 패킷] src = 192.168.1.10 dst = 192.168.2.20 ↓ 캡슐화 (GRE/IPsec/OpenVPN 등) [VPN 패킷] src = 1.2.3.4 dst = 5.6.7.8 Payload = 위의 원래 패킷 (암호화 or 비암호화) ``` 라우터 ↔ 라우터 --- ## 터널링 기술 분류 개요 > ※ OSI 7계층 기반 | 기술 | 계층 | 암호화 여부 | 주용도 | | -------------- | -------- | ------- | --------------- | | **PPTP** | L2 | 있음 (약함) | 과거 사용, 현재 비권장 | | **L2TP** | L2 | 없음 (단독) | IPsec과 조합해 사용 | | **L2TP/IPsec** | L2+L3 | 있음 | 이중 캡슐화 | | **IPsec** | L3 | 있음 | 표준 보안 VPN | | **GRE** | L3 | 없음 | 단순 캡슐, 암호화 없음 | | **OpenVPN** | L4 (SSL) | 있음 | 소프트웨어 기반 보안 VPN | | **WireGuard** | L3 | 있음 | 신세대 경량 VPN | | **MPLS VPN** | L2.5 | 경로만 보호 | 서비스 제공자용 | --- ## 각 계층의 터널링 특징 ### L2 터널 (데이터링크 계층) * **대표 기술**: PPTP, L2TP, L2TPv3 * **캡슐화 대상**: ==Ethernet Frame 전체== (MAC 포함) * **L2 수준의 터널링 목적**: 원격지에서도 로컬 LAN처럼 작동 L2 계층 VPN은 VLAN 정보나 비IP 트래픽까지 통째로 전달할 수 있다는 게 특징 > 이더넷 프레임 형태: `[MAC 헤더][IP 헤더][데이터]` > L2TP 캡슐화 후 형태: `[UDP 헤더][L2TP 헤더][위 프레임]` ### L3 터널 (네트워크 계층) * **대표 기술**: GRE, IPsec, IP-in-IP * **캡슐화 대상**: ==IP 패킷 (L3 헤더 포함)== * **L3 수준의 터널링 목적**: 지사 ↔ 본사 Site-to-Site 연결에 최적 GRE은 멀티프로토콜 지원 (IPv4, IPv6, multicast 등) > **원래 패킷** = `IP(src=192.168.1.1, dst=192.168.2.1)` > **GRE 캡슐화 후** = `[IP 헤더][GRE 헤더][원래 패킷]` > **IPsec 추가시**= `[IP][ESP][GRE][원래 IP]` ### L4 기반 터널 (전송 계층) - **대표 기술**: OpenVPN, SSL VPN - **캡슐화 대상**: TCP/UDP 세션 기반 전송 * **L4 수준의 터널링 목적**: 방화벽 우회에 유리 (SSL/TLS 사용, TCP 443 등) 프로토콜 유연성 높음 상대적으로 느릴 수 있음 ### L2.5 MPLS (Multiprotocol Label Switching) 캡슐화 대상: IP 대신 Label 사용 VRF와 결합해 VPN 경로를 분리 일반 사용자에게는 보이지 않지만, ISP 내부 백본에서는 핵심 기술 | 계층 | 설명 | | -------- | --------------------------- | | **L2** | 프레임 단위로 캡슐화. VLAN, MAC 등 유지 | | **L3** | IP 패킷 단위로 캡슐화 | | **L4** | TCP/UDP 포트를 이용한 전송 | | **L2.5** | IP도 아닌 Label 기반 전송 | ## 사용 목적 IP 주소에는 사용자의 위치 및 검색 활동에 대한 정보가 포함되어 있다.? 인터넷의 모든 웹 사이트는 쿠키 및 유사한 기술을 사용해서 이 데이터들을 추적한다? 이 데이터가 뭔데? 사용자가 웹 사이트를 방문할 때마다 웹 사이트에서는 사용자를 식별할 수 있다. VPN 연결은 인터넷에서 익명을 유지하기 위해 IP 주소를 숨겨버린다. VPN 연결은 데이터 패킷을 인터넷을 통해 서드 파티에 전송하기 전에 컴퓨터에서 다른 원격 서버로 리디렉션 한다. 다음은 VPN 기술의 핵심 원칙이다. * 터널링 프로토콜 * VPN은 기본적으로 로컬 컴퓨터와 수천 마일 떨어진 위치에 있는 다른 VPN 서버 사이에 보안 데이터 터널을 생성 * 온라인 상태가 되면 이 VPN 서버가 모든 데이터의소스가 됨? * * 암호화 * 터널로 데이터를 보내기 전에 IPsec과 같은 프로토콜은 데이터를 스크렘블해버림 * 기업 간 사용 VPN 사이트 간 VPN 서로 다른 인트라넷을 원할하고 안전하게 연결해줌 서로 다른 지리적 위치에 있는 직원들이 리소스를 공유할 수 있게 해줌 IPsec을 사용하는 것이 일반적? 클라이언트 VPN 또는 개방형 VPN SSL VPNA 공공 네트워크(대표적으로 인터넷)를 통해 사설 네트워크처럼 안전하게 연결할 수 있도록 만든 기술? 즉, 인터넷 같은 불특정 다수의 통신 경로를 잘 이용해서 내 전용 사설망처럼 비공개 통신 채널을 만들어 주는 것?? PN 부터 출발해보자. 물리적 통제가 가능한 수준의 네트워크