投稿

ラベル(OpenVPN)が付いた投稿を表示しています

OpenWrt の OpenVPN(サーバー)についての包括的メモ

イメージ
一応、公式に基本ガイド(👉 OpenVPN Basic )があるが、「 OpenWrt の OpenVPN 基本ガイドの徹底解析 」で先日述べたように何かと不満があるので、自分用を兼ねて包括的なメモを記しておくことにする。 情報の鮮度的には、古い方のルーター(OpenWrt v18.06.2)が OpenVPN v2.4.5、新しい方のルーター(OpenWrt v19.07-SNAPSHOT)が OpenVPN v2.4.7 である。 また、クライアント側は、macOS の Tunnelblick を使用している。 ソフトウェア openvpn-openssl と openvpn-easy-rsa(と luci-app-openvpn)を LuCI からインストールした。 PKI PKI については基本ガイドや巷の情報でほとんど十分だと思うので基本的に割愛する(👉 Easy-RSA 3 Quickstart 、 Easy-RSA 3 )。PKI 用の easyrsa コマンドは /etc/easy-rsa で実行し、PKI のパスが /etc/easy-rsa/pki となりその以下に各ファイルが配置されている。ただし、openvpn コマンドで作成する tlscrypt.key のみ、/etc/openvpn に置いている。 cd /etc/easy-rsa easyrsa init-pki easyrsa build-ca nopass easyrsa build-server-full openvpn-server nopass easyrsa build-client-full openvpn-client nopass easyrsa gen-dh openvpn --genkey --secret /etc/openvpn/tlscrypt.key TAP サーバーとして動かす場合 TAP サーバーとして設定するのは特に難しくなく、既存の情報で何か不足するようなこともない。 tap0 の準備 OpenVPN 自体の設定に一所懸命になっていると、この作業を思わず忘れてしまっていて動かずに原因がわからずに悩む場合があるが、仮想のものではあるとは言っても、まずは tap0 というインターフェースを用意してア

OpenWrt の OpenVPN 基本ガイドの徹底解析

イメージ
OpenWrt 公式の OpenVPN の基本ガイド(👉 OpenVPN Basic )について。(日本人にとっては英語情報であるということ以前に、たとえネイティブであってとしても)ただ単に設定方法のシェルコマンドが掲載してあるだけで、ほとんど説明がされていないので、今回はかなり細かく解析して検証してみたいと思う。 ソフトウェアのインストール opkg update opkg install openvpn-openssl openvpn-easy-rsa これは一目瞭然だと思うが、openvpn-openssl と openvpn-easy-rsa パッケージをインストールしているだけ。LuCI からアプリをインストールするのと何ら違いはない。 openvpn-openssl が OpenVPN サーバー本体。openvpn-easy-rsa は証明書と鍵を生成するための認証局用のプログラム(easyrsa コマンドを使えるようにする)。この OpenWrt ルーターで証明書・鍵を直接発行せずに、他の PC 等で別途用意した証明書・鍵をルーターに持ってきて使用する場合には、openvpn-easy-rsa の方のインストールは必ずしも必要ではないのかもしれない。 証明書・鍵の発行 これだけが openvpn-easy-rsa に関する作業で、OpenVPN 本体とは直接関係がない、下準備に関する話ので、先に説明を済ませておくことにする。 easyrsa init-pki easyrsa gen-dh easyrsa build-ca nopass easyrsa build-server-full server nopass easyrsa build-client-full client nopass openvpn --genkey --secret /etc/easy-rsa/pki/tc.pem 各コマンドの意義は原文のコメントにある通り: Remove and re-initialize the PKI directory Generate DH parameters Create a new CA Generate a keypair and sign locally for a server Gen

OpenWrt on WZR-HP-AG300H: VPN サーバー

イメージ
VPN は tun モードでセットアップした(が、それとは別に tap モードでもセットアップし、両立させた)。基本的には OpenWrt 公式のガイド(👉 OpenVPN Basic )に従ったが、必ずしも公式ガイドその通りに uci コマンドを使ってセットアップせずとも、コンフィグファイルを直接編集したり、一部の操作は LuCI でも代用できると思う。 PKI の準備 PKI をセットアップ(= Easy-RSA をインストール)し、必要な証明書等を生成する。これはガイドの通りにそのまま。 👉 OpenVPN Basic: PKI VPN 用の仮想の物理インターフェースの作成と、論理インターフェースの作成 仮想の物理インターフェース tun0 を紐付けた論理インターフェース vpn_router を作成する。プロトコルは none(LuCI 上では Unmanaged と表示される)👉 OpenVPN Basic: Network また、これは独自にやり方を見出したが、tap モードでセットアップすることもでき、物理インターフェース tap0 を作った場合は、論理インターフェースを新設せず、論理インターフェース lan の物理インターフェースの一つとして tap0 を追加するだけで良い(上のスクリーンショット。論理的に lan の一部として存在するので、tun モードの場合のように、Firewall の設定をする必要はない)。 OpenVPN Services OpenVPN サービスをセットアップ(= openvpn-openssl をインストール)し、設定する。ガイドでは uci コマンドを使っているが、luci-app-openvpn をインストールすれば、LuCI の GUI でも代用できないことはないと思う。ガイドの uci コマンドでは環境変数を使って自動化している部分があり、何らかの理由で不具合がある場合には、あとで適宜設定を修正する必要があるかもしれない。また、VPN 用のネットワークアドレスも、自分で使いたいものに修正する。👉 OpenVPN Basic: VPN-Service ポート番号が重複しないようにすれば、同時に、tun と tap のサーバー(上のスクリーンショットの router_server と