Virtual Private Network, 가상 사설망
여러 인트라넷과 개별 클라이언트를 인터넷을 통해 연결하는 사설 통신망
cf ) 인트라넷 : 그 조직에서만 사용 가능한 '사내망'으로 조직 내부에서만 접속이 가능
VPN은 네트워크A와 네트워크B가 실제로 같은 네트워크상에 있지만 논리적으로 다른 네트워크인것처럼 동작한다.
통신은 일반적으로 인터넷 사업자(ISP, Internet Server Provider)의 연결망을 통해서, 서버 PC사이에서 인터넷 사업자를 거쳐서 통신한다. (Client > KT > Server > KT > Client)
이러한 인터넷 사업자를 통해 클라이언트 PC가 인터넷에 연결돼있고, 그 사업자가 내 PC에 할당하는 IP 주소를 이용해 통신이 진행된다.
VPN 우회는 VPN 사업자의 내부 연결망을 사용하는 방식이다. 클라이언트는 VPN에 연결되어 있고, VPN을 통해 인터넷으로 연결을 시도한다.
VPN은 두 매체 사이를 VPN Tunnel
로 이어서, 두 매체간 전용 회선으로 연결하는 것과 논리적으로 동일한 효과를 낸다.
터널링 지원 프로토콜
프로토콜 | 특징 | 장점 | 단점 |
---|---|---|---|
PPTP | 전화 접속 네트워크에 사설 통신망을 구축하는 VPN용 표준 프로토콜로, 캡슐화 및 보안을 한다. | 가장 대중적이고, 속도가 가장 빠르며 설치가 쉽다. | 보안성이 떨어진다. |
L2TP 및 L2TP/IPSec | 다른 VPN 프로토콜과 달리 트래픽에 개인 정보 또는 암호화를 제공하지 않아서, 일반적으로 전송 전에 데이터를 암호화하여 보안을 제공하는 IPSec 프로토콜과 함께 구현된다. | PPTP만큼 쉽고 빠르다 | UDP 500 포트를 사용하므로 NAT 방화벽에 의해 차단되기 쉽다. |
OpenVPN | 상대적으로 새로운 오픈소스 기술로, SSLv3/TLSv1 프로토콜과 OpenSSL 라이브러리를 다른 기술과 함께 사용하여 사용자에게 안정적이고 강력한 VPN 솔루션을 제공한다. | 대부분의 방화벽을 우회할 수 있고 안전하며, 구성이 용이하고 빠르다. | 모든 플랫폼에서 지원되는 것이 아니며, L2TP/IPSec과 PPTP에 비해 설정이 까다롭다. |
SSTP | MS사의 독점 소유로, 다른 os에서도 사용될 수 있지만 여전히 주로 Windows 전용 플랫폼이다. 또한 SSLv3을 사용해 NAT 방화벽 문제를 방지한다. | 안정적이고 쉽게 사용할 수 있으며, 대부분의 방화벽을 우회할 수 있고 안전하다. | 백도어 검사가 불가능하며 Windows 전용 플랫폼에서만 작동한다. |
IKEv2 | IPSec 기반 Tunneling Protocol로 Cisco와 MS에 의해 개발되었다. | 다양한 os와 호환이 가능하며, 안전하고 빠르며 네트워크 변경이 유연하다. | 많은 플랫폼에서 지원하지 않으며, 서버측에서 구현하기 까다롭다. |
VPN은 어디까지나 단말기와 VPN 서버 사이의 통신을 암호화하는 기술일 뿐, 익명성을 보장해주진 않는다.
VPN은 말 그대로 가상 사설망이기 때문에 익명화는 오히려 사설망 보안에 취약해지는 요소
Virtual Private Cloud
독립적인 가상의 네트워크 공간으로 사용자의 설정(서브넷 생성, 라우팅 테이블, 네트워크 게이트웨이 구성 등)에 따라 자유롭게 구성할 수 있는 공간
VPC를 사용하지 않을 경우, 여러 인스턴스들과 인터넷이 복잡하게 연결되어 시스템 복잡도를 끌어올린다.
VPC별로 네트워크를 구성하여 각각의 독립된 네트워크처럼 작동하게 한다.
VPC의 아이피 범위를 RFC1918이라는 사설 아이피 대역에 맞추어 구축
한번 설정된 아이피 대역은 수정할 수 없으며 각 VPC는 하나의 리전에 종속된다.
각각의 VPC는 완전히 독립적이기 때문에, VPC간 통신은 VPC 피어링 서비스를 통해 구현
서브넷이란 앞서 설정한 VPC를 잘게 쪼개는 과정이라고 생각할 수 있습니다. VPC 단 안에서 더 많은 네트워크 망을 구성하기 위해 설정하는 단계입니다.
서브넷은 VPC보다 더 작은 단위이기 때문에 서브넷 마스크가 더 높게되고 아이피범위가 더 작은값을 갖게됩니다. 서브넷을 나누는 이유는 더 많은 네트워크망을 만들기 위해서입니다.
서브넷은 가용 영역이라고 하는 Availability Zone(AZ) 여러 개에 걸쳐서 설정할 수 없으며 하나의 가용 영역 안에서 존재해야 한다는 특징을 가지고 있습니다.
이렇게 생성한 서브넷 안에 AWS의 여러 리소스들(RDS, EC2등)을 위치시킬 수 있습니다.
네트워크 요청이 발생하면 데이터는 라우터로 향하게 되고 라우팅 테이블에 따라 네트워크 요청이 작동
기본적으로 VPC에 기본 Route table이 존재하지만 서브넷마다 다른 Route table을 할당할 수 있습니다. 또한, 하나의 Route table을 여러 서브넷과 연결하는 것도 가능합니다.
Subnet1의 Route table은 10.0.0.0/16에 해당하는 네트워크 트래픽을 로컬로 향하도록 설정되어 있습니다. 반대로 말하면 그 이외의 트래픽은 허용되지 않는다는 것을 의미합니다.
Subnet2의 Route table은 10.0.0.0/16에 해당하는 네트워크 트래픽은 로컬로 보내지지만 그 외의 모든 트래픽에 대해서는 인터넷과 연결시켜주는 관문이라고 할 수 있는 인터넷 게이트웨이(Internet Gateway)로 향하도록 설정한 모습입니다.
서브넷과 서브넷마스크에 대한 설명
Network Access Control List(NACL)과 Security Group(보안 그룹)은 방화벽과 같은 역할을 하며 인바운드 트래픽과 아웃바운드 트래픽 보안 정책을 설정할 수 있습니다.
프라이빗 네트워크가 외부에서 요청되는 인바운드는 필요없더라도 인스턴스의 펌웨어나 혹은 주기적인 업데이트가 필요하여 아웃바운드 트래픽만 허용되야할 경우가 있다.
NAT 서비스 : Private 서브넷이 인터넷과 통신하기 위해서는 Private 서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 소스 IP 주소를 변환해 인터넷 게이트웨이로 트래픽을 보냄
NAT Gateway 또는 NAT 인스턴스는 Public 서브넷에서 동작해야 하며, Private 서브넷에서 외부로 요청하는 아웃바운드 트래픽 받을 수 있도록 Route table을 설정합니다.
NAT(네트워크 주소 변환)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다.
NAT를 쓰는 이유는 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위한 경우가 대부분이다. 예를 들어 인터넷 회선을 하나 개통하고 인터넷 공유기를 달아서 여러 PC 를 연결하여 사용 하는데, 이것이 가능한 이유가 인터넷 공유기에 NAT 기능이 탑재되어 있기 때문이다.
NAT는 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 주소를 다르게 유지할 수 있기 때문에 내부 네트워크에 대한 어느 정도의 보안 기능을 한다. 방화벽과 비슷한 기능이다.
https://namu.wiki/w/가상 사설망
https://adguard-vpn.com/ko/what-is-vpn/how-does-vpn-work.html
https://velog.io/@younghyun/VPN이란
https://luv-n-interest.tistory.com/1072
https://blog.kico.co.kr/2022/03/08/aws-vpc/
https://medium.com/harrythegreat/aws-가장쉽게-vpc-개념잡기-71eef95a7098
https://namu.wiki/w/서브넷 마스크
https://nordvpn.com/ko/blog/what-is-subnet-mask/
https://namu.wiki/w/NAT
https://namu.wiki/w/게이트웨이
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=elvmffj17006&logNo=221121632008