WireGuard · 2025-12-28

OpenWrt에서 WireGuard 설치 및 포트포워딩 구성

OpenWrt 라우터에 WireGuard 설치부터 포트포워딩과 방화벽 설정까지 초보자도 따라가기 쉬운 절차와 필수 명령어 모음

작성일 : 2025-12-28 ㆍ 작성자 : 관리자
post
목차

개요

이 문서는 OpenWrt 라우터에 WireGuard를 설치하고 외부에서 접속할 수 있도록 포트포워딩을 설정하는 전체 흐름을 다룬다. 네트워크 기본 지식이 적은 사용자도 이해하기 쉽도록 단계별로 설명한다. 키 생성, 인터페이스 구성, 방화벽 및 포트포워딩 확인 방법을 포함한다.

사전 준비

다음 항목이 준비되어야 한다. OpenWrt가 설치된 라우터, 루트(또는 SSH) 접속 권한, 인터넷 연결, 패키지 저장소 접근이 필요하다. 기본 패키지 목록이 최신인지 확인하는 것이 권장된다.

필수 확인 항목

  • OpenWrt 버전 확인 (권장: 19.07 이상 또는 최신 릴리스)
  • 루트 SSH 접속 가능 여부
  • 라우터의 공인 IP 또는 포트 전달을 허용하는 상위 장비 설정 정보

WireGuard 패키지 설치

패키지 업데이트 후 WireGuard와 관련 도구를 설치한다. 설치 명령 실행 시 에러가 없도록 저장소가 활성화되어야 한다.

opkg update
opkg install wireguard wireguard-tools luci-app-wireguard

설치 후 luci 인터페이스에서 GUI 구성도 가능하다. 그러나 CLI로 설정하면 과정을 더 명확하게 이해하는 데 도움이 된다.

키 생성

서버(라우터)와 클라이언트 각각에 공개키/개인키 쌍이 필요하다. 다음 명령은 라우터에서 키를 생성하는 예시이다. 파일 권한 보호를 위해 umask를 사용한다.

umask 077
wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey

생성된 키는 /etc/wireguard 폴더에 저장된다. 클라이언트 측에서도 동일한 방식으로 키를 생성한다.

인터페이스 설정

OpenWrt 네트워크 설정은 /etc/config/network에 추가하거나 UCI 명령으로 구성할 수 있다. 아래는 UCI를 사용한 예시이다.

uci set network.wg0=interface
uci set network.wg0.proto='wireguard'
uci set network.wg0.private_key='(라우터_비공개키)'
uci set network.wg0.addresses='10.0.0.1/24'
uci commit network
/etc/init.d/network restart

WireGuard 포트는 기본적으로 UDP 51820을 사용한다. 포트를 변경하려면 추가 옵션으로 설정하면 된다.

피어(클라이언트) 추가

클라이언트의 공개키와 허용 대역을 등록한다. UCI를 사용한 예시는 다음과 같다.

uci add network.wg0.wg_peer
uci set network.@wg_peer[-1].public_key='(클라이언트_공개키)'
uci set network.@wg_peer[-1].allowed_ips='10.0.0.2/32'
uci commit network
/etc/init.d/network restart

이 설정으로 라우터는 클라이언트 10.0.0.2로의 패킷을 허용한다.

방화벽과 포트포워딩 설정

외부에서 WireGuard 포트로 접근하려면 방화벽에서 UDP 포트를 허용해야 한다. UCI로 방화벽 규칙을 추가하는 예시가 아래에 있다.

uci add firewall rule
uci set firewall.@rule[-1].name='Allow-WireGuard'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].dest_port='51820'
uci set firewall.@rule[-1].proto='udp'
uci set firewall.@rule[-1].target='ACCEPT'
uci commit firewall
/etc/init.d/firewall restart

만약 라우터 뒤에 또 다른 NAT 장비가 존재하면 상위 장비에서 해당 UDP 포트를 라우터의 내부 IP로 포워딩해야 한다. 포트포워딩 정보에는 외부 포트, 내부 포트, 내부 대상 IP가 포함된다.

테스트 및 문제해결

클라이언트에서 WireGuard를 활성화한 뒤 라우터에서 상태를 확인한다. 상태 확인 명령은 다음과 같다.

wg show wg0

주요 확인 항목은 피어의 latest handshake 여부, 전송량, AllowedIPs 일치 여부이다. 손쉬운 문제 원인은 포트 차단, 잘못된 키, AllowedIPs 충돌이다. 방화벽 로그와 tcpdump로 패킷이 도달하는지 확인한다.

보안 권고

  • 개인키 파일은 600 권한으로 제한
  • 필요 없는 포트는 차단
  • 정기적인 패키지 업데이트 적용

마무리

본 절차는 OpenWrt WireGuard 설정의 핵심 흐름을 담고 있다. 키 생성, 인터페이스 구성, 방화벽 규칙, 포트포워딩과 테스트가 포함되어 전체 연결이 안전하게 동작하도록 설계되었다. 추가 요구사항이나 네트워크 구조에 따라 세부 설정이 달라질 수 있다.

OpenWrt WireGuard 설정 OpenWrt WireGuard 설치법 라우터 WireGuard 포트포워딩 WireGuard 설치 OpenWrt 방화벽 설정 WireGuard 포트포워딩 WireGuard 키 생성 OpenWrt 네트워크 설정