
SynologyのNASでWireGuardを動作させる
SynologyはWireGuardを公式サポートしていません。そのためWireGuardを動作させるには独自の方法が必要です。ここではSynologyのNASへWireGuardをインストールする方法を記載します。Googleなどで検索すれば似たような方法がいくつか見つかります。
動作環境と事前設定
以下の構成で動作確認をしています。
・Synology DiskStation DS220+ (メモリは4GBを追加して6GBで確認)
・DSM: 7.2.2-72806
・WireGuard: 1.0.20220627
・Container Manager: 20.10.23-1437
初期状態のNASではContainer Managerがインストールされていません。パッケージセンターからインストールしましょう。また必要に応じてNASを固定IPにしたり、ポートを開放したり、DDNSを取得しておいてください。
CPUのパッケージアーチの特定
Synology のNASは種類により搭載されているCPUが異なります。そしてCPU毎にインストールするWireGuardのパッケージが異なります。そのため、まずはこちらのサイトにアクセスし、自分のNASのパッケージアーチを調べます。
WireGuardのダウンロード
DSMのバージョンとパッケージアーチに応じたWireGuardをWebで探します。(例えばこのあたりとかこのあたりとか。) NASに合わせたspkをダウンロードします。
WireGuardのインストール
DSMのパッケージセンターを開き、手動アップロードから先ほどダウンロードしたspkをインストールします。途中、デジタル署名がないという警告が出ますが無視して進めます。最後の画面では「インストール後に実行する」のチェックを外します。



WireGuardの実行
DSMからはWireGuardがうまく実行できないため、SSHでPCから接続し実行します。コントロールパネルからSSHを有効にします。もし継続的にSSHをしようするならポートは適当な値に変更しておきましょう。

WindowsのPowerShellを起動し、SSHでNASと接続します。
[ssh user@123.456.789.012 -p 22]と入力します。
ここで[user]はユーザー名、[123.456.789.012]はNASのIPアドレス、[22]はポート番号です。途中でパスワードの入力を求められます。
ログインができたら[sudo /var/packages/WireGuard/scripts/start]と入力します。ここでもパスワードを求められます。成功すると[WireGuard has been successfully started]と表示され、WireGuardが起動します。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows
PS C:\Users\hoge> ssh hogehoge@192.168.0.10 -p 22
###省略###
Are you sure you want to continue connecting (yes/no[fingerprint])? [yesと入力]
###省略###
hogehoge@192.168.0.10's password: [ここにパスワードを入力]
###省略###
hogehoge@DS220:/$ sudo /var/packages/WireGuard/scripts/start
Password: [ここにパスワードを入力]
hogehoge@DS220:WireGuard has been successfully started
パッケージセンターでWireGuardの起動を確認できます。

WireGuardの設定
すでにWireGuardはインストールできましたが、設定をCLIで行うのは面倒です。そこでwg-easyというソフトを入れてGUIで管理します。
まずwg-easyの管理画面に入るパスワードを決めましょう。そしてパスワードを決めたら、そのパスワードのBCryptハッシュを計算します。WebサイトにBCryptハッシュを計算するサイトがいくつかあるので、そちらで計算してください。
例えばパスワードが[Password]で繰り返し回数10回の場合、BCryptハッシュは[$2y$10$qPtbDvJrGLgU/rt64vOy8.HDS9y9lKH80mgb7JWpbxyeO1xIRs/1a]のようになります。
その後、$マークを$$マークに変更し[$$2y$$10$$qPtbDvJrGLgU/rt64vOy8.HDS9y9lKH80mgb7JWpbxyeO1xIRs/1a]としてください。
次にDSMからFileStationを起動し、[docker]の中に[wg-easy]というフォルダを作ってください。

DSMからContainer Managerを起動します。Container Manager→プロジェクト→作成を押し、プロジェクトの作成画面に入ります。プロジェクト名、パス、ソースを以下の通りにし、コードを貼り付けてください。

services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy
container_name: wg-easy
environment:
- LANG=ja
- TZ=Asia/Tokyo
- WG_HOST= hogehoge.synology.me #ここにグローバルIPまたはSynologynDDNSを書きます
- WG_PORT=51820 #ポートを変更したい場合はここを書き換えてください
- WG_DEFAULT_DNS=8.8.8.8 #dnsはルーターのアドレスや8.8.8.8など
- PASSWORD_HASH=$$2y$$10$$qPtbDvJrGLgU/rt64vOy8.HDS9y9lKH80mgb7JWpbxyeO1xIRs/1a #ここにBCryptハッシュを書きます
volumes:
- /volume1/docker/wg-easy:/etc/wireguard
ports:
- 51820:51820/udp #WireGuardのポートです。上記で変更した場合はこちらも変更が必要です。
- 51821:51821/tcp #wg-easyのポートです
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv4.ip_forward=1
restart: unless-stopped
あとはそのまま最後まで進んでください。場合によっては5分くらいかかるかもしれません。成功すると次の画面になり、Container Managerにwg-easyが追加され、緑ランプがつきます。

その後、ブラウザで [http://123.456.789.012:51821] に接続するとwg-easyにアクセスできます。(123.456.789.012にはNASのIPを入れてください。)

WireGuardおよびwg-easyの使い方はWEBで検索してみてください。
お疲れさまでした。
いいなと思ったら応援しよう!
