NordVPNはOpenWrtに対応していますか?
OpenWRTファームウェアを搭載したルーターは、NordVPNのようなVPNに対応していることが報告されています。 ただし、以下の設定はNordVPNによってテストされたものではなく、寛大なユーザーの皆さまがテストし、共有してくださった方法です。 特に、OpenWRTコミュニティで精力的に活動されているulmwind様に感謝申し上げます。ulmwind様からは、最新のOpenWRTに関するガイドを定期的に提供していただいています。
この記事では、以下の2種類のOpenWrt 設定ガイドをご紹介します。
- GUIインターフェイスガイド(シンプルなバージョン)
- CLIガイド(より高度なバージョン)
ご不明点がございましたら、サポートチームにお気軽にお問い合わせください。 こちらは高度なチュートリアルですが、シンプルなガイドもご用意しています。
GUIガイド
このガイドでは、OpenWrtファームウェアを使用し、LuCIウェブインターフェイス経由でNordVPN接続を設定する方法を説明します。
-
インターネットブラウザにローカルIPアドレスを入力してログインし、お使いのOpenWrtルーターのLuCIインターフェイスにアクセスします。
デフォルトのIPアドレスは192.168.1.1、ユーザー名(Username)はrootです。
デフォルトではパスワードの設定プロセスはないため、パスワードの欄は空白で構いません。ただし、ログイン後にパスワードを設定するよう求めるメッセージが表示されます。
パスワードを設定するには、System > Administrationへと移動して操作を行います。 -
ログイン後に、Systemタブ、そしてSoftwareを選択します。
- 「Update lists」ボタンをクリックし、処理が完了するまで待ってから「Dismiss」をクリックします。
-
「Filter」フィールドに以下の名前を入力して「Install…」をクリックし、パッケージをインストールします。
- openvpn-openssl
- ip-full
-
luci-app-openvpn
- 「Save & Apply」をクリックしてから、ルーター画面を更新します。 これで、VPNという名前の新しいタブが表示されるようになったはずです。 そのタブをクリックして、ドロップダウンからOpenVPNを選択します。
- ここで、OpenVPNクライアント設定ファイルをダウンロードする必要があります。 Nordアカウント経由で推奨されたサーバーに接続できます。
以下の手順に従って、手動接続設定ファイルを確認してください。
-
Nordアカウントにログインし、NordVPNをクリックします。
-
詳細設定(Advanced Settings)までスクロールダウンし、NordVPNを手動で設定(Set up NordVPN manually)をクリックします。
-
OpenVPN設定ファイル(OpenVPN configuration files)タブを選択します。
-
検索バーを使用するか、下にスクロールして接続したいサーバーを見つけ、UDPをダウンロード(Download UDP)またはTCPをダウンロード(Download TCP)をクリックしてダウンロードします。
-
OpenVPNとIKEv2に手動で接続する場合は、サービスの認証情報(Service credential)タブでユーザー名(Username)とパスワード(Password)を使用する必要があります。
このガイドでは、us5104.nordvpn.comのサーバーを使用します。
-
「OVPN configuration file upload」セクションの「Instance name」フィールドでVPN接続に名前を付けます(この例では「nordvpn_us」と付けています)。その後「Choose File」ボタンをクリックしてダウンロードしたサーバーファイルを見つけ、「Upload」をクリックします。
-
「OpenVPN instances」セクションで、今作成したインスタンスの横にある「Edit」ボタンをクリックします。
-
下のフィールドに、NordVPNサービスの認証情報(ユーザー名とパスワード)を行を分けて入力します。
ユーザー名
パスワード
NordVPNサービス認証情報(サービスユーザー名とサービスパスワード)は、Nordアカウントのダッシュボードで確認できます。
以下の手順に従って、手動接続設定用のサービス認証情報をご確認ください。
-
お使いのNordアカウントにログインしてNordVPNをクリックし、手動設定(Manual setup)のサービスの認証情報(Service credentials)をクリックします。そうすると、手動接続設定に必要なユーザー名とパスワードを確認できます。
- ここで、認証情報が入力されたフィールドの右上に表示されている認証情報ファイルへのパスをコピーし、「Config file」セクションの「auth-user-pass」の行の隣にペーストします。
ペースト後は次のような行になります:auth-user-pass /etc/openvpn/nordvpn\_us.auth
- 下のSaveボタンをクリックします。
- 画面最上部の「Network」タブをクリックし、「Interfaces」を選択します。
- 「Add new interface…」ボタンを選択し、「nordvpntun」と名前を付けます。
- 「Protocol」のドロップダウンメニューをクリックし、「Unmanaged」を選択します。
-
「Interface」ドロップダウンで、下の「-- custom --」フィールドに「tun0」と名前を入力し、Enterキーを押します。
- 「Create interface」ボタン、そして「Save」ボタンをクリックします。
- 最上部の「Network*」タブを再度選択し、「Firewall」セクションに移動します。
- 「Add」ボタンをクリックして以下のように変更を加えます。```
- 「vpnfirewall」と名前を付けます。
2. 「Input」オプションを「Reject」に設定します。
3. 「Output」を「Accept」、「Forward」を「Reject」に設定します。
4. 「Masquerading」オプションにチェックを入れます。
5. 「MSS clamping」オプションにチェックを入れます。
6. 「Covered Networks」ドロップダウンメニューから「nordvpntun」を選択します。
7. 「Allow forward from source zones」ドロップダウンメニューで「lan」を選択します。
8. 「Save」ボタンをクリックします。
```

19. 「Zones」セクションで、「lan」という名前のゾーンを見つけ、「Edit」ボタンをクリックします。

20. 「Allow forward to destination zones」ドロップダウンで「nordvpntun」エントリーにチェックを入れます。

21. 画面最上部の「Network」を再度クリックし、ドロップダウンリストから「DHCP and DNS」を選択します。
22. 「General Settings」タブで、「DNS forwardings」オプションを見つけ、そこにNordVPN DNSアドレスを入力します。 アドレスは103.86.96.100と103.86.99.100です。

23. 「Resolv and Hosts Files」に移動して「Ignore resolve file」にチェックを入れ、「Save & Apply」ボタンをクリックしあす。

24. 最後に、「VPN」 > 「OpenVPN」タブに戻ります。
25. 「OpenVPN instances」セクションで、リストのNordVPNオプションの隣にある「Enable」オプションにチェックを入れ、「Save & Apply」ボタンをクリックします。

26. VPNサーバーに接続するために作成したNordVPNインスタンスの横にある「Start」ボタンをクリックします。
この手順が完了すると、設定した接続を利用して接続が確立されているはずです。 設定が無事に完了したことを確認するには、NordVPNのホームページに移動してください。画面最上部のステータスが「保護されています」になっているはずです。
VPN接続を切断したい場合は、「VPN」 > 「OpenVPN」 > 「OpenVPN instances」セクションに移動し、NordVPNオプションの隣にある「Stop」ボタンをクリックします。
## CLIガイド
より高度なチュートリアルをお探しの場合は、このガイドをご利用ください。 OpenWrtでVPNを使う利点を活用するには、OpenWrtファームウェアと有効化されたOpenVPNクライアントを持つルーターが必要です。 ファームウェアのメイン画面は[https://openwrt.org/](https://openwrt.org/)です。
1. 開始するには、LAN IPアドレスウィ使用してSSH経由でルーターにアクセスします。 デフォルトでは、IPアドレスは192.168.1.1、ユーザー名はrootに設定されています。ただし、デフォルトの値を変更している場合は、IPアドレスは異なる場合があります。
2. OpenVPNパッケージは、デフォルトではファームウェアイメージには含まれていません。 以下のコマンドを実行してインストールします。
opkg update\
opkg install openvpn-openssl\
opkg install ip-full
追加でLuCIのOpenVPN設定コンポーネントもインストールできますが、これはオプションです。 インストールしたい場合は、以下のコマンドを実行します。
opkg install luci-app-openvpn
3. OpenVPNパッケージをインストールしたら、以下のコマンドを実行することで、ルーターが起動する時はいつでも自動でOpenVPNを起動できます。
/etc/init.d/openvpn enable
4. 次に、サーバー設定ファイルをダウンロードする必要があります。
以下の手順に従って、手動接続設定ファイルを確認してください。
1. [Nordアカウント](https://my.nordaccount.com/)にログインし、NordVPNをクリックします。

2. 詳細設定(Advanced Settings)までスクロールダウンし、NordVPNを手動で設定(Set up NordVPN manually)をクリックします。

3. OpenVPN設定ファイル(OpenVPN configuration files)タブを選択します。

4. 検索バーを使用するか、下にスクロールして接続したいサーバーを見つけ、UDPをダウンロード(Download UDP)またはTCPをダウンロード(Download TCP)をクリックしてダウンロードします。

5. OpenVPNとIKEv2に手動で接続する場合は、サービスの認証情報(Service credential)タブでユーザー名(Username)とパスワード(Password)を使用する必要があります。

6. このガイドでは、uk2054.nordvpn.comのサーバーを使用します。ご自身で設定する際は、ウェブサイトが推奨するサーバーを使用してください。
サーバーファイルをダウンロードするには、接続したい国を選択し、「利用可能なプロトコルを表示」をクリックします。その後、OpenVPN TCPまたはOpenVPN UDPの「設定をダウンロード」を右クリックし、「リンクアドレスをコピー」を選択します。
その後、SSHセッションに戻り、以下のコマンドを実行します。
wget -P /etc/openvpn [https://downloads.nordcdn.com/configs/files/ovpn\_udp/servers/uk2054.nordvpn.com.udp.ovpn](https://downloads.nordcdn.com/configs/files/ovpn_udp/servers/uk2054.nordvpn.com.udp.ovpn)
コピーしたリンクは特定のサーバーファイルに使うようにしてください。 このコマンドは、設定ファイルをアクセスしやすい\*\*/etc/openvpn\*\*ディレクトリにダウンロードします。
または、SCPプロトコルやSFTPプロトコルなどのその他の方法で、別のデバイスにサーバー設定ファイルをダウンロードしてそれをOpenWrtルーターに転送することもできます。
_古いバージョンのOpenWrtの場合:_\
こちらからアーカイブをダウンロードできます:[https://downloads.nordcdn.com/configs/archives/certificates/servers.zip](https://downloads.nordcdn.com/configs/archives/certificates/servers.zip). ダウンロードしたアーカイブ内には、.crtと.key の拡張子を持つファイルがあります。 このファイルは各VPNサーバーに対応するものです。
7. NordVPN用のOpenVPNの設定では、OpenVPNを開始するたびにNordVPNのサービス認証情報(ユーザー名とパスワード)を入力するよう求められます。 そこで、認証情報が自動で入力されるよう調整します。
まず、このプロセスを簡単にするために、以下のコマンドを実行してnanoテキストエディタをインストールします。
opkg install nano
または、すでに搭載されているviテキストエディタを使っても構いません。 テキストエディタに関する詳細は、次の記事をご覧ください:[https://openwrt.org/docs/guide-user/base-system/user.beginner.cli](https://openwrt.org/docs/guide-user/base-system/user.beginner.cli).
次に、nanoテキストエディタを使ってダウンロードしたサーバー設定ファイルを開きます。 この例では、コマンドは以下のようになります。
nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn
その後、文字列「auth-user-pass」に「secret」という言葉を引用符なしで追加します。 以下のような文字列となるはずです。
auth-user-pass secret.
ここで、NordVPNサービス認証情報を保管する「_secret_」という名前の新しいファイルを作成します。 作成するには、以下のコマンドを実行します。
nano /etc/openvpn/secret
これで、新しいファイルが作成され、nanoテキストエディタで開かれます。
ファイルの1行目にNordVPNサービスのユーザー名、2行目にパスワードを入力します。
NordVPNサービス認証情報(サービスユーザー名とサービスパスワード)は、[Nordアカウントのダッシュボード](https://my.nordaccount.com/dashboard/nordvpn/)で確認できます。
以下の手順に従って、手動接続設定用のサービス認証情報をご確認ください。
1. お使いの[Nordアカウント](https://my.nordaccount.com/)にログインしてNordVPNをクリックし、手動設定(Manual setup)のサービスの認証情報(Service credentials)をクリックします。そうすると、手動接続設定に必要なユーザー名とパスワードを確認できます。

2. ダウンロードした設定ファイルを使用して、以下のいずれかの方法でOpenVPNを設定します。
1. ファイルの拡張子を\*\*.ovpnから.conf\*\*に変更します。そうすると、OpenVPNが拡張子でファイルを自動的に見つけられるようになります。
これには、mvコマンドを使用します。
mv /etc/openvpn/uk2054.nordvpn.com.udp.ovpn /etc/openvpn/uk2054.nordvpn.com.udp.conf
2. 「/etc/config/openvpn」で以下の「uci」コマンドを使用して、ファイル名を指定します。
uci set openvpn.nordvpn=openvpn\
uci set openvpn.nordvpn.enabled='1'\
uci set openvpn.nordvpn.config='/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'\
uci commit openvpn
その後、ファイル「/etc/config/openvpn」は以下の追加の文字列を含んでいるはずです。
config openvpn 'nordvpn'\
option enabled '1'\
option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
以下のコマンドを実行すると確認できます。
tail /etc/config/openvpn
また、ファイルの拡張子を\*\*.ovpnから.conf\*\*へと変更し、「/etc/config/openvpn」で指定することもできます。ただその場合は、OpenVPNがこの設定ファイルで起動するのは1回のみとなります。
3. 以下のコマンドを実行して、新しいネットワークインターフェースを作成します。
uci set network.nordvpntun=interface\
uci set network.nordvpntun.proto='none'\
uci set network.nordvpntun.ifname='tun0'\
uci commit network
すべての手順が正確に完了すると、ファイル「/etc/config/network」は以下の追加の文字列を含んでいるはずです。
config interface 'nordvpntun'\
option proto 'none'\
option ifname 'tun0'
「tail /etc/config/network」コマンドを使用すると確認できます。
4. 新しいファイアウォールゾーンを作成し、以下のコマンドを実行してLANからVPNへの転送ルールを追加します。
uci add firewall zone\
uci set firewall.@zone\[-1\].name='vpnfirewall'\
uci set firewall.@zone\[-1\].input='REJECT'\
uci set firewall.@zone\[-1\].output='ACCEPT'\
uci set firewall.@zone\[-1\].forward='REJECT'\
uci set firewall.@zone\[-1\].masq='1'\
uci set firewall.@zone\[-1\].mtu\_fix='1'\
uci add\_list firewall.@zone\[-1\].network='nordvpntun'\
uci add firewall forwarding\
uci set firewall.@forwarding\[-1\].src='lan'\
uci set firewall.@forwarding\[-1\].dest='vpnfirewall'\
uci commit firewall
この手順が正確に完了すると、ファイル「/etc/config/firewall」は以下の追加の文字列を含んでいるはずです。
config zone\
option name 'vpnfirewall'\
option input 'REJECT'\
option output 'ACCEPT'\
option forward 'REJECT'\
option masq '1'\
option mtu\_fix '1'\
list network 'nordvpntun'
config forwarding\
option src 'lan'\
option dest 'vpnfirewall'
「tail -13 /etc/config/firewall」コマンドを使用すると確認できます。 ここでは最後の13行が表示されます。この行には、前述した文字列が含まれているはずです。
5. 次に、DNSサーバーの設定を行う必要があります。 最も簡単なアプローチは、ルーターのWANインターフェースにNordVPN DNSを使用することです。 NordVPN DNSを追加するには、以下のコマンドを実行します。
```
uci set network.wan.peerdns='0'
```
```
uci del network.wan.dns
uci add\_list network.wan.dns='103.86.96.100'
uci add\_list network.wan.dns='103.86.99.100'
uci commit
__ コマンド「_uci del network.wan.dns_」_コマンドを実行した後に「__uci: Entry not found__」というエラーメッセージが表示された場合、無視して構いません。_
ファイル「/etc/config/network」は、以下のように下3行に文字列が追加された「wan」セクションを含んでいるはずです。
config interface 'wan'
<...>
option peerdns '0'
list dns '103.86.96.100'
list dns '103.86.99.100'
「cat /etc/config/network」コマンドを実行して、結果で「wan」インターフェイスを探すことで確認できます。
また、以下のコマンドを実行すると、Googleなどの異なるDNSアドレスを追加できます。
uci set network.wan.peerdns='0'
uci del network.wan.dns
uci add\_list network.wan.dns='8.8.8.8'
uci add\_list network.wan.dns='8.8.4.4'
uci commit
追加される文字列は以前のものと似たものである必要があります。
```
(任意)VPNトンネルが中断したした際にトラフィックの漏洩を防ぐには、テキストエディタを使って「/etc/firewall.user」ファイルを開き、以下の内容を追加します。
\# This file is interpreted as a shell script.
\# Put your custom iptables rules here, and they will be executed with each firewall (re-)start
\# Internal uci firewall chains are flushed and recreated on reload, so
\# put custom rules into the root chains, e.g. INPUT or FORWARD, or into the
\# special user chains, e.g. input\_wan\_rule or postrouting\_lan\_rule.
if (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then
iptables -I forwarding\_rule -j REJECT
fi
さらに、「nano /etc/hotplug.d/iface/99-prevent-leak」を実行し、ファイル内に以下の内容を追加して、フォルダ「/etc/hotplug.d/iface」内に「99-prevent-leak」というファイルを作成する必要があります。
#!/bin/sh
if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (iptables -C forwarding\_rule -j REJECT); then
iptables -D forwarding\_rule -j REJECT
fi
if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then
iptables -I forwarding\_rule -j REJECT
fi
場合によっては、「couldn’t resolve host…」のようなログ出力が出てOpenVPN接続が中断されることがあります。 その場合、VPNトンネル自体は残りますが、接続は失われます。 自動で再接続するには、まずテキストエディタを使って「/etc/rc.local」ファイルを開き、以下の行を追加します。
/etc/openvpn/reconnect.sh &
さらに、「/etc/openvpn」ディレクトリ内に「reconnect.sh」ファイルを作成します。 これは「nano /etc/openvpn/reconnect.sh」コマンドを実行することで作成できます。
そのファイル内に、以下のスクリプト内容を入力します。
#!/bin/sh
n=10
while sleep 50; do
t=$(ping -c $n 8.8.8.8 | grep -o -E '\[0-9\]+ packets r' | grep -o -E '\[0-9\]+')
if \[ "$t" -eq 0 \]; then
/etc/init.d/openvpn restart
fi
done
この手順が完了すると、設定した接続を利用して接続が確立されているはずです。 設定が無事に完了したことを確認するには、NordVPNのホームページに移動してください。画面最上部のステータスが「保護されています」になっているはずです。
VPN接続を切断したい場合は、以下のコマンドを実行します。
service openvpn stop