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) 구조
실습)
인터페이스 추가!! (위와 같이 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
위의 명령어를 통해 설치가 가능하고 그 결과는 다음과 같다.
○ 실행결과
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은 주로 기존에 해오던 DNAT 없이 사설 대역끼리 연결하고 싶을때 이용한다.
B지사에 있는 네트워크는 A와 B가 터널링을 통해 오버레이 네트워크(Overlay Network)를 형성하면서 마치 실제의 A 네트워크가 B 네트워크 사설 대역에 존재하는 것처럼 인식하여 통신하는 것을 나타낸 것이다.
실제 트래픽 경로대로 통신하려면 DNAT 과정이 필요하고 물리적인 장비끼리 통신하는 성격을 띠므로 이것을 언더레이 네트워크 (Underlay Network)라고 부른다.
Overlay Network : 가상의 통로를 통해 통신할 때, 터널링기법
Underlay Network: 물리장비가 연결되어 있는 네트워크! 끼리 보통 통신할 때
'Linux' 카테고리의 다른 글
리눅스 :: VyOS 방화벽 설정 실습 (0) | 2023.10.09 |
---|
댓글