클라우드 Shared 영역 Wireguard VPN - 100-hours-a-week/16-Hot6-wiki GitHub Wiki

클라우드 Shared 영역 Wireguard VPN

개요

GCP Shared 환경에 WireGuard 기반 VPN을 구축하고, 클라이언트가 접속하는 방법을 안내합니다.
본 문서는 VPN 등록 절차 및 서버 적용 방법을 포함합니다.

목차

등록 방법 가이드
서버 측 적용 방법

등록 방법 가이드

1. wireguard app 다운로드

appstore에서 어플리케이션 다운로드가 가능합니다.

‎WireGuard appstore 링크

2. wireguard cli 설치 및 시크릿 생성

brew install wireguard-tools

# 디렉터리 상관 없음
mkdir -p ~/wireguard
cd ~/wireguard

umask 077
wg genkey | tee client_privatekey | wg pubkey > client_publickey

touch wg0.conf

3. wg0.conf 편집

vi wg0.conf
[Interface]
PrivateKey = <방금 생성한 클라이언트 PrivateKey. cat client_privatekey로 보세요>
Address = 10.0.100.<guinness에게 숫자를 할당받으세요>/24
DNS = 8.8.8.8
    
[Peer]
PublicKey = <디스코드에서 확인하세요>
Endpoint = <디스코드에서 확인하세요>:51820
AllowedIPs = 10.0.0.0/16, 10.10.0.0/16, 10.20.0.0/16, 10.50.0.0/16, 10.60.0.0/16
PersistentKeepalive = 25

저희 전략 상 10.0.xxxx 은 shared, 10.10.xxxx는 dev, 10.20.xxxx는 prod, 10.50.xxxx는 GPU prod, 10.60.xxxx는 GPU dev 입니다.

4. guinness한테 client_publickey 내용을 보낸다 (서버에 등록해야함)

cat client_publickey

5. 반영되면 wireguard 어플리케이션에서 wg0.conf 파일을 찾아 등록한 뒤 VPN을 활성화한다

“Import tunnel(s) from file” > ~/wireguard/wg0.conf 선택

  1. 모르는 부분이 있으면 언제든지 guinness에게 문의하세요.

  2. 적용 완료된 모습

image

적용 명령어

wireguard 서버 세팅 시 필요한 명령어 정리입니다. client이실 땐 참고만 하세요~~

설치 및 기본 세팅

sudo apt update
sudo apt install -y wireguard
sudo apt install -y vim
sudo apt install -y iptables

sudo -i

cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
vi wg0.conf

서버 측 wg0 예시

# wg0.conf

[Interface]
PrivateKey = <생성한 서버 privatekey>
Address = 10.0.0.1/24
ListenPort = 51820

PostUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens4 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens4 -j MASQUERADE

[Peer]
PublicKey = <클라이언트 publickey>
AllowedIPs = 10.0.100.2/32

[Peer]
PublicKey = <클라이언트 publickey>
AllowedIPs = 10.0.100.3/32

[Peer]
PublicKey = <클라이언트 publickey>
AllowedIPs = 10.0.100.4/32

wg0 적용 및 VPN 시작

sudo wg-quick down wg0 && sudo wg-quick up wg0