OpenWrt 공유기에 Wireguard 설정하기

지난 포스팅에서 샤오미 공유기에 OpenWrt 펌웨어 올리는 법을 설명했으며, 스크립트를 이용해서 VPS에 Wireguard를 설치하는 방법도 알아보았습니다.


이번 포스팅에서는 샤오미 공유기에 Wireguard 패키지를 설정하여 VPS에서 운영되고 있는 Wireguard에 연결하는 법을 설명하겠습니다.

제 경우는 앞서 포스팅에서 설명한 방법으로 Wireguard를 설치한 Oracle Cloud에서 wg_mult.sh 명령어로 새로운 디바이스를 mi-wifi라는 이름으로 추가하였으며, 추가한 설정 파일의 내용은 아래와 같습니다.

Wireguard Peer 설정


OpenWrt에 Wireguard 패키지 설치

OpenWrt 관리페이지에 로그인한 후 System->Software 메뉴를 선택하고, Update list를 한번 눌러준 후, Filter란에 Wireguard를 입력합니다.
Wireguard 패키지 검색


표시된 목록 중에서 Availables 탭에서 luci-proto-wireguard를 선택하여 설치합니다.
Wireguard 패키지 설치


필요하면 luci-i18n-wireguard-ko도 설치합니다.
Wireguard 한글화 패키지 설치

설치가 완료되면 설치된 패키지 목록에서 Wireguard로 검색했을 때 아래와 같이 5가지 패키지가 설치되어 있어야 합니다. (한글화 패키지를 설치하지 않은 경우 4가지)
설치 후 Wireguard 패키지 목록


패키지 설치 후 메뉴에서 System->Reboot 메뉴에서 공유기를 한번 재부팅해 주어야 인터페이스 추가 시 인터페이스 프로토콜 종류로 Wireguard VPN을 선택할 수 있습니다.
공유기 재부팅

Wireguard 인터페이스 추가

Network->Interface 메뉴를 선택한 후 하단의 Add Interface 버튼을 클릭하여 새로운 인터페이스를 추가합니다. 인터페이스 이름은 wg0로 입력합니다. (본인이 구분하기 편한 이름)
Wireguard VPN 인터페이스 추가

추가 버튼을 누르면 아래와 같이 상세 항목을 입력하기 위한 팝업이 표시됩니다.
Interface 기본 설정
공유기 부팅 시에도 인터페이스를 계속 사용하기 위해서 부팅시 활성화에 체크해주고, Private Key 항목은 Oracle Cloud에서 추가한 디바이스 설정 중 Interface 영역의 Private Key를 그대로 복사해서 붙여넣기 합니다.
Listen Port는 비워두어도 되고, 공유기가 Wireguard에 연결할 때 사용할 포트 번호를 직접 입력해도 됩니다.
IP Addresses 역시 설정 파일에 있는 내용을 그대로 복사해서 붙여 넣습니다.
향후 Wireguard VPN이 연결되면 공유기는 서버의 내부IP인 위 IP 번호로 서버와 하나의 네트워크에 연결됩니다.

인터페이스 기본 설정을 마쳤으면 고급설정 탭으로 이동합니다.
Wireguard 인터페이스 고급 설정
혹시 MTU 항목이 서버의 설정파일 숫자와 다른 경우 여기서 서버 설정과 같은 숫자로 입력합니다.

방화벽 설정은 건너뛰고, Peers 탭으로 이동합니다.
Peers 설정
Peers 탭으로 이동한 후 Add Peer 버튼을 눌러서 Peer를 하나 추가합니다.
본인이 구분할 수 있는 Peer 이름을 입력해주고, 설정 파일에 있던 값들로 각 항목들의 값을 입력합니다.
입력이 다 되었으면 저장 버튼을 눌러주고 아래와 같이 신규 wg0 인터페이스가 생성되었는지 확인합니다.
추가된 Wireguard Interface
Interface 설정 페이지에서 하단의 Save & Apply 버튼으로 저장한 내용을 공유기에 적용합니다.

방화벽 설정

Network->Firewall 메뉴에 들어가서 Zone 목록 하단의 추가 버튼을 눌러 새로운 Zone을 생성합니다.
방화벽 설정

zone 설정 팝업창이 뜨면 새로 생성된 Zone의 이름을 wg0_zone 등으로 본인이 구분할 수 있는 이름을 입력합니다.
Zone 설정
위 화면과 같이 Masquerading, MSS Clamping에 체크하고, Covered networks를 방금 생성한 wg0 인터페이스로 설정하고 저장 버튼을 눌러 저장합니다.

기존에 만들어져 있던 Zone 중에서 Lan 항목의 Edit 버튼을 클릭합니다.
Zone 목록

Lan Zone을 수정하기 위한 팝업이 뜨면 하단의 Allow forward to destination zones 항목을 기존의 wan zone에서 방금 생성한 wg0_zone으로 변경하고 저장합니다.
Lan Zone 설정

아래와 같이 변경된 후 하단의 Save & Apply 버튼을 눌러서 설정을 적용합니다.
수정 후 Zone 목록

설정이 적용되면 이제부터 모든 공유기의 네트워크 트래픽은 Oracle Cloud를 경유하게 됩니다.
요약->Wireguard Status 메뉴를 눌러보면 현재 Peer 연결 상태를 확인할 수 있습니다.
Wireguard Status

연결된 Oracle Cloud는 서울 Region에 생성된 인스턴스로서 브라우저에서 속도 체크를 해보면 서울지역의 속도 테스트 서버와 연결되는 것을 확인할 수 있습니다.
속도 테스트

현재 사용하고 있는 인터넷 회선은 300Mbps인데 속도 테스트에서는 40Mbps 미만으로 나옵니다. TV가 크지 않아서 Youtube에서 4K 영상 같은 고화질 영상을 볼 일이 없기 때문에 일반적인 인터넷 사용 속도로는 크게 나쁘지 않습니다. 일단 제가 Wireguard VPN에 연결한 목적은 만리방화벽으로 막힌 사이트들에 접속하고, 서울 지역에 위치한 서버를 경유해 지역제한이 걸린 한국 실시간 방송을 보기 위한 것이기 때문에 현재로서는 연결만 끊기지 않고 지속적으로 유지해 준다면 사용에는 크게 문제가 없을 것 같습니다.

현재까지 설정한 내용으로는 공유기가 Oracle Cloud와 Peer to Peer로 연결되어 모든 네트워크 트래픽이 Oracle Cloud로 가기 때문에 2개의 공유기로 구성된 집 내부 네트워크중 하위 네트워크인 샤오미 공유기에 접속했을 때는 상위 공유기의 관리페이지나 상위 공유기 하단에 연결된 NAS에는 접속이 불가능한 상황입니다.

샤오미 공유기의 트래픽을 ip 대역에 따라서 내부 네트워크로 보낼지, Oracle Cloud로 보낼지 분기해주는 방법을 연구해보고 다음 번에 포스팅해보겠습니다. 

댓글

이 블로그의 인기 게시물

Cloudflare DNS 서비스를 통해 Let's Encrypt 인증서 발급 및 갱신 자동화하고 v2-ui에 http+tls 위장 적용하기

샤오미 공유기 3세대(Mi Router R3G)에 OpenWrt 올리기