徒然なるままに プログラミングメモや日々の生活などつれづれとつづっていくblog

2020年12月30日

OpnsenseでVPNサーバー(WireGuard)を構築する

Filed under: Linux,Opnsense — ranpei @ 8:16 AM

ネットワーク構成の変更で以下のようにOpnsense配下のLANに各サーバーを配置することになりました。

ですが、コレだと各サーバーに直接アクセスできません。

OpnsenseのSSHサーバーを踏み台に各サーバーにアクセスしても良いのですが、フロントにあるサーバーのSSHを有効にするのはセキュリティ的に少々不安が残ります。

(実際はファイアーウォールの設定も簡単にできるようにできてるので、そこまで心配する必要はないとは思いますが・・・)

そのためOpnsense側にVPNサーバーを導入して直接アクセスできるようにしたいと思います。

当初はドキュメントで利用可能とあったL2TPを利用するつもりでしたが、最新版では利用できなくなっている模様・・・・・

そのため使用可能(プラグイン含む)なモノの中から各OSとの親和性の高いWireGuardをチョイスしました。

◆WireGuardプラグインのインストール

「ファームウェア」→「プラグイン」から「os-wireguard」を「+」ボタンでインストールします。

◆WireGuardサーバーを設定

インストールが完了したら「VPN」メニューの中に「WireGuard」が追加されていますので選択。

「ローカル」タブを選択し、「+」ボタンでサーバーを設定します。

設定するのは「名前」「リッスンポート」「Tunnel Address」の3つ。

「保存」したら、再度設定を開くと「Public Key」と「Private Key」が自動生成されています。(Public Keyはクライアントの設定で使用します)

◆ファイアーウィールを設定

ファイアーウォールでWireGuardが利用するポートを開けます。

「リッスンポート」をいじっていなければデフォルトでは「51820/UDP」を開きましす。

◆クライアントを設定する

Windowsクライアントを公式サイトから取得してインストール。

インストールしたら「トンネルを追加」の「▼」から「空のトンネルを作成」を選択し新規に接続設定(Peer)を作成します。

作成したら任意の名前を入力してテキストエリア部分に以下のように追記していきます。

◆WireGuardサーバーにクライアント(Peer)を追加する

次に接続するクライアントをサーバーに登録していきます。

「Endpoints」タブを選択して「+」ボタンから接続するクライアントを登録します。

・名前は適当に

・Public Keyにはクライアントの共通鍵を登録します。

・Allowed IPsには接続を許可するIP帯を設定(Tunnel AddressとLAN配下を設定します)

設定が完了したら「ローカル」タブより設定を編集します。

「ピア」項目に先ほど設定したクライアントを選択して「保存」を押下。

◆クライアントから接続してみる

Windowsクライアントの有効化ボタンを押下して接続できるか試してみましょう。

っといってもIPアドレスが割り振られるとかないのでPingで通信できるか確認しましょう。

きちんとPingが通れば設定は完了となります。

2020年12月8日

Opnsense+NginxでMastodon

Filed under: Mastodon,Nginx,Opnsense — ranpei @ 9:00 AM

当鯖はWebフロントをOpnsense + Nginx Pluginで再構築したわけですが、この環境でMastodonを運用できるのか?

まあ、結論から言えばできます。現にmstdn-jp.siteは動作してますので。。その時の設定メモです。

◆WebSoket Supportの有効化

基本は前回解説したリバースプロキシの設定でよいのですが、それだけだときちんと動作しません。

MastodonのWebUIはWebSocketを使って新規トゥートを通知していますのでそれが動作するようにします。

その設定なのですが、基本設定の中にはないので左上の「詳細モード」トグルをONにして「Advanced Proxy Options」を表示させてください。

その設定の中から「WebSocket Support」にチェックを入れます。

これでWebSocketを使った通知が有効になりますのでWebUIに新規トゥートが通知されるようになります。(Web、Streaming両方に設定します)

◆所感

Opnsenseはルーター用OSといいつつWebフロントサーバーとしての機能してくれることがわかりました。

ほかにもPluginを用いることでWebファイアーウォールとして機能するなど表側に置く鯖としてはかなり有用な部類に入るOSだと思います。

欠点を上げるなら、初期設定時はLAN配下からしかWebUIにアクセスできない、VPNの構築がちと大変ってとことでしょうかね。(セキュリティ的にはそれで良いのですが・・)

初期設定用のクライアントを用意することさえできればGUIでWebフロントとしての設定をほぼ完了できるOSは魅力的かもしれません。

Powered by WordPress