WireGuard VPN 으로 Site to Site VPN 구성하기
0. 구성도
1) Site A 홈라우터 (메인 측, 서버 측)
WAN 네트워크 주소(공인 IP) : 86.45.69.6/28
LAN 네트워크 주소 대역 : 192.168.1.1/24
Wireguard IP 주소 : 10.10.10.1/32
라우터에 연결된 PC A : 192.168.1.153
2) Site B 홈라우터 (클라이언트 측)
WAN 네트워크 주소(공인 IP) : 205.79.33.106/25 ※ 공인 IP가 없고, 네트워크 상위에 별도의 홈라우터가 있는 NAT 환경 내에 있어도 상관없다!!
LAN 네트워크 주소 대역 : 192.168.2.1/24
Wireguard IP 주소 : 10.10.10.2/32
라우터에 연결된 PC B : 192.168.2.153
1. Site A 홈라우터 (메인 측, 서버 측) 설정
1) 새로운 interface 추가 : Wireguard VPN 새로 생성
이름 : site_a
Private Key Gen 키를 눌러서, 키쌍 생성
Listen Port : 51820
IP addresses : 10.10.10.1/32
고급설정 에서 MTU : 1412 로 설정
Firewall Setting 에서 assign fw zone : vpn 입력후 엔터 치면, 새롭게 생성시켜줌
2) Firewall 방화벽 쪽으로 이동해서,
vpn 존에 대해서, lan to vpn
vpn to wan 을 허용
Port Forward 설정
이름 wg,
프로토콜 UDP,
source : wan.
external port 51820.
Dest: vpn
Internal IP. 10.10.10.1/32
Internal port 51820
3) Site A 홈라우터의 외부 공인 IP 주소를 복사해둔다. (유투브 비디오에서는 86.45.69.6/28 이었음.)
클라이언트가 접속해야되는 IP 이기 때문에.
또한, 클라이언트 접속을 위해서는 1.1)에서 생성한 키쌍에서 Public Key를 복사해두어야 한다.
※ 여기 Site A 홈라우터로 접속하려면 반드시, 서버의 공인 IP주소와 포트번호, 그리고 Public Key가 있어야 한다!!
4) Luci 웹 화면에서 Status -> Wireguard 로 가면, 인터페이스가 정상적으로 생성된 것을 볼 수 있다.
※ 아직 어떤 Peer 도 생성하지 않았으므로, 접속은 없을 것이다.
2. Site B 홈라우터 (클라이언트 측) 설정
1) 새로운 interface 추가 : Wireguard VPN 새로 생성
이름 : site_b
Private Key Gen 키를 눌러서, 키쌍 생성
Listen Port : 51820
IP addresses : 10.10.10.2/32
고급설정 에서 MTU : 1412 로 설정
Firewall Setting 에서 assign fw zone : vpn 입력후 엔터 치면, 새롭게 생성시켜줌
Peers에서 새로운 peer 추가
Description : site_a
Public Key : 1.1)에서 생성한 키쌍으로부터 1.3)에서 복사해둔 Public Key를 가져온다.
Allowed IPs : 10.10.10.0/24. 192.168.1.0/24 ※ site_a 서버측 IP 주소를 모두 등록시켜준다.
Routed Allowed IPs : checked
Endpoint Host : 1.3)에서 복사해둔 site_a 서버측의 공인 IP 주소를 써준다.
Endpoint Port : 51820 ※ site_a에서 정했던 포트번호 그대로 입력
Persistent Keep Alive : 25 ※ 클라이언트 쪽의 공인 IP가 없는 경우에만 추가적으로 설정
2) Firewall 방화벽 쪽으로 이동해서,
vpn 존에 대해서, lan to vpn
vpn to wan 을 허용
Port Forward 설정
이름 : wg
프로토콜 : UDP
source : wan
external port : 51820.
Dest : vpn
Internal IP : 10.10.10.2/32
Internal port : 51820
Luci 웹 화면에서 Network -> Interfaces 로 가서, wireguard 인터페이스 재시작
3) Site B 홈라우터의 외부 공인 IP 주소를 복사해둔다. (유투브 비디오에서는 205.79.33.106/25 이었음.)
서버쪽에서 접속해야되는 IP 이기 때문에. ※ 공인 IP가 없고, 네트워크 상위에 별도의 홈라우터가 있는 NAT 환경 내에 있다면, 복사하지 않아도 된다. 무시하면 된다.
또한, 서버쪽 접속을 위해서는 2.1)에서 생성한 키쌍에서 Public Key를 복사해두어야 한다.
※ 여기 Site B 홈라우터로 접속하려면 반드시, 클라이언트의 공인 IP주소와 포트번호, 그리고 Public Key가 있어야 한다!!
4) Luci 웹 화면에서 Status -> Wireguard 로 가면, 인터페이스가 정상적으로 생성된 것을 볼 수 있다.
3. Site A 홈라우터 (메인 측, 서버 측) 설정 수정(클라이언트 쪽 정보 추가)
1) Wireguard VPN 인터페이스 site_a 로 가서,
Peers에서 새로운 peer 추가
Description : site_b
Public Key : 2.1)에서 생성한 키쌍으로부터 2.3)에서 복사해둔 Public Key를 가져온다.
Allowed IPs : 10.10.10.0/24. 192.168.2.0/24 ※ site_b 클라이언트측 IP 주소를 모두 등록시켜준다.
Routed Allowed IPs : checked
Endpoint Host : 2.3)에서 복사해둔 site_a 서버측의 공인 IP 주소를 써준다. ※ 공인 IP가 없다면, 무시하고 비워둔다.
Endpoint Port : 51820 ※ site_b에서 정했던 포트번호 그대로 입력
Persistent Keep Alive : 25 ※ 클라이언트 쪽의 공인 IP가 없는 경우에만 추가적으로 설정
※ 이 구성은 둘 다 peer 개념으로 보고 있어야 하고, 양쪽에서 모두 인터넷이 되는 상황이다.
vpn을 통해서, 양측 LAN 영역 까지는 도달이 가능하다.
하지만, LAN 영역까지만 도달하는 것이고, 인터넷 트래픽까지 vpn을 통해서 가능 것은 아니다!!!
client쪽의 모든 트래픽을 VPN tunnel로 모두 보내는 것은 별도의 추가 라우팅 설정 등이 필요하다!(아직 작업중)