自宅VPNがWIFIルータの標準機能で爆速で構築できた件 #地球から勤務

現在のリモートワークの風潮は、感染症が加速したように思えます。
最近は、ヤフーが「どこでもオフィス」という制度を始めたことを聞きました。

https://about.yahoo.co.jp/pr/release/2022/01/12a/

研究室の先輩が、春から家から勤務するか、引っ越すか迷っているそうです。

**なんとも羨ましい悩みでしょうか?**

こうした「移動可能なライフスタイル」をデザインするには、通信路のセキュリティが担保されることは重要です。
通常のWIFIやTLS,SSL等の暗号化に加えてVPNを利用すれば、さらなるセキュリティが確保できます。

まあ、VPNってなんかめんどくさそう、そんなあなたに朗報です！

# WIFIルータの標準機能で構築できてしまった件

VPNを構築するにはラズベリーパイ等にオープンソースのOpenVPNなどをインストールし、ネットワークの設定をターミナルで行うという面倒な手続きを踏む記事をよく見かけます。

しかし、現在のWIFIルータにはVPNサーバーがインストールされているものがあります。また、動的DNSも標準でサポートされているWIFIルータもあります。

私の利用しているtp-linkのWIFIルータではOpenVPNが利用でき、かつ、動的DNSも利用できることを知ったので、わざわざラズパイや外部サービス使わなくてもできるのでは？と思い、試してみたところ十数分でセットアップができてしまったので、これを共有します。

大抵の場合、グローバルIPは固定されていない場合が多いです。このことを前提として、本記事では以下のステップを説明していきます。

- WIFIルータでOpenVPNをセットアップする。
- 動的DNSのセットアップをする。
- 証明書にハードコードされたIPアドレスを、動的DNSに書き換える。
- 端末でOpenVPN対応クライアントをセットアップする。
- 証明書を用いてクライアントからアクセスする。

# OpenVPNのセットアップ


tp-linkを使っている場合はこちらを参考に、OpenVPNを有効化し、証明書を生成し、エクスポートしましょう。

https://www.tp-link.com/jp/support/faq/1544/

その他のルータでOpenVPNのサーバー機能がついているものを使っている場合は、各自公式サイト等からやり方を学んでください。

# 動的DNSの設定 - 多くの場合必要

ルータ製造元のtp-link自体が動的DNSサービスを提供していますので、それを使います。公式ページ参考にしてやってみてください。

https://www.tp-link.com/jp/support/faq/1367/

なお、ここで登録できるドメイン名は、セキュリティ上の観点から、ランダムな文字列にすることをすごくお勧めします。
（わかりやすいドメイン名にすると、DDNSからグローバルIPが丸見えになって、悪意のある攻撃にさらされるかもしれません。）
自分の場合は、パスワードジェネレータを使ってドメイン名を決めました。なお、tp-linkの場合は、Dyndns, NO-IPなども利用可能なようです。

https://passwordsgenerator.net/


ドメイン名決めたら、pingでも打ってみましょう。帰ってくるはずです。

```
ping 作成したドメイン名
```

その他のルータでDDNSに関する機能がついているものを使っている場合は、各自公式サイト等からやり方を学んでください。

## DDNSについて
通常の回線では、グローバルIPアドレスは変動します。よって端末から自宅ネットワークに昨日のIPアドレスでアクセスしようにも、アクセスできないなんてことがあります。これを解決するのが動的DNSのサービスです。ラズパイ等でVPN構築する場合はcronなどで現在のグローバルIPを何らかの方法で、端末に送信する仕組みが必要だったり、動的DNSサービスのパッケージを入れているのだと思います。これ、面倒ですよね。WIFIルータ設定画面からGUIで設定できるのは非常にありがたいです。

# 証明書にハードコードされたIPアドレスを、DDNSのドメインに書き換える

冒頭でエクスポートした証明書をvim等で開いて`remote`のある行を探しましょう。

```:証明書のどこかにあるremoteの行
remote 777.777.777.777 7777
```

ここの真ん中には、OpenVPNセットアップした時点のグローバルIPがハードコードされています。
これは、基本的には時間が経つとIP変動により使えなくなるので、ここを先ほど取得したDDNSのドメインに書き変えましょう。

```:証明書のどこかにあるremoteの行
remote yourddns.bar.foo 7777
```

ちなみに、このDDNSと紐付けるやり方はよくわからなかったけど、証明書を眺めてみてここ書き換えたらいけんじゃね？と試したらできました。
何となく当たりをつけて試してみる、という過程は時間の節約に結びつきますね。

# 端末でOpenVPN対応クライアントをセットアップする

何でもいいとは思うのですが、macOS用のクライアントとしてググったら出てきたこちらをインストールしました。

https://tunnelblick.net/

先ほどDDNSのドメインを書き換えた証明書を、このクライアントに読み込ませてください。

# 最後にグローバルIPアドレス変わってるか確認

こちらのサイトで簡単に確認できますので、VPN繋いだり切断したりして、グローバルIPが変化することを確認しましょう。
なお、確認するために、わざわざスタバでマックブックを広げる必要はありません。
スマホのテザリング等で手っ取り早く(i), そもそもVPN経由でネットに繋がるのと(ii)IPが自宅のものになっていることを確認しましょう。

https://www.cman.jp/network/support/go_access.cgi


# 教訓: 車輪を再発明しない (車輪は現代に溢れている！)

ラズベリーパイを購入するか本気で迷っていましたが、よく考えればルータも日々進歩しているのでそこまでする必要がないことがわかりました。

すでにある３千円のWIFIルータを使えば、１万円するラズベリーパイを魔改造してVPNルータにする必要はないのです。

また、無料のよくわからない怪しいVPNサービスを利用しなくとも良いですし、かといって有料のVPNサービスを契約するまでもありません。

身の回りにあるものが、実はもっと有効活用できるのでは？と考えていくことが、車輪を大量生産してしまわないために必要な態度ですね。


# VPNが移動可能なライフスタイルを実現する

「移動可能なライフスタイル」という概念が、超人ティムフェリスによって提唱されています。

https://fourhourworkweek.com/

物価の安い国で生活したり、世界中を飛び回りながら、日本のサービスを享受したり、仕事をしたりする時代はすでに到来しているのではないでしょうか。

特に、その際に**ボトルネック**になるのが、**インターネット回線**だと私は考えています。

現代においても、ネットワークが検閲されている地域は存在しますし、**多くのWebサービスは世界を飛び回ることを想定していません。**

ですので、例えば昨日はドバイからアクセスし、明日は宇宙ステーションからネットにアクセスするなんてことがあった場合、**不審なログイン**としてあなたのアカウントが自動凍結されてしまうかもしれません。(もしそうなったとして、地球の電波を宇宙からキャッチして、SMSでの2段階認証なんてできるのでしょうか？？)

また、**世界中に溢れている暗号化されていないフリーWIFIは、必ずしも善意によって提供されているとは限りません。**

こうした現状から、セキュアなVPNを自宅に構築することが、**移動可能なライフスタイル**を実行するための強力なツールになるのではないでしょうか。

特にエンジニアはリモートワークができる先進的な職業だと思いますので、VPNでがっつり暗号化し、地球在住のエンジニアを目指してみてはいかがでしょうか。

そして、前澤社長の後を追って、**宇宙から地球にVPNを構築してくれるエンジニアが出てくる**ことを心から願っています。