본문 바로가기
Linux

리눅스 :: VPN(Virtual Private Network) 동작 원리와 실습

by Emo_clew 2023. 10. 10.
반응형

VPN은 Virtual Private Network의 약자로, 가상 사설 네트워크를 의미한다.

VPN은 인터넷을 통해 데이터를 안전하게 전송하고, 온라인 활동을 익명으로 유지하며, 지리적으로 제한된 콘텐츠에 접근하는 데 사용된다.

원래대로라면 외부 네트워크에서 내부 네트워크로 접속하는 것 자체가 불가능하다. 내부 네트워크에 접속하기 위해서는 DNAT과 같은 주소변환을 통해 접속을 가능하게 했지만 내부(사설) 대역에 위치하여 해당 사설 네트워크와 통신하고 싶으면 VPN을 사용하면 된다.

즉 자신이 마치 사설 네트워크 대역에 존재하고 있는 것처럼 동작하면서 통신하는 것이다.

Tunneling 기법(PPTP,L2PT) 사용 -> L2TP : Layer 2 Tunneling Protocol
암호화는 필수. (SSL,IPsec...etc)
ipsec: 암호화 기법, L2PT: 터널링 기법

VPN도 마찬가지로 '자신이 어떤 네트워크에 속해 있다'라는 의미 물리적(인터페이스가 스위치에 연결되어 있다) + 논리적(그 대역의 아이피를 하나 부여받았다)으로 해당 네트워크에 속해있다는 것을 의미하고 이 법칙이 성립해야 할 것이다.

○ VPN Server (VPN1) - Client(mint) 구조

실습)

eth2 -> VMnet6(db server)

인터페이스 추가!! (위와 같이 vmnet 인터페이스 추가 시 순서에 맞게 추가해 준다. vmnet5는 eth1번!)

VPN Server (VPN1)

set service ssh port 222

set system gate 211.183.3.2

set int eth eth0 add 211.183.3.10/24

set int eth eth2 add 10.20.31.252/24

set vpn ipsec ipsec-interfaces int eth0 => ipsec을 설정할 인터페이스가 eth0다(eth2로 설정하지 않도록 주의)

set vpn ipsec nat-traversal enable 

의미: VPN을 통해 IP가 변조되더라도 이를 허용하겠다.
 VPN은 IP가 변경되기 때문에 IP정보를 담고 있는 header정보가 변경이 된다.
 header 정보가 변경되더라도 이를 허용하겠다는 뜻


set vpn ipsec nat-networks allowed-network 0.0.0.0/0 => all network
set vpn l2tp remote-access outside-address 211.183.3.10 
set vpn l2tp remote-access client-ip-pool start 10.20.31.50
set vpn l2tp remote-access client-ip-pool stop 10.20.31.60 vpn으로 부여받을 주소 범위.(50~60)
set vpn l2tp remote-access authentication mode local -users <username xxx> password <xxx>

사용자와 패스워드는 xxx이다.
commit

○민트에서 설정 확인 사항

만약 vpn 추가 시에 L2TP 터널링 방식이 존재하지 않는다면 

apt-get install network-manager-l2tp network-manager-l2tp-gnome

위의 명령어를 통해 설치가 가능하고 그 결과는 다음과 같다.

터널링 방식은 L2TP

 

vpn명과 유저네임 및 패스워드 설정

○ 실행결과

mint에서 ip add로 확인을 해보면

ppp0은 VPN을 위한 가상의 NIC이고 부여받은 범위 내의 주소는 10.20.31.50 ( 10.20.31.50 ~ 10.20.31.60 )이다!

이제 mint는 ipsec과 tunneling을 통해 내부 대역에 존재하는 것처럼 보이는 현상에 이르렀으며(10.20.31.50번 부여받음)

vpn으로 부여받은 내부 대역 주소 10.20.31.50에서 db서버 주소 10.20.31.80을 핑 쳐보면 정상적으로 통신이 되는 모습을 볼 수 있다. 

정상적으로 핑이 전달된다.

○ VPN Site to Site구조

사용 빈도는 server to client 보다 site to site 구조가 더 높다. 가령 본인의 사설 네트워크(On-premise)와 특정 서비스가 제공하는 네트워크와 연결하고 싶을 때 이용하면 효과적이다. 

site to site VPN 구조

Site to Site VPN은 주로 기존에 해오던 DNAT 없이 사설 대역끼리 연결하고 싶을때 이용한다.

B지사에 있는 네트워크는 A와 B가 터널링을 통해 오버레이 네트워크(Overlay Network)를 형성하면서 마치 실제의 A 네트워크가 B 네트워크 사설 대역에 존재하는 것처럼 인식하여 통신하는 것을 나타낸 것이다. 

실제 트래픽 경로대로 통신하려면 DNAT 과정이 필요하고 물리적인 장비끼리 통신하는 성격을 띠므로 이것을 언더레이 네트워크 (Underlay Network)라고 부른다.

Overlay Network : 가상의 통로를 통해 통신할 때, 터널링기법

Underlay Network: 물리장비가 연결되어 있는 네트워크! 끼리 보통 통신할 때

 

반응형

'Linux' 카테고리의 다른 글

리눅스 :: VyOS 방화벽 설정 실습  (0) 2023.10.09

댓글