GN⁺: WireGuard: 기본 설정을 넘어서
(sloonz.github.io)-
기본 설정
- OpenVPN을 WireGuard로 대체하려는 시도에 대한 경험 공유.
- 기본 설정 요약:
- 서버와 클라이언트 각각에 대한 키 쌍 생성.
- VPN 네트워크와 IP 주소 지정.
- 서버와 클라이언트 구성 파일 작성 및 실행.
- 네트워크 네임스페이스를 사용하여 VPN과 인터넷 연결을 분리 가능.
-
NAT
- NAT 뒤에서 작동하지 않는 일부 애플리케이션 문제 해결.
- UPnP를 사용하여 NAT 문제 해결 가능.
- WireGuard는 기본적으로 UPnP를 지원하지 않으므로 수동 설정 필요.
-
miniupnpd
설치 및 설정을 통해 UPnP 기능 추가 가능.
-
IPv6
- NAT 문제를 해결하는 더 나은 방법은 NAT를 사용하지 않는 것.
- IPv6를 사용하여 NAT 없이 공개적으로 라우팅 가능한 주소 할당 가능.
- 서버와 클라이언트에 IPv6 주소를 할당하여 NAT 없이도 통신 가능.
- IPv6 설정을 통해 UPnP 없이도 공개 인터넷에서 접근 가능.
Hacker News 의견
-
개인 서버를 설정하고 웹에서 접근 가능한 서비스를 제공하려고 함. Caddy를 사용해 서브도메인을 서비스에 매핑하는 것은 성공했으나, Tailscale Magic DNS는 서브도메인을 지원하지 않음. 이를 해결하기 위해 pihole을 설정하여 개인 DNS 서버를 만들고자 함. Wireguard의 제한인지 궁금해함
-
Wireguard 설정 시 유용한 사이트를 발견했음: Procustodibus Wireguard Topologies
-
동적 DNS 레코드를 설정하여 호스트 이름을 홈 네트워크의 동적 IP에 매핑하면 개인 VPN 사용이 가능해짐. 이를 통해 외부 인터넷에 노출하지 않고도 로컬 서비스를 원격에서 접근할 수 있음
-
Wireguard 사용 시 NAT가 필수라는 오해가 있음. 실제로는 목적지 호스트가 Wireguard 서버를 게이트웨이로 인식하면 일반 서브넷 라우팅이 잘 작동함. 기본 라우터에 정적 경로를 설정하는 것으로 충분함
-
Wireguard의 원리, 구현 및 설정을 다루는 좋은 책이 있는지 궁금해함. IPSEC 관련 책은 많지만 Wireguard는 드물다고 함
-
Wireguard에서 특정 IP를 제외하고 모든 트래픽을 터널링하는 쉬운 방법이 없음을 의아해함. 특정 IP를 제외한 모든 CIDR 목록을 프로그래밍적으로 생성해야 함
-
RBAC 기능이 없어 아쉬움. Wireguard는 OpenVPN보다 빠르지만, RBAC 때문에 직원과 계약자에게는 OpenVPN을 사용해야 함
-
Wireguard와 IPv6를 사용 중이나, IPv6 프리픽스 위임 기능이 작동하지 않음. 일반 이더넷 서브넷처럼 장치가 자체 주소를 선택하고 변경할 수 있도록 하고 싶음
-
Wireguard에서 포트 포워딩을 마스커레이딩 없이 제대로 작동시키지 못함. 소스 IP를 유지하려면 AllowedIPs에 0.0.0.0/0을 추가해야 하지만, 이는 응용 프로그램의 응답이 소스로 돌아가는 것을 방해함
-
IPv6를 기반으로 인프라를 구축하고 있음. Wireguard의 현대적 암호화와 무상태 설계를 활용하면서도 Wireguard 주소 체계를 채택하지 않고 IPv6 주소 체계를 유지하고 싶음