클라우드 Shared 영역 Wireguard VPN - 100-hours-a-week/16-Hot6-wiki GitHub Wiki
클라우드 Shared 영역 Wireguard VPN
개요
GCP Shared 환경에 WireGuard 기반 VPN을 구축하고, 클라이언트가 접속하는 방법을 안내합니다.
본 문서는 VPN 등록 절차 및 서버 적용 방법을 포함합니다.
목차
등록 방법 가이드
1. wireguard app 다운로드
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 선택
-
모르는 부분이 있으면 언제든지 guinness에게 문의하세요.
-
적용 완료된 모습
적용 명령어
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