WireGuard は OPNsense で使う
RHEL 系で WireGuard を使っていましたが、OPNsense で WireGuard がサポートされていることを知り、こちらに移行しました。
OPNsense の WireGuard は WebGUI で設定できます。シェルで鍵作ったり設定書き込むのが面倒だったので、非常に助かります。
ほぼ自分用の備忘録です。
筆者の環境
多重 NAT の環境です。OPNsense はローカルネットワーク内に配置しています。
実際は Proxmox 内に OPNsense を配置しています。
OPNsense のセットアップ
インストールディスク: OPNsense-24.7-dvd-amd64.iso
インストール後、コンソール画面にログイン
以下の設定を行います。
1\) Assign interfaces
vtnet 0 を WAN
2\) Set interface IP address
IP: 192.168.100.10/24
GW: 192.168.100.1
IPv6 、DHCP は使いません
OPNsense の WebGUI にログイン
- セットアップウィザードに進む
- ホスト名や言語の設定をする
- タイムゾーンは Asia/Tokyo
- WAN インターフェースの設定
IP と GW はすでに設定しているので入力済みのはず
WAN がローカルネットワーク内の場合は以下のチェックボックス 2 つを外す。グローバルを割り当てている場合は必ずチェックを入れましょう。- Block RFC1918 Private Networks:
Block private networks from entering via WAN - Block bogon networks:
Block non-internet routed networks from entering via WAN
ここのチェックが外れていると、WAN ポートをローカルアドレスで使えません。
- Block RFC1918 Private Networks:
- LAN インターフェースの設定
設定なし。他ネットワークや外部と直で繋がってる人は LAN の IP を任意で設定。
WebGUI のインターフェースを設定 ※
今回は WAN の 80/443 ポートを許可します。
※ OPNsense が直接外部と繋がっている場合は WAN の 80/443 は許可しない方がいいです。
ここで WebGUI インターフェースの HTTP/HTTPS 許可をしないと、WireGuard のインターフェースを追加した際に接続が切れて、大変面倒なことになります。
Firewall > Rules > WAN
WAN への TCP 80/443 を許可
WireGuard の設定
WireGuard のインスタンスを作成
VPN > WireGuard > Instances
WireGuard のピアを追加
VPN > WireGuard > Peer generator
エンドポイントにグローバル IP とポートマッピング / NAT で設定したポート番号を入力
Allowed IPs に 0.0.0.0/0 を入力するとフルトンネルになります。今回はフルトンネルで設定します。DNS サーバーは RTX1210 にしています。内部 DNS がある場合は、それを設定してください。
すべて入力したら Config をコピー、もしくは QR コードをスキャンして VPN クライアントに設定を保存し、チェックボタンで (Store and generate next) 確定。
WireGuard を起動
Enable WireGuard
にチェックを入れて保存
WireGuard のインターフェースを設定
Interfaces > Assignments
wg0 で保存。
続いて、wg0 インターフェースを有効化する。
Interfaces > [wg0]
Enable と Lock にチェックを入れて保存。
ちゃんと WebGUI インターフェースの割り当てや HTTP/HTTPS の許可がされてない場合、ここで接続が切れてしまいます。
wg0 インターフェースの外向き通信を許可
Firewall > Rules > wg0
ここを設定しないと外に出れません。
UDP 51820 ポートを許可
Firewall > Rules > WAN
接続する
VPN クライアントで保存した設定を有効にし、接続します。
IP 確認サイトなどで、自宅の IP アドレスが表示されたら成功です。
Discussion