WireGuard로 가상 사설망 구성해보기 (microtik)

[원본 링크]

wireguard는 대표적인 VPN 프로토콜이다. 가상 사설망을 구성하는 용도로 사용할 수 있다.

openVPN의 강력한 경쟁자이고, 빠른 속도와 낮은 리소스 사용량이 장점이다. 그래서 보안/안정성보다 속도와 처리량이 중요하다면 최우선으로 선택할만하다.

여기서는 microtik의 라우터 기능을 사용해서 외부 클라우드의 장비를 내부망에 집어넣는 방법을 정리해본다.
오픈 프로토콜이기 때무에 wireguard를 지원하는 라우터라면 전부 비슷한 흐름으로 처리할 수 있다.




준비

먼저 현재 장비가 wireguard를 지원하는지부터 확인한다.

:put ("WG supported: " . [:tostr ([:len [/interface wireguard print as-value]] >= 0)])

microtik의 경우에는 다음과 같은 전용 탭 & UI를 제공한다.




라우터에 wireguard 기본 구성 추가

이건 한번만 해도 된다. 터미널을 열어서 먼저 적당한 이름으로 인터페이스를 추가하고, IP를 할당하고, 네트워크 경로와 방화벽을 허용해준다.

/interface/wireguard add name=wg-cloud listen-port=51820 # 인터페이스 추가
/ip/address add interface=wg-cloud address=10.100.0.1/24 # 라우터 터널에 IP 할당
/ip/firewall/filter add chain=input action=accept protocol=udp dst-port=51820 place-before=0 comment="WG inbound" # 방화벽 허

# WG <> LAN 트래픽 허용 
/ip/firewall/filter add chain=forward action=accept in-interface=wg-cloud place-before=0 comment="WG → LAN"
/ip/firewall/filter add chain=forward action=accept out-interface=wg-cloud place-before=0 comment="LAN → WG"

그리고 저기서 나온 라우터 측 공개키를 가져다가 보관해둔다.




피어 등록 (MacOS)

이번에는 피어용 키를 만들고 라우터에 등록해보자.
이건 피어 장비에서 하지는 않아도 된다.

brew install wireguard-tools

전용 도구를 설치하고


mkdir -p ~/wg-keys/worker-test && cd ~/wg-keys/worker-test
wg genkey | tee private.key | wg pubkey > public.key
# 권한 (private key 는 소유자만 읽기)
chmod 600 private.key

키 쌍을 만든 다음에


 /interface/wireguard/peers add interface=wg-cloud public-key="피어측 공개키" allowed-address=10.100.0.2/32 comment="test-worker"

라우터에 적절히 등록해준다. (터미널)


그래서 이렇게 등록이 되면 잘 된 것이다.




피어 등록 (외부 장비)

이제 피어를 신규로 띄워서 등록해보자.
나는 AWS EC2 인스턴스를 하나 잡고 그걸 피어로 추가하려고 한다.

종속성을 적당히 설치하고, wireguard 설정파일을 추가해서 내용을 적당히 채워준다.

sudo apt-get update && sudo apt-get install -y wireguard
sudo vim /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/wg0.conf
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
[Interface]
PrivateKey = <피어 측 private key>
Address    = 10.100.0.2/24
MTU        = 1420

[Peer]
PublicKey  = <라우터 public key>
Endpoint   = <라우터공인IP>:51820
AllowedIPs = 10.100.0.0/24, 192.168.88.0/24
PersistentKeepalive = 25

위에는 아까 공개키 쌍 만들고 나온 피어 비밀키를 넣고, 아래에는 라우터의 공개키, 라우터의 공인 IP를 넣어준다.


그리고 오류 없이 이렇게 실행되고


sudo wg show

# LAN 접근 테스트
ping -c 3 10.100.0.1          # 라우터 터널 IP
ping -c 3 192.168.88.202      # 내부 LAN 장비 아무거나

실제 LAN 내부의 IP에도 핑퐁이 잘 되면 끝난 것이다.


그럼 이제 쿠버 클러스터를 물린다든지 하든 내부망 전용 작업도 스무스하게 할 수 있을 것이다.


참조
https://help.mikrotik.com/docs/spaces/ROS/pages/69664792/WireGuard

Search