NextcloudとPi-Holeを外出先から使う!WireGuardによるセキュアなVPN接続

記事
IT・テクノロジー
これまで外出中に仕事場にあるNextcloudへアクセスする際、Tailscaleを使っていましたが、定期的にログインが必要なのが面倒で今回WireGuardを導入してみました。

いつもならCLIのみで作業しますが、今回はWireGuard UIを利用して設定を行いました。外部からはアクセスできないので問題はないでしょう。
どちらもdocker-composeを使用しています。

初っ端よりウェブブラウザからWireGuard UIに接続できず困惑。ssコマンドで確認すると確かにlisten状態ですが、タイムアウトが発生します。結局IPv6アドレス直指定でアクセスすることができました。
ちなみにIPv6アドレスでアクセスするには `http://[IPv6アドレス]:ポート番号/` という感じでIPv6アドレスをブラケットで囲う必要があります。

ルータでポートを開放しようとしましたが、WireGuardデフォルトのポート番号はルータの仕様で解放できないようで、WireGuard側のポート番号を変更することで外部からWireGuardを経由してNextcloudにアクセスできるようになりました。

また、Nextcloudを運用しているサーバ(といってもPentium N4200搭載のミニPCですが)には広告ブロッカーであるPi-Holeも稼働しているので、外出中にWireGuardを使用する際は、DNSとしてPi-Holeを使用することにしました。これで広告をブロックできるだけでなく無駄なデータ消費を抑えることができます。

さらにLet's EncryptでNextcloudのhttps化をしてみようと思いましたが、外部に公開しない場合はDNS-01 challengeを使用して認証する必要があります。さくらのドメインはDNS用のAPIがないようで、断念しました。Cloudflareに移管しようと思いましたが、トップレベルが対象外でした。残念。

WireGuardには公式のiOS用、Android用アプリがあります。これで外出中もiPhoneとPixelからWireGuardを経由して安全にNextcloudに接続できるようになっただけではなく、ある程度広告もブロックできるようになりました。

ちなみにWireGuardとPi-Holeを組み合わせた環境はさくらのVPSでも構築しています。これで万が一どちらかに不具合があっても困ることはなさそうです。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す