본문 바로가기
AWS Cloud School 8기/서버가상화_클라우드 이미지

Server-Client VPN/ 와이파이 대역 활용한 실습

by YUNZEE 2025. 2. 13.
728x90

🛜 VPN (Virtual Private Network, 가상 사설망)

 

 VPN이란?

  • (원래는 안 그럼 마치 내가 다른 사설네트워크에 존재하는 것처럼 여겨질 수 있도록 하는 메커니즘임
  • VPN은 공개된 인터넷을 통해 사설 네트워크에 안전하게 연결하는 기술이야.
  • 예를 들어, 집에서 회사 네트워크에 접속하려면 VPN을 사용해서 회사 내부 네트워크와 연결할 수 있어.
  • 암호화를 사용해서 데이터를 보호하기 때문에 보안이 강화됨.

🏛 VPN 사용 사례

✅ 회사에서 원격 근무할 때, 내부 네트워크에 안전하게 접속할 수 있도록 VPN을 사용함.
✅ 공공 Wi-Fi(카페, 공항) 사용 시, 해커가 데이터를 가로채는 것을 방지하기 위해 사용함.
✅ 특정 국가에서 차단된 웹사이트를 우회하기 위해 사용됨.

📌Legacy Network (레거시 네트워크)

Legacy Network란?

  • 오래된 방식으로 구축된 네트워크를 의미해.
  • 보안성이나 확장성이 낮고, 최신 기술(VPN, SDN, Overlay Network)과 비교하면 비효율적일 수 있음.

🎯 Legacy Network의 특징

✅ 전통적인 네트워크 구조 (고정된 라우팅, 수동 설정 필요).
✅ 네트워크 장비(스위치, 라우터) 중심의 운영.
✅ 확장성이 떨어지고, 클라우드 환경과의 호환성이 낮음.

🏛 Legacy Network 사용 사례

  • 기업이 수십 년 전에 구축한 네트워크를 그대로 사용하는 경우.
  • 최신 네트워크 기술(SDN, 클라우드)로 전환하지 않은 시스템.
  • 하드웨어 기반 네트워크에서 수동으로 설정해야 하는 네트워크 구조.

📌Overlay Network (오버레이 네트워크)

Overlay Network란?

  • 기존의 legacy 네트워크(underlay) 위에 존재하는 가상의 네트워크 overlay
  • 기존의 물리적 네트워크 위에 가상 네트워크를 추가적으로 구축하는 방식이야.
  • 기존 네트워크(Underlay)와 독립적으로 동작하며, IP 주소 체계가 달라도 연결할 수 있어.

🎯 Overlay Network의 특징

✅ 기존 네트워크(Underlay)와 별도로 작동함.
✅ 여러 지점을 가상 네트워크로 연결할 수 있음.
✅ SDN(소프트웨어 정의 네트워크), VPN, VXLAN 등이 오버레이 네트워크의 예시임.

🏛 Overlay Network 사용 사례

  • 클라우드 데이터센터에서 가상 머신(VM)끼리 연결할 때.
  • SD-WAN(소프트웨어 기반 WAN)에서 기업 네트워크를 효율적으로 관리할 때.
  • VPN이 대표적인 Overlay Network의 한 예시

📌Tunneling (터널링)

Tunneling이란?

  • 두 개의 스위치를 하나의 스위치로 소통 가능하도록 구현하는 것 
  • 터널링은 네트워크 프로토콜을 다른 프로토콜 안에 캡슐화(encapsulation)하는 기술이야.
  • 예를 들어, 일반적인 인터넷 트래픽을 암호화된 VPN 터널로 감싸서 보낼 수 있음.
  • 보안이 중요한 네트워크 연결에서 사용됨.

🎯 Tunneling의 특징

✅ 데이터를 암호화하여 보안 강화.
✅ 기존 네트워크 프로토콜을 변경하지 않고도 새로운 네트워크 구축 가능.
✅ VPN, GRE, IPsec 등이 대표적인 Tunneling 기술.

🏛 Tunneling 사용 사례

  • VPN 연결(내부 사설 네트워크로 안전하게 접속).
  • IPv6 네트워크를 IPv4 네트워크에서 사용할 때.
  • 클라우드 환경에서 가상 네트워크를 구축할 때.

📌Server-client VPN

레거시 네트워크? (lagacy: 구닥다리, 물리적(서버, 네트워크 장비)) <---> 가상화 or 클라우드

Server-Client VPN을 종합해서 설명하면?

  1. 기존 네트워크(Legacy Network) 위에 Overlay Network(VPN 전용 네트워크)를 만듦.
    • 예를 들어 회사 내부 네트워크(192.168.1.0/24) → VPN 내부 네트워크(10.10.10.0/24)
  2. 인터넷을 통해 VPN 클라이언트가 VPN 서버에 연결하면, 터널(Tunneling)이 생성됨.
    • 데이터는 VPN 터널을 통해 암호화되어 안전하게 전달됨.
    • 클라이언트는 VPN을 통해 회사 네트워크에 접속한 것처럼 동작
  3. VPN 내부 네트워크는 Overlay Network로 동작하여, 기존 네트워크와 별도로 관리됨.
    • VPN 사용자는 VPN 내부의 가상 IP(10.10.10.X)를 할당받아 통신함.
    • 기존 인터넷(192.168.X.X)과는 별개로 동작

🔥 Server-Client VPN vs. Site-to-Site VPN 차이점 정리

실습)
eth0 IP 211.183.3.250 /24
2 core 2GB 5GB로 만들어보세요!

 

vyos@vyos# set vpn ipsec ipsec-interfaces int eth0
# ipsec 암호화를 할 인터페이스

- IPsec (Internet Protocol Security) = 암호화 방식

  • VPN Underlay를 연결할 eth0에 할당해서 외부와 내부 연결
  • eth0: 외부에서 들어오는 VPN 연결을 받을 네트워크 인터페이스

vyos@vyos# set vpn ipsec nat-traversal enable
# VPN을 통해 패킷의 헤더가 변조되더라도 이를 허용

- IPsec VPN을 사용할 때, NAT(Network Address Translation) 환경에서도 통신이 가능하도록 설정

 

vyos@vyos# set vpn ipsec nat-networks allowed-network 0.0.0.0/0 
# VPN을 허용할 대상 = vpn server에 접속하는 대상은 전체

 

vyos@vyos# set vpn l2tp remote-access client-ip-pool start 10.20.30.200
# vpn을 통해 내부로 진입하는 client가 받게 될 시작 아이피(dhcp의 range랑 비슷함.)

- L2TP (Layer 2 Tunneling Protocol): 터널링 방식 

 

vyos@vyos# set vpn l2tp remote-access client-ip-pool stop 10.20.30.210

# vpn을 통해 내부로 진입하는 client가 받게 될 마지막 아이피(dhcp의 range랑 비슷함)

# 만약에 vpn에 성공했다면 client는 10.20.30.200 ~ 210 사이의 아이피를 부여받을 것

 

vyos@vyos# set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret

- 사전 공유 키(Pre-Shared Key, PSK)를 이용한 인증 방식 사용할 것이라고 선언하는 것

  • 클라이언트가 VPN 서버에 접속할 때 미리 정해진 공유 키를 입력해야 함
 

vyos@vyos# set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret chan

- 사전 공유 키(PSK) 값 설정

  • PSK 방식으로 인증하겠다고 설정했으니. 실제 사용할 키를 지정해야 함
  • 공유 키 값은 "chan"
  • 클라이언트가 VPN에 연결할 때 "chan"을 입력해야 함

vyos@vyos# set vpn l2tp remote-access authentication mode local  

- VPN 접속 시 사용자 인증을 로컬(Local)에서 처리

  • 중앙 인증 서버(예: RADIUS)가 아니라 VyOS 자체에서 사용자 ID/PASSWORD를 관리

*** local에 대해 조금 더 쉽게 자세하게 설명하자면?

  • 💡 즉, VPN 접속할 때 로그인 정보를 중앙 서버가 아닌 VyOS에서 직접 확인하겠다는 뜻

vyos@vyos# set vpn l2tp remote-access authentication local-users username min password min

# 사용자 ID / PASS = min / min

 

vyos@vyos# set vpn l2tp remote-access outside-address 211.183.3.250

# vpn client들이 접속할 VyOS의 eth0(외부) 주소 = 내 거 eth0 ip

 

vyos@vyos# commit

- 민트서버에 IP변경해서 확인해 보기

- eth0이랑 외부로 핑이 잘 가는 것을 확인할 수 있음

- 내부 네트워크 구성을 위해 NIC추가

vyos@vyos# set int eth eth1 add 10.20.30.250/24

vyos@vyos# commit

 

- varwp가 vm5에 잘 존재하고 vyos와 통신이 되는지 확인

- vpn을 실행시키기 위해 mint서버에 설치해 줘야 됨

apt install -y network-manager-l2tp-gnome

# network-manager = IP설정하는 GUI

 

***정확하게 network-manager가 하는 게 뭘까?

  • 리눅스 기반 시스템에서 네트워크 연결을 쉽게 관리하도록 도와주는 서비스
  • 주로 GUI 환경이 있는(mint, GUI-OS) 데스크톱 리눅스 배포판에서 많이 사용되지만, 서버 환경에서도 설정할 수 있음.

vpn 설정

- vpn을 위해 받아야 할 패키지가 있으므로 GW는 211.183.3.2로 하고, DNS는 8.8.8.8로 원상복구 함

- local 인증 = min/ min

 

*** ifconfig가 뭘까?

  • 리눅스 및 유닉스 계열 운영체제에서 네트워크 인터페이스(ip, mac 주소)를 설정하고 관리하는 명령어임
  • lo: loopback은 원래 있던 유선 이더넷 네트워크 인터페이스
  • 새로운 가상의 인터페이스(ppp0)가 생성되어 아이피를 부여받음
  • 왜 새로운 NIC가 생겼을까? = vpn을 통해서 접속한 네트워크에 속해있기 위해 새로운 NIC가 생김
  • vpn 내부 네트워크의 스위치에 연결될 NIC가 필요하니까. 가상의 NIC가 하나 생성

- vyos에서 pat 설정함 

  •  varwp에서 패키지를 받기 위해 설정해야 외부 핑이 갈 수 있음

vyos@vyos# set nat source rule 10 outbound-interface eth0         
[edit]
vyos@vyos# set nat source rule 10 source address 10.20.30.0/24
[edit]
vyos@vyos# set nat source rule 10 translation address masquerade 
[edit]
vyos@vyos# commit

 

- varwp에서 실제로 패킷을 받는 건지 확인해 보기 위해 vyos에서 varwp로 ssh 접속하자

vyos@vyos# ssh root@10.20.30.80

 

# vyos에서 varwp로 접속. 우리는 GW를 10.20.30.250으로 했기 때문에 수정해 주자.

[root@was - db ~]# yum install -y tcpdump

# 패킷을 확인할 tcpdump라는 패키지를 설치하자

- mint에서 보낸 icmp패킷이 varwp로 잘 온 걸 확인 가능

- 모니터링할 인터페이스 (icmp)

실습)
각각 VPN 서버 및 클라이언트를 구성해서 서로의 VyOS의 내부네트워크에 VPN 연결을 해보세요.
1) 다른 팀에 해를 끼치지 마세요.
2) 맥주소 같은 걸 변경하거나 할 필요는 없어요.

와이파이를 활용해서 A와 B PC를 공유함
pre-shared-secret : ah
id / pass = aws / cloud

정리) 
‘결국 광수와 옥순의 외부 인터페이스가 통신이 됐으면 좋겠다’ 우리의 목표이며 그러려면 각자의 VyOS가 같은 대역에 있으면 된다. 
***각자의 VyOS가 같은 대역에 있으면 된다. = VyOS의 외부 인터페이스(eth0)가 같은 네트워크 대역에 있어야 함 = 와이파이에 연결하면 같은 대역에 있게 됨

1) 다른 팀에 해를 끼치지 마세요.
set int eth eth0 add <주소>가 eth0에 주소를 수동으로 넣는 방식이었고,
set int eth eth0 add dhcp 가 자동으로 부여받는 방식임.
자동으로 부여를 받아야 남한테 피해를 안 줄 수 있음.


2) 맥주소 같은 걸 변경하거나 할 필요는 없어요.
왜 그런 걸까?
예전 실습 때의 GNS3 외부 인터페이스도 사실은 ip add dhcp 만으로도 아이피를 부여받아야 정상인데, GNS3의 문제로 인해 못 받아왔고, 어쩔 수 없이 노트북의 맥주소로 변경을 했었음. 이게 특별한 케이스였음. 근데 이번에는 GNS3랑 상관없이 VM을 브릿지 대역에 두고 아이피를 잘 받아오면 되는 거였기 때문에 맥주소를 변경할 필요가 없었던 것.

- 비슷한 실습 사진을 가져온 거라서 ip가 다름

- 외부 pc로 핑이 가는 걸 확인할 수 있음 

vyos@vyos:~$ conf
[edit]
vyos@vyos# set vpn ipsec ipsec-interfaces int eth0
[edit]
vyos@vyos# set vpn ipsec nat-traversal enable
[edit]
vyos@vyos# set vpn ipsec nat-networks allowed-network 0.0.0.0/0
[edit]
vyos@vyos# set vpn l2tp remote-access client-ip-pool start 10.20.31.100
[edit]
vyos@vyos# set vpn l2tp remote-access client-ip-pool stop 10.20.31.110 
[edit]
vyos@vyos# set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
[edit]
vyos@vyos# set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret chan
[edit]
vyos@vyos# set vpn l2tp remote-access authentication mode local
[edit]
vyos@vyos# set vpn l2tp remote-access authentication local-users username min password min
[edit]
vyos@vyos# set vpn l2tp remote-access outside-address 192.168.3.3  
[edit]
vyos@vyos# commit
[edit]

- mint 서버에서도 dhcp 받아오기 가능

 

good!

728x90

'AWS Cloud School 8기 > 서버가상화_클라우드 이미지' 카테고리의 다른 글

VyOS 실습 (코드만)  (0) 2025.02.11
VyOS Firewall  (0) 2025.02.11
ACL(ACcess-List)  (0) 2025.02.09
VyOS/ (VyOS nat 해제)  (0) 2025.02.06
web + db + tomcat 실습(코드만)  (3) 2025.02.06