80 lines
2.0 KiB
Markdown
80 lines
2.0 KiB
Markdown
|
# 1. Install
|
||
|
## 1.1. Directory structure
|
||
|
|
||
|
```dirtree
|
||
|
- /mnt/md0/infra
|
||
|
- /nginx
|
||
|
- /conf.d
|
||
|
- wg-easy.conf
|
||
|
- /etc.d
|
||
|
- ...
|
||
|
- /wg-easy
|
||
|
- .env
|
||
|
- compose.yml
|
||
|
```
|
||
|
|
||
|
## 1.2. Docker compose
|
||
|
|
||
|
```yml
|
||
|
name: infrastructure
|
||
|
service:
|
||
|
nginx:
|
||
|
# ...
|
||
|
|
||
|
wg-easy:
|
||
|
image: ghcr.io/wg-easy/wg-easy
|
||
|
container_name: wg-easy
|
||
|
restart: always
|
||
|
environment:
|
||
|
- WG_HOST=wg.tuska298.dev # Server hostname
|
||
|
- PASSWORD_HASH=$$2a$$12$$xHJZ2bWZ7adZNYTDAWdJFuwEAhN3qzQY.ADTb3MLUubkjen9JMs9e # Web UI Password
|
||
|
# Generate Password hash : https://github.com/wg-easy/wg-easy/blob/master/How_to_generate_an_bcrypt_hash.md
|
||
|
- WG_PORT=51820
|
||
|
- PORT=51821
|
||
|
- LANG=ko
|
||
|
- WG_DEFAULT_DNS=192.168.200.10,1.1.1.1
|
||
|
volumes:
|
||
|
- ${BASE_PATH}/wg-easy:/etc/wireguard:rw
|
||
|
ports:
|
||
|
- "51820:51820/udp"
|
||
|
- "51821:51821/tcp"
|
||
|
cap_add:
|
||
|
- NET_ADMIN
|
||
|
- SYS_MODULE
|
||
|
sysctls:
|
||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||
|
- net.ipv4.ip_forward=1
|
||
|
networks:
|
||
|
- infra
|
||
|
|
||
|
networks:
|
||
|
infra:
|
||
|
driver: bridge
|
||
|
```
|
||
|
|
||
|
## 1.3. /nginx/conf.d/wg-easy.conf
|
||
|
|
||
|
```nginx
|
||
|
server {
|
||
|
server_name wg.home.server;
|
||
|
|
||
|
include /etc/nginx/etc.d/deny.lan.conf;
|
||
|
|
||
|
location / {
|
||
|
proxy_pass http://wg-easy:51821/;
|
||
|
proxy_http_version 1.1;
|
||
|
proxy_set_header Upgrade $http_upgrade;
|
||
|
proxy_set_header Connection "Upgrade";
|
||
|
proxy_set_header Host $host;
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## 1.4. 공유기 포트포워딩
|
||
|
udp 51820 포트 개방
|
||
|
|
||
|
## 1.5. Cloudflare DNS 프록시 해제
|
||
|
- Cloudflare Domain 구매 시 DNS 기능을 제공
|
||
|
- 이 떄 DNS에 등록한 IP를 가리고 Cloudflare 서버 IP를 응답하는 프록시 기능을 자동으로 설정함
|
||
|
- 하지만 Wireguard는 DNS의 응답 결과로 얻은 IP에 80/443 포트가 아닌 다른 포트로 접근하므로 프록시 기능이 정상 작동하지 않음
|
||
|
- 따라서 Cloudflare DNS의 Wireguard용 subdomain은 프록시 기능을 해제해야 함
|