<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenVPN on KTDEVX</title><link>/ja/tags/openvpn/</link><description>KTDEVX (OpenVPN)</description><generator>Hugo -- gohugo.io</generator><language>ja</language><managingEditor>ktdevx@gmail.com
(Kaito Takemura)</managingEditor><lastBuildDate>Wed, 30 Apr 2025 23:28:18 +0900</lastBuildDate><atom:link href="/ja/tags/openvpn/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenWrtでOpenVPNサーバーを構築し、外部から自宅ネットワークにアクセスする</title><link>/ja/blog/set-up-a-vpn-server-on-openwrt-using-openvpn/</link><pubDate>Wed, 30 Apr 2025 23:28:18 +0900</pubDate><author>ktdevx@gmail.com (Kaito Takemura)</author><guid>/ja/blog/set-up-a-vpn-server-on-openwrt-using-openvpn/</guid><description>&lt;h2 id="はじめに" >
&lt;div>
&lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab">
#
&lt;/a>
はじめに
&lt;/div>
&lt;/h2>
&lt;p>OpenVPNは暗号化されたVPNトンネルを提供し、外出先から自宅ネットワークに安全にアクセスできるオープンソースのVPN技術です。本記事では、OpenWrtルーター上にOpenVPNサーバーを構築し、複数のクライアントから接続する手順を詳しく解説します。&lt;/p>
&lt;p>&lt;strong>対象者：&lt;/strong> OpenWrtがインストール済みで、SSH接続が可能なユーザー&lt;br>
&lt;strong>前提条件：&lt;/strong> &lt;a href="https://www.ktdevx.com/ja/blog/install-friendlywrt-on-nanopi-r2s/">OpenWrtのインストール&lt;/a>、管理者権限での操作、ターミナル/SSH接続の基本知識&lt;/p>
&lt;h2 id="環境情報" >
&lt;div>
&lt;a href="#%e7%92%b0%e5%a2%83%e6%83%85%e5%a0%b1">
#
&lt;/a>
環境情報
&lt;/div>
&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>項目&lt;/th>
&lt;th>値&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>OS&lt;/td>
&lt;td>OpenWrt 24.10.0 以降&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>VPN プロトコル&lt;/td>
&lt;td>OpenVPN UDP 1194&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>VPN ネットワーク&lt;/td>
&lt;td>10.8.0.0/24&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>暗号化方式&lt;/td>
&lt;td>AES-128-CBC&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>認証方式&lt;/td>
&lt;td>SHA256&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>認証局有効期限&lt;/td>
&lt;td>3650 日（10 年）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>証明書有効期限&lt;/td>
&lt;td>825 日&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="パッケージのインストール" >
&lt;div>
&lt;a href="#%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab">
#
&lt;/a>
パッケージのインストール
&lt;/div>
&lt;/h2>
&lt;p>まず、OpenWrtのパッケージリストを更新し、OpenVPN関連パッケージをインストールします。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>opkg update
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>opkg install openvpn-openssl openvpn-easy-rsa
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>インストール内容：&lt;/strong>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>パッケージ&lt;/th>
&lt;th>説明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>openvpn-openssl&lt;/strong>&lt;/td>
&lt;td>OpenVPNメインパッケージ（SSL/TLS対応）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>openvpn-easy-rsa&lt;/strong>&lt;/td>
&lt;td>CA（認証局）と証明書を生成・管理するツール&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>luci-app-openvpn&lt;/strong>（オプション）&lt;/td>
&lt;td>LuCI WebUIでOpenVPNを管理するインターフェース&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>luci-i18n-openvpn-ja&lt;/strong>（オプション）&lt;/td>
&lt;td>LuCIのOpenVPN日本語ローカライズ&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="環境変数の設定" >
&lt;div>
&lt;a href="#%e7%92%b0%e5%a2%83%e5%a4%89%e6%95%b0%e3%81%ae%e8%a8%ad%e5%ae%9a">
#
&lt;/a>
環境変数の設定
&lt;/div>
&lt;/h2>
&lt;p>テキストエディタで&lt;code>/etc/profile.d/50-openvpn-easy-rsa.sh&lt;/code>を編集します。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># default PKI dir&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>export EASYRSA&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>EASYRSA&lt;span style="color:#66d9ef">:-&lt;/span>/etc/easy-rsa&lt;span style="color:#e6db74">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>export EASYRSA_PKI&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>EASYRSA_PKI&lt;span style="color:#66d9ef">:-&lt;/span>$EASYRSA/pki&lt;span style="color:#e6db74">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>export EASYRSA_VARS_FILE&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>EASYRSA_VARS_FILE&lt;span style="color:#66d9ef">:-&lt;/span>$EASYRSA/vars&lt;span style="color:#e6db74">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>export EASYRSA_TEMP_DIR&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>EASYRSA_TEMP_DIR&lt;span style="color:#66d9ef">:-&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>TMPDIR&lt;span style="color:#66d9ef">:-&lt;/span>/tmp/&lt;span style="color:#e6db74">}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>編集して保存しましょう。profile.dの内容はログイン時に適用されるため、再度ログインしなおすか、&lt;code>. /etc/profile.d/50-openvpn-easy-rsa.sh&lt;/code>と打って設定を適用させましょう。これにより、easy-rsaのベースディレクトリやpkiフォルダのパスが環境変数に設定されます。&lt;/p>
&lt;h2 id="証明書認証局caの構築" >
&lt;div>
&lt;a href="#%e8%a8%bc%e6%98%8e%e6%9b%b8%e8%aa%8d%e8%a8%bc%e5%b1%80ca%e3%81%ae%e6%a7%8b%e7%af%89">
#
&lt;/a>
証明書認証局(CA)の構築
&lt;/div>
&lt;/h2>
&lt;p>Easy-RSAの&lt;code>build-ca&lt;/code>コマンドで証明書認証局(CA)を構築します。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# easyrsa build-ca
* Using Easy-RSA configuration:
/etc/easy-rsa/vars
* Using SSL: openssl OpenSSL 3.0.16 11 Feb 2025 (Library: OpenSSL 3.0.16 11 Feb 2025)
Enter New CA Key Passphrase:&amp;lt;パスフレーズ&amp;gt;
Confirm New CA Key Passphrase:&amp;lt;パスフレーズ(確認用)&amp;gt;
Using configuration from /tmp//2f994ff4/temp.5.1
...省略...
Enter PEM pass phrase:&amp;lt;パスフレーズ&amp;gt;
Verifying - Enter PEM pass phrase:&amp;lt;パスフレーズ(確認用)&amp;gt;
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter &amp;#39;.&amp;#39;, the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:&amp;lt;コモンネーム&amp;gt;
Notice
------
CA creation complete. Your new CA certificate is at:
* /etc/easy-rsa/pki/ca.crt
&lt;/code>&lt;/pre>&lt;p>これにより、&lt;code>/etc/easy-rsa/pki&lt;/code>ディレクトリにCA証明書&lt;code>ca.crt&lt;/code>と、&lt;code>/etc/easy-rsa/pki/private/&lt;/code>ディレクトリにCA秘密鍵&lt;code>ca.key&lt;/code>が生成されます。CA証明書を&lt;code>/etc/openvpn&lt;/code>ディレクトリにコピーしましょう。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# cp /etc/easy-rsa/pki/ca.crt /etc/openvpn
&lt;/code>&lt;/pre>&lt;p>CAの構築は以上で完了です。&lt;/p>
&lt;h2 id="サーバー証明書と秘密鍵の作成" >
&lt;div>
&lt;a href="#%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e8%a8%bc%e6%98%8e%e6%9b%b8%e3%81%a8%e7%a7%98%e5%af%86%e9%8d%b5%e3%81%ae%e4%bd%9c%e6%88%90">
#
&lt;/a>
サーバー証明書と秘密鍵の作成
&lt;/div>
&lt;/h2>
&lt;p>Easy-RSAの&lt;code>build-server-full&lt;/code>コマンドでサーバー証明書と鍵を生成します。&lt;/p>
&lt;p>任意のサーバー名を指定して証明書と鍵を生成します。ここではサーバー名は&lt;code>server&lt;/code>としました。パスフレーズは設定しないため&lt;code>nopass&lt;/code>オプションを設定します。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# easyrsa build-server-full &amp;lt;サーバー名&amp;gt; nopass
* Using Easy-RSA configuration:
/etc/easy-rsa/vars
* Using SSL: openssl OpenSSL 3.0.16 11 Feb 2025 (Library: OpenSSL 3.0.16 11 Feb 2025)
...省略...
-----
Notice
------
Keypair and certificate request completed. Your files are:
* req: /etc/easy-rsa/pki/reqs/&amp;lt;サーバー名&amp;gt;.req
* key: /etc/easy-rsa/pki/private/&amp;lt;サーバー名&amp;gt;.key
You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a server certificate
for &amp;#39;825&amp;#39; days:
subject=
commonName = &amp;lt;サーバー名&amp;gt;
Type the word &amp;#39;yes&amp;#39; to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /tmp//d5a3377e/temp.4.1
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:&amp;lt;パスフレーズ&amp;gt;
Check that the request matches the signature
Signature ok
The Subject&amp;#39;s Distinguished Name is as follows
commonName :ASN.1 12:&amp;#39;&amp;lt;サーバー名&amp;gt;&amp;#39;
Certificate is to be certified until Aug 4 09:43:06 2027 GMT (825 days)
Write out database with 1 new entries
Database updated
Notice
------
Certificate created at:
* /etc/easy-rsa/pki/issued/&amp;lt;サーバー名&amp;gt;.crt
Notice
------
Inline file created:
* /etc/easy-rsa/pki/inline/&amp;lt;サーバー名&amp;gt;.inline
&lt;/code>&lt;/pre>&lt;p>これにより、&lt;code>/etc/easy-rsa/pki/issued&lt;/code>ディレクトリにサーバー証明書&lt;code>server.crt&lt;/code>と、&lt;code>/etc/easy-rsa/pki/private/&lt;/code>ディレクトリにサーバー秘密鍵&lt;code>server.key&lt;/code>が生成されます。サーバー証明書と秘密鍵を&lt;code>/etc/openvpn&lt;/code>ディレクトリに移動しましょう。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# mv /etc/easy-rsa/pki/issued/server.crt /etc/easy-rsa/pki/private/server.key /etc/openvpn
&lt;/code>&lt;/pre>&lt;p>以上でサーバー証明書と秘密鍵の作成は完了です。&lt;/p>
&lt;h2 id="dhパラメータの生成" >
&lt;div>
&lt;a href="#dh%e3%83%91%e3%83%a9%e3%83%a1%e3%83%bc%e3%82%bf%e3%81%ae%e7%94%9f%e6%88%90">
#
&lt;/a>
DHパラメータの生成
&lt;/div>
&lt;/h2>
&lt;p>Easy-Rsaの&lt;code>gen-dh&lt;/code>コマンドを使って、暗号化に必要な乱数パラメータを生成します。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# easyrsa gen-dh
* Using Easy-RSA configuration:
/etc/easy-rsa/vars
* Using SSL: openssl OpenSSL 3.0.16 11 Feb 2025 (Library: OpenSSL 3.0.16 11 Feb 2025)
Generating DH parameters, 2048 bit long safe prime
...省略...
DH parameters appear to be ok.
Notice
------
DH parameters of size 2048 created at:
* /etc/easy-rsa/pki/dh.pem
&lt;/code>&lt;/pre>&lt;p>しばらく待つと、&lt;code>/etc/easy-rsa/pki&lt;/code>ディレクトリにDHパラメータ&lt;code>dh.pem&lt;/code>が生成されます。DHパラメータを&lt;code>/etc/openvpn&lt;/code>ディレクトリに移動しましょう。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# mv /etc/easy-rsa/pki/dh.pem /etc/openvpn
&lt;/code>&lt;/pre>&lt;p>以上でDHパラメータの生成は完了です。&lt;/p>
&lt;h2 id="tls-authキーの生成" >
&lt;div>
&lt;a href="#tls-auth%e3%82%ad%e3%83%bc%e3%81%ae%e7%94%9f%e6%88%90">
#
&lt;/a>
TLS-Authキーの生成
&lt;/div>
&lt;/h2>
&lt;p>TLS-Auth機能を使用するためTLS-Authキーを生成します。&lt;/p>
&lt;p>TLS-Auth機能を有効化すると、VPNセッション開始時のパケットをHMACで認証し、認可されないパケットを破棄することができます。&lt;/p>
&lt;pre tabindex="0">&lt;code>openvpn --genkey secret /etc/openvpn/ta.key
&lt;/code>&lt;/pre>&lt;p>これにより、&lt;code>/etc/openvpn&lt;/code>ディレクトリにTLS-Authキー&lt;code>ta.key&lt;/code>が生成されます。&lt;/p>
&lt;h2 id="サーバー設定ファイルの作成" >
&lt;div>
&lt;a href="#%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90">
#
&lt;/a>
サーバー設定ファイルの作成
&lt;/div>
&lt;/h2>
&lt;p>OpenVPNのサーバー設定ファイルを作成し、クライアント接続時のルート設定を行います。&lt;/p>
&lt;p>テキストエディタで&lt;code>/etc/openvpn/server.conf&lt;/code>を新規作成し、以下の内容を記載します：&lt;/p>
&lt;pre tabindex="0">&lt;code>port 1194
proto udp
dev tun
# SSL/TLS証明書と鍵
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-auth /etc/openvpn/ta.key 0
# VPNクライアント用ネットワーク設定
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/lib/openvpn/ipp.txt
# VPNクライアントに自宅ネットワークへのルートをpush
push &amp;#34;route 192.168.1.0 255.255.255.0&amp;#34;
push &amp;#34;dhcp-option DNS 8.8.8.8&amp;#34;
push &amp;#34;dhcp-option DNS 8.8.4.4&amp;#34;
# 暗号化と認証
cipher AES-128-CBC
auth SHA256
tls-version-min 1.2
# 接続継続とログ設定
keepalive 10 120
user nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
explicit-exit-notify 1
&lt;/code>&lt;/pre>&lt;h3 id="設定パラメータの説明" >
&lt;div>
&lt;a href="#%e8%a8%ad%e5%ae%9a%e3%83%91%e3%83%a9%e3%83%a1%e3%83%bc%e3%82%bf%e3%81%ae%e8%aa%ac%e6%98%8e">
##
&lt;/a>
設定パラメータの説明
&lt;/div>
&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>パラメータ&lt;/th>
&lt;th>値&lt;/th>
&lt;th>説明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>port&lt;/code>&lt;/td>
&lt;td>1194&lt;/td>
&lt;td>OpenVPNが待機するUDPポート&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>proto&lt;/code>&lt;/td>
&lt;td>udp&lt;/td>
&lt;td>プロトコル（UDPまたはTCP）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>dev&lt;/code>&lt;/td>
&lt;td>tun&lt;/td>
&lt;td>VPN用のトンネルデバイス&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>server&lt;/code>&lt;/td>
&lt;td>10.8.0.0/24&lt;/td>
&lt;td>VPNクライアント用のIPアドレス範囲&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>push &amp;quot;route ...&amp;quot;&lt;/code>&lt;/td>
&lt;td>192.168.1.0/24&lt;/td>
&lt;td>クライアントに自宅LANへのルートを通知&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>push &amp;quot;dhcp-option DNS&amp;quot;&lt;/code>&lt;/td>
&lt;td>8.8.8.8&lt;/td>
&lt;td>クライアント側で使用するDNSサーバー&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>cipher&lt;/code>&lt;/td>
&lt;td>AES-128-CBC&lt;/td>
&lt;td>通信を暗号化する方式&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>auth&lt;/code>&lt;/td>
&lt;td>SHA256&lt;/td>
&lt;td>HMAC認証アルゴリズム&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>tls-version-min&lt;/code>&lt;/td>
&lt;td>1.2&lt;/td>
&lt;td>TLS最低バージョン（セキュリティ向上）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>keepalive&lt;/code>&lt;/td>
&lt;td>10 120&lt;/td>
&lt;td>10秒ごとにキープアライブを送信、120秒以上受信なければ切断判定&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>user nobody&lt;/code>&lt;/td>
&lt;td>-&lt;/td>
&lt;td>OpenVPNプロセスを非特権ユーザーで実行（セキュリティ向上）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>persist-key&lt;/code>&lt;/td>
&lt;td>-&lt;/td>
&lt;td>プロセス再起動時にキーファイルを保持&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>persist-tun&lt;/code>&lt;/td>
&lt;td>-&lt;/td>
&lt;td>プロセス再起動時に仮想インターフェースを保持&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>status&lt;/code>&lt;/td>
&lt;td>&lt;code>/var/log/openvpn-status.log&lt;/code>&lt;/td>
&lt;td>接続中のクライアント一覧ログ&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>verb&lt;/code>&lt;/td>
&lt;td>3&lt;/td>
&lt;td>ログ詳細度（3=詳細、4以上=さらに詳細）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="自宅lanアドレスの確認" >
&lt;div>
&lt;a href="#%e8%87%aa%e5%ae%85lan%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9%e3%81%ae%e7%a2%ba%e8%aa%8d">
##
&lt;/a>
自宅LANアドレスの確認
&lt;/div>
&lt;/h3>
&lt;p>&lt;code>push &amp;quot;route 192.168.1.0 255.255.255.0&amp;quot;&lt;/code>の部分は、ご自身の自宅ネットワークのアドレス範囲に変更してください。自宅LANアドレスを確認するには：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>root@router:~# ip a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 出力例&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu &lt;span style="color:#ae81ff">1500&lt;/span> qdisc pfifo_fast state UP qlen &lt;span style="color:#ae81ff">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inet 192.168.1.1/24 bcast 192.168.1.255 scope global eth0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> valid_lft forever preferred_lft forever
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>このように表示される場合、自宅LANは&lt;code>192.168.1.0/24&lt;/code>です。異なる場合はそのアドレスに置き換えてください。&lt;/p>
&lt;h2 id="openvpnサーバーの起動と確認" >
&lt;div>
&lt;a href="#openvpn%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%ae%e8%b5%b7%e5%8b%95%e3%81%a8%e7%a2%ba%e8%aa%8d">
#
&lt;/a>
OpenVPNサーバーの起動と確認
&lt;/div>
&lt;/h2>
&lt;p>サーバー設定ファイルを保存後、OpenVPNサーバーを起動します。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>root@router:~# /etc/init.d/openvpn start
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>OpenVPNサーバーが起動したことを確認します：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>root@router:~# /etc/init.d/openvpn status
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>running
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>次回のルーター起動時にOpenVPNが自動起動されるよう設定します：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>root@router:~# /etc/init.d/openvpn enable
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>ポート1194が正しくリッスンしているか確認します：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>root@router:~# netstat -tlnup | grep &lt;span style="color:#ae81ff">1194&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 出力例&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>udp &lt;span style="color:#ae81ff">0&lt;/span> &lt;span style="color:#ae81ff">0&lt;/span> 0.0.0.0:1194 0.0.0.0:* 1234/openvpn
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>openvpn&lt;/code>プロセスがポート1194でリッスン中であることが確認できれば成功です。&lt;/p>
&lt;h2 id="ネットワークインターフェースの追加" >
&lt;div>
&lt;a href="#%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%95%e3%82%a7%e3%83%bc%e3%82%b9%e3%81%ae%e8%bf%bd%e5%8a%a0">
#
&lt;/a>
ネットワークインターフェースの追加
&lt;/div>
&lt;/h2>
&lt;p>&lt;code>ip&lt;/code>コマンドで先ほど追加されたtunデバイスの確認をします。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# ip a
...省略...
12: tun0: &amp;lt;POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UNKNOWN qlen 500
link/[65534]
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::7ef9:4674:b626:2a37/64 scope link flags 800
valid_lft forever preferred_lft forever
...省略...
&lt;/code>&lt;/pre>&lt;p>&lt;code>tun0&lt;/code>という名前のデバイスが追加されていることが確認できました。これを&lt;code>vpn&lt;/code>という名前でネットワークインターフェースに追加します。&lt;/p>
&lt;p>テキストエディタで&lt;code>/etc/config/network&lt;/code>を開き、以下の内容を追記しましょう。&lt;/p>
&lt;pre tabindex="0">&lt;code>config interface &amp;#39;vpn&amp;#39;
option proto &amp;#39;none&amp;#39;
option ifname &amp;#39;tun0&amp;#39;
&lt;/code>&lt;/pre>&lt;p>保存してネットワークを再起動しましょう。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# service network restart
&lt;/code>&lt;/pre>&lt;h2 id="ファイアウォールの設定" >
&lt;div>
&lt;a href="#%e3%83%95%e3%82%a1%e3%82%a4%e3%82%a2%e3%82%a6%e3%82%a9%e3%83%bc%e3%83%ab%e3%81%ae%e8%a8%ad%e5%ae%9a">
#
&lt;/a>
ファイアウォールの設定
&lt;/div>
&lt;/h2>
&lt;p>テキストエディタで&lt;code>/etc/config/firewall&lt;/code>を開き、ファイアウォールの設定を変更します。&lt;/p>
&lt;p>まずは、先ほど追加したネットワークインターフェース&lt;code>vpn&lt;/code>を&lt;code>lan&lt;/code>と同じゾーンに配置します。以下は設定例です。&lt;code>lan&lt;/code>ゾーンに&lt;code>list network 'vpn'&lt;/code>の行を追加しました。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>config zone
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option name &lt;span style="color:#e6db74">&amp;#39;lan&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option input &lt;span style="color:#e6db74">&amp;#39;ACCEPT&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option output &lt;span style="color:#e6db74">&amp;#39;ACCEPT&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option forward &lt;span style="color:#e6db74">&amp;#39;ACCEPT&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> list network &lt;span style="color:#e6db74">&amp;#39;lan&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> list network &lt;span style="color:#e6db74">&amp;#39;vpn&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>次に、&lt;code>wan&lt;/code>側からOpenVPNの接続を許可するようルールを追加します。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>config rule
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option name &lt;span style="color:#e6db74">&amp;#39;Allow-OpenVPN&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option src &lt;span style="color:#e6db74">&amp;#39;wan&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option dest_port &lt;span style="color:#e6db74">&amp;#39;1194&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option proto &lt;span style="color:#e6db74">&amp;#39;udp&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> option target &lt;span style="color:#e6db74">&amp;#39;ACCEPT&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>保存してファイアウォールを再起動しましょう。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# service firewall restart
&lt;/code>&lt;/pre>&lt;h2 id="クライアント証明書と秘密鍵の作成" >
&lt;div>
&lt;a href="#%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%a8%bc%e6%98%8e%e6%9b%b8%e3%81%a8%e7%a7%98%e5%af%86%e9%8d%b5%e3%81%ae%e4%bd%9c%e6%88%90">
#
&lt;/a>
クライアント証明書と秘密鍵の作成
&lt;/div>
&lt;/h2>
&lt;p>Easy-RSAの&lt;code>build-client-full&lt;/code>コマンドでサーバー証明書と鍵を生成します。&lt;/p>
&lt;p>任意のクライアント名を指定して証明書と秘密鍵を生成します。ここではクライアント名は&lt;code>client&lt;/code>としました。パスフレーズは設定しないため&lt;code>nopass&lt;/code>オプションを設定します。&lt;/p>
&lt;pre tabindex="0">&lt;code>root@router:~# easyrsa build-client-full &amp;lt;クライアント名&amp;gt; nopass
* Using Easy-RSA configuration:
/etc/easy-rsa/vars
* Using SSL: openssl OpenSSL 3.0.16 11 Feb 2025 (Library: OpenSSL 3.0.16 11 Feb 2025)
...省略...
-----
Notice
------
Keypair and certificate request completed. Your files are:
* req: /etc/easy-rsa/pki/reqs/&amp;lt;クライアント名&amp;gt;.req
* key: /etc/easy-rsa/pki/private/&amp;lt;クライアント名&amp;gt;.key
You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a client certificate
for &amp;#39;825&amp;#39; days:
subject=
commonName = &amp;lt;クライアント名&amp;gt;
Type the word &amp;#39;yes&amp;#39; to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /tmp//23e0cc20/temp.4.1
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject&amp;#39;s Distinguished Name is as follows
commonName :ASN.1 12:&amp;#39;&amp;lt;クライアント名&amp;gt;&amp;#39;
Certificate is to be certified until Aug 5 10:10:15 2027 GMT (825 days)
Write out database with 1 new entries
Database updated
Notice
------
Certificate created at:
* /etc/easy-rsa/pki/issued/&amp;lt;クライアント名&amp;gt;.crt
Notice
------
Inline file created:
* /etc/easy-rsa/pki/inline/&amp;lt;クライアント名&amp;gt;.inline
&lt;/code>&lt;/pre>&lt;p>これにより、&lt;code>/etc/easy-rsa/pki/issued&lt;/code>ディレクトリにクライアント証明書&lt;code>client.crt&lt;/code>と、&lt;code>/etc/easy-rsa/pki/private/&lt;/code>ディレクトリにクライアント秘密鍵&lt;code>client.key&lt;/code>が生成されます。&lt;/p>
&lt;h2 id="クライアント設定ファイルの生成と配置" >
&lt;div>
&lt;a href="#%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e7%94%9f%e6%88%90%e3%81%a8%e9%85%8d%e7%bd%ae">
#
&lt;/a>
クライアント設定ファイルの生成と配置
&lt;/div>
&lt;/h2>
&lt;p>Easy-RSAで生成したクライアント証明書・鍵を使用して、クライアント設定ファイル（.ovpn）を作成します。&lt;/p>
&lt;p>サーバー側で生成したクライアント用ファイルを&lt;code>/tmp&lt;/code>にコピーします：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>root@router:~# cp /etc/easy-rsa/pki/issued/client.crt /tmp/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cp /etc/easy-rsa/pki/private/client.key /tmp/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cp /etc/openvpn/ca.crt /tmp/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cp /etc/openvpn/ta.key /tmp/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>クライアント設定ファイル&lt;code>client.ovpn&lt;/code>を作成します。以下のテンプレートをテキストエディタで新規作成してください：&lt;/p>
&lt;pre tabindex="0">&lt;code>client
dev tun
proto udp
remote &amp;lt;OpenWrtのグローバルIPアドレス&amp;gt; 1194
resolv-retry infinite
nobind
# セキュリティ設定
remote-cert-tls server
cipher AES-128-CBC
auth SHA256
tls-version-min 1.2
tls-auth ta.key 1
# クライアント側ログ設定
persist-key
persist-tun
verb 3
# CA証明書（インライン方式）
&amp;lt;ca&amp;gt;
-----BEGIN CERTIFICATE-----
（/etc/openvpn/ca.crtの内容をここに貼り付け）
-----END CERTIFICATE-----
&amp;lt;/ca&amp;gt;
# クライアント証明書（インライン方式）
&amp;lt;cert&amp;gt;
-----BEGIN CERTIFICATE-----
（/etc/easy-rsa/pki/issued/client.crtの内容をここに貼り付け）
-----END CERTIFICATE-----
&amp;lt;/cert&amp;gt;
# クライアント秘密鍵（インライン方式）
&amp;lt;key&amp;gt;
-----BEGIN PRIVATE KEY-----
（/etc/easy-rsa/pki/private/client.keyの内容をここに貼り付け）
-----END PRIVATE KEY-----
&amp;lt;/key&amp;gt;
# TLS-Authキー
&amp;lt;tls-auth&amp;gt;
（/etc/openvpn/ta.keyの内容をここに貼り付け）
&amp;lt;/tls-auth&amp;gt;
&lt;/code>&lt;/pre>&lt;h3 id="証明書鍵の内容をコピーする手順" >
&lt;div>
&lt;a href="#%e8%a8%bc%e6%98%8e%e6%9b%b8%e9%8d%b5%e3%81%ae%e5%86%85%e5%ae%b9%e3%82%92%e3%82%b3%e3%83%94%e3%83%bc%e3%81%99%e3%82%8b%e6%89%8b%e9%a0%86">
##
&lt;/a>
証明書・鍵の内容をコピーする手順
&lt;/div>
&lt;/h3>
&lt;p>サーバー上で、各ファイルをテキストエディタで開いて内容をコピーします：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># CA証明書の表示&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cat /etc/openvpn/ca.crt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># クライアント証明書の表示&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cat /etc/easy-rsa/pki/issued/client.crt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># クライアント秘密鍵の表示&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cat /etc/easy-rsa/pki/private/client.key
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># TLS-Authキーの表示&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cat /etc/openvpn/ta.key
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>各出力内容を、.ovpnファイルの対応するセクション（&lt;code>&amp;lt;ca&amp;gt;...&amp;lt;/ca&amp;gt;&lt;/code>など）に貼り付けてください。&lt;/p>
&lt;h3 id="クライアント接続情報の設定" >
&lt;div>
&lt;a href="#%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e6%8e%a5%e7%b6%9a%e6%83%85%e5%a0%b1%e3%81%ae%e8%a8%ad%e5%ae%9a">
##
&lt;/a>
クライアント接続情報の設定
&lt;/div>
&lt;/h3>
&lt;p>&lt;code>client.ovpn&lt;/code>の&lt;code>remote&lt;/code>パラメータを以下のように設定してください：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>状況&lt;/th>
&lt;th>設定値&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>グローバルIPアドレスが固定&lt;/strong>&lt;/td>
&lt;td>&lt;code>remote 203.0.113.1 1194&lt;/code>（実際のIPに置換）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>動的IP（DDNS使用）&lt;/strong>&lt;/td>
&lt;td>&lt;code>remote example.ddns.jp 1194&lt;/code>（DDNSホスト名に置換）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="クライアント側での接続テスト" >
&lt;div>
&lt;a href="#%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e5%81%b4%e3%81%a7%e3%81%ae%e6%8e%a5%e7%b6%9a%e3%83%86%e3%82%b9%e3%83%88">
#
&lt;/a>
クライアント側での接続テスト
&lt;/div>
&lt;/h2>
&lt;p>作成した&lt;code>client.ovpn&lt;/code>ファイルをクライアント側に転送して、接続テストを行います。&lt;/p>
&lt;h3 id="linuxmacでの接続" >
&lt;div>
&lt;a href="#linuxmac%e3%81%a7%e3%81%ae%e6%8e%a5%e7%b6%9a">
##
&lt;/a>
Linux/Macでの接続
&lt;/div>
&lt;/h3>
&lt;p>OpenVPNクライアントをインストール（未インストールの場合）：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install openvpn
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># macOS (Homebrew)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install openvpn
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>接続テスト実行：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo openvpn --config client.ovpn
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 接続成功時の出力例&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Sat Sep &lt;span style="color:#ae81ff">2&lt;/span> 10:15:00 &lt;span style="color:#ae81ff">2024&lt;/span> TUN/TAP device tun0 opened
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Sat Sep &lt;span style="color:#ae81ff">2&lt;/span> 10:15:00 &lt;span style="color:#ae81ff">2024&lt;/span> do_ifconfig, tt-&amp;gt;ipv6&lt;span style="color:#f92672">=&lt;/span>0, tt-&amp;gt;link_mtu&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">1500&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Sat Sep &lt;span style="color:#ae81ff">2&lt;/span> 10:15:00 &lt;span style="color:#ae81ff">2024&lt;/span> /sbin/ip addr add dev tun0 10.8.0.6/255.255.255.0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Sat Sep &lt;span style="color:#ae81ff">2&lt;/span> 10:15:01 &lt;span style="color:#ae81ff">2024&lt;/span> Initialization Sequence Completed
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>接続確認：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 別のターミナルで実行&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ip a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># tun0が表示される&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 自宅ネットワークへのルーティング確認&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ping 192.168.1.1 &lt;span style="color:#75715e"># ルーターのLANアドレスに疎通確認&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>接続を終了：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Ctrl+C キーを押す&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="windowsでの接続" >
&lt;div>
&lt;a href="#windows%e3%81%a7%e3%81%ae%e6%8e%a5%e7%b6%9a">
##
&lt;/a>
Windowsでの接続
&lt;/div>
&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>OpenVPN GUIをインストール&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://openvpn.net/download-open-vpn/">OpenVPN公式ダウンロードページ&lt;/a>からOpenVPN GUIをダウンロード&lt;/li>
&lt;li>インストーラーを実行し、デフォルト設定でインストール&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>クライアント設定ファイルの配置&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>client.ovpn&lt;/code>ファイルを&lt;code>C:\Users\&amp;lt;ユーザー名&amp;gt;\OpenVPN\config\&lt;/code>にコピー&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>OpenVPN GUIの起動と接続&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>スタートメニューから「OpenVPN GUI」を起動&lt;/li>
&lt;li>タスクバーのOpenVPNアイコンを右クリック&lt;/li>
&lt;li>&lt;code>client.ovpn&lt;/code>を選択して「接続」をクリック&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>接続確認&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Windows PowerShellで実行：&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>ipconfig
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># TAP-Win32 Adapter for OpenVPN から 10.8.0.x のアドレスが付与されているか確認&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ping &lt;span style="color:#ae81ff">192.168&lt;/span>.1.1 &lt;span style="color:#75715e"># 自宅ルーターに疎通確認&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h3 id="iosandroidでの接続openvpn-connectアプリ" >
&lt;div>
&lt;a href="#iosandroid%e3%81%a7%e3%81%ae%e6%8e%a5%e7%b6%9aopenvpn-connect%e3%82%a2%e3%83%97%e3%83%aa">
##
&lt;/a>
iOS/Androidでの接続（OpenVPN Connectアプリ）
&lt;/div>
&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>アプリインストール&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>App Store/Google Playで「OpenVPN Connect」をインストール&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>クライアント設定ファイルの転送&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>client.ovpn&lt;/code>をメール添付またはクラウドストレージ経由でデバイスに転送&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>アプリで設定ファイルをインポート&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>OpenVPN Connectを起動&lt;/li>
&lt;li>ファイルブラウザから&lt;code>client.ovpn&lt;/code>を選択&lt;/li>
&lt;li>「インポート」をタップ&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>接続&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>インポートされた接続プロフィールをタップして接続&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h2 id="トラブルシューティング" >
&lt;div>
&lt;a href="#%e3%83%88%e3%83%a9%e3%83%96%e3%83%ab%e3%82%b7%e3%83%a5%e3%83%bc%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0">
#
&lt;/a>
トラブルシューティング
&lt;/div>
&lt;/h2>
&lt;p>接続がうまくいかない場合の対処方法：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>問題&lt;/th>
&lt;th>原因&lt;/th>
&lt;th>対処方法&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>接続時にタイムアウト&lt;/strong>&lt;/td>
&lt;td>ファイアウォール設定不足またはルーターの設定不足&lt;/td>
&lt;td>&lt;a href="https://www.ktdevx.com/ja/blog/set-up-a-vpn-server-on-openwrt-using-openvpn/#ファイアウォールの設定">ファイアウォール設定&lt;/a>を確認、ポート転送設定を確認&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>認証エラー（TLS Handshake failed）&lt;/strong>&lt;/td>
&lt;td>証明書・鍵のミスマッチ&lt;/td>
&lt;td>クライアント設定ファイルの&lt;code>&amp;lt;ca&amp;gt;&lt;/code>、&lt;code>&amp;lt;cert&amp;gt;&lt;/code>、&lt;code>&amp;lt;key&amp;gt;&lt;/code>セクションの内容を再確認&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>自宅ネットワークに到達できない&lt;/strong>&lt;/td>
&lt;td>&lt;code>push &amp;quot;route ...&amp;quot;&lt;/code>設定が不正&lt;/td>
&lt;td>サーバー側&lt;code>server.conf&lt;/code>の&lt;code>push &amp;quot;route&amp;quot;&lt;/code>パラメータが自宅LANアドレスと一致しているか確認&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>DNSが機能しない&lt;/strong>&lt;/td>
&lt;td>DNS設定が通知されていない&lt;/td>
&lt;td>&lt;code>push &amp;quot;dhcp-option DNS&amp;quot;&lt;/code>の設定を確認、クライアント側でDNS設定を手動で行う&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>VPN接続後、インターネット通信ができない&lt;/strong>&lt;/td>
&lt;td>デフォルトルートの競合&lt;/td>
&lt;td>&lt;code>client.ovpn&lt;/code>に&lt;code>redirect-gateway def1&lt;/code>を追加（全トラフィックをVPN経由に統一）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="ログでのデバッグ" >
&lt;div>
&lt;a href="#%e3%83%ad%e3%82%b0%e3%81%a7%e3%81%ae%e3%83%87%e3%83%90%e3%83%83%e3%82%b0">
##
&lt;/a>
ログでのデバッグ
&lt;/div>
&lt;/h3>
&lt;p>サーバー側でのログ確認：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>root@router:~# tail -f /var/log/openvpn.log
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 接続中のクライアント一覧&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>root@router:~# cat /var/log/openvpn-status.log
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>接続失敗時のクライアント側ログ確認（詳細度を上げる）：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Linux/Mac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo openvpn --config client.ovpn --verb &lt;span style="color:#ae81ff">4&lt;/span> 2&amp;gt;&amp;amp;&lt;span style="color:#ae81ff">1&lt;/span> | tee openvpn-debug.log
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Windows（PowerShellで管理者権限実行）&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;amp; &lt;span style="color:#e6db74">&amp;#34;C:\Program Files\OpenVPN\bin\openvpn.exe&amp;#34;&lt;/span> --config &lt;span style="color:#e6db74">&amp;#34;C:\Users\&amp;lt;ユーザー名&amp;gt;\OpenVPN\config\client.ovpn&amp;#34;&lt;/span> --verb &lt;span style="color:#ae81ff">4&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="動的ip対応ddns設定" >
&lt;div>
&lt;a href="#%e5%8b%95%e7%9a%84ip%e5%af%be%e5%bf%9cddns%e8%a8%ad%e5%ae%9a">
#
&lt;/a>
動的IP対応（DDNS設定）
&lt;/div>
&lt;/h2>
&lt;p>OpenWrtの外部IPが変動する場合、DDNS（ダイナミックDNS）機能を利用して、クライアント側でホスト名での接続を可能にします。&lt;/p>
&lt;p>&lt;a href="https://www.ktdevx.com/ja/blog/automatically-update-dns-records-for-onamae-com-from-openwrt-with-ddns-using-ddns-scripts-onamae/">関連記事：OpenWrtでDDNSを設定し、定期的にDNSレコードを更新する&lt;/a>&lt;/p>
&lt;p>DDNS設定後、クライアント設定ファイルの&lt;code>remote&lt;/code>パラメータをDDNSホスト名に変更します：&lt;/p>
&lt;pre tabindex="0">&lt;code># 変更前（グローバルIP指定）
remote 203.0.113.1 1194
# 変更後（DDNSホスト名指定）
remote myhome.ddns.jp 1194
&lt;/code>&lt;/pre>&lt;h2 id="セキュリティ推奨事項" >
&lt;div>
&lt;a href="#%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e6%8e%a8%e5%a5%a8%e4%ba%8b%e9%a0%85">
#
&lt;/a>
セキュリティ推奨事項
&lt;/div>
&lt;/h2>
&lt;h3 id="定期的な証明書更新" >
&lt;div>
&lt;a href="#%e5%ae%9a%e6%9c%9f%e7%9a%84%e3%81%aa%e8%a8%bc%e6%98%8e%e6%9b%b8%e6%9b%b4%e6%96%b0">
##
&lt;/a>
定期的な証明書更新
&lt;/div>
&lt;/h3>
&lt;p>生成した証明書は825日間有効です。定期的に新しい証明書を生成・配置してください。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 現在の証明書の有効期限確認&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openssl x509 -in /etc/openvpn/server.crt -noout -text | grep -A2 &lt;span style="color:#e6db74">&amp;#34;Validity&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="ファイアウォール設定の確認" >
&lt;div>
&lt;a href="#%e3%83%95%e3%82%a1%e3%82%a4%e3%82%a2%e3%82%a6%e3%82%a9%e3%83%bc%e3%83%ab%e8%a8%ad%e5%ae%9a%e3%81%ae%e7%a2%ba%e8%aa%8d">
##
&lt;/a>
ファイアウォール設定の確認
&lt;/div>
&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># UFWの場合&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo ufw allow 1194/udp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># iptablesの場合&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo iptables -A INPUT -p udp --dport &lt;span style="color:#ae81ff">1194&lt;/span> -j ACCEPT
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="pam認証の追加オプション" >
&lt;div>
&lt;a href="#pam%e8%aa%8d%e8%a8%bc%e3%81%ae%e8%bf%bd%e5%8a%a0%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3">
##
&lt;/a>
PAM認証の追加（オプション）
&lt;/div>
&lt;/h3>
&lt;p>パスワード認証を追加する場合、&lt;code>server.conf&lt;/code>に以下を追加：&lt;/p>
&lt;pre tabindex="0">&lt;code>auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
script-security 3
username-as-common-name
&lt;/code>&lt;/pre>&lt;h2 id="関連記事外部リンク" >
&lt;div>
&lt;a href="#%e9%96%a2%e9%80%a3%e8%a8%98%e4%ba%8b%e5%a4%96%e9%83%a8%e3%83%aa%e3%83%b3%e3%82%af">
#
&lt;/a>
関連記事・外部リンク
&lt;/div>
&lt;/h2>
&lt;h3 id="openwrt関連" >
&lt;div>
&lt;a href="#openwrt%e9%96%a2%e9%80%a3">
##
&lt;/a>
OpenWrt関連
&lt;/div>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://openwrt.org/docs/guide_user/services/vpn/openvpn/server">OpenWrtへのOpenVPN インストール（公式ドキュメント）&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://openwrt.org/docs/guide_user/services/vpn/openvpn/start">OpenWrt Wiki - OpenVPN&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.ktdevx.com/ja/blog/install-friendlywrt-on-nanopi-r2s/">本サイト：OpenWrtのインストール&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="vpn代替技術" >
&lt;div>
&lt;a href="#vpn%e4%bb%a3%e6%9b%bf%e6%8a%80%e8%a1%93">
##
&lt;/a>
VPN代替技術
&lt;/div>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://www.ktdevx.com/ja/blog/set-up-a-vpn-server-on-openwrt-using-wireguard-to-access-the-home-network-from-outside/">WireGuardでVPNサーバーを構築する（本サイト）&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="動的ip対応" >
&lt;div>
&lt;a href="#%e5%8b%95%e7%9a%84ip%e5%af%be%e5%bf%9c">
##
&lt;/a>
動的IP対応
&lt;/div>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://www.ktdevx.com/ja/blog/automatically-update-dns-records-for-onamae-com-from-openwrt-with-ddns-using-ddns-scripts-onamae/">OpenWrtでDDNSを設定する（本サイト）&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="sshセキュリティ関連" >
&lt;div>
&lt;a href="#ssh%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e9%96%a2%e9%80%a3">
##
&lt;/a>
SSH・セキュリティ関連
&lt;/div>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://www.ktdevx.com/ja/blog/generate-ssh-key/">SSH鍵の生成方法（本サイト）&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.openssl.org/docs/">OpenSSL公式ドキュメント&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38A.pdf">NIST暗号化推奨設定&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>