OpenWrt用OpenVPNの設定方法【まとめ】
2023/08/19 ファイアウォールの設定辺りを修正
OpenVPNのセッティング
▶ システム>ソフトウェア>リスト更新かけて
luci-i18n-openvpn-ja(+luci-app-openvpn)
openvpn-openssl
適当に ステータス>概要 なんかで画面更新すると VPN ができてる
▶ MobaXtermでSSHログイン
# 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
→バージョンによっては # openvpn --genkey --secret /etc/openvpn/tlscrypt.key
サーバー側の設定
▶ 上の作業後(MobaXterm/SSH接続したまま)、
etc>config>openvpn を右クリック→Open with default text editer で開く
そのままエディターで下記へ丸ごと差し替える
config openvpn 'router_server'
option enabled '1'
option dev 'tun0'
option port '1194'
option proto 'udp'
option compress 'stub-v2'
option dh '/etc/easy-rsa/pki/dh.pem'
option ca '/etc/easy-rsa/pki/ca.crt'
option cert '/etc/easy-rsa/pki/issued/openvpn-server.crt'
option key '/etc/easy-rsa/pki/private/openvpn-server.key'
option tls_crypt '/etc/openvpn/tlscrypt.key'
option remote_cert_tls 'client'
option key_direction '0'
option keepalive '10 120'
option persist_tun '1'
option persist_key '1'
option user 'nobody'
option group 'nogroup'
option verb '5'
option server '192.168.255.0 255.255.255.0'
option topology 'subnet'
list push 'redirect-gateway def1'
list push 'dhcp-option DOMAIN myhomelan'
list push 'dhcp-option DNS 192.168.1.1'
list push 'persist-tun'
list push 'persist-key'
▶▶TCP接続にする場合は option proto 'udp'→option proto 'tcp-server'
MobaXtermでの作業は終了
▶ ネットワーク>インターフェイス
インターフェイスを新規作成
>名前[OpenVPN(適当)] / プロトコル[アンマネージド]
デバイスはカスタムに[tun0]入力
ファイヤウォールゾーンをLANに割り当て 保存、適用
▶ ネットワーク>ファイアウォール>トラフィック・ルールに↓追加
保存、適用
※WANからの1194を通過させるだけでいいはずなのに、送信元WAN・送信元ポート1194、宛先ポート空白ではできず、↑でしか動かなかった
▶ネットワーク>ファイアウォール>ポートフォワーディングに↓追加
※ポートフォワーディングはルーター傘下のVPN専用端末がある場合に使用するものと思っていたが、単独ルーター(内でVPNも動かす)時も設定した方が安定した
保存・適用
クライアント用ovpnファイルの作成
client
dev tun0
proto udp
remote xxxx.xxx.xxx 1194 # 固定IP or DDNS
resolv-retry infinite
nobind
remote-cert-tls server
key-direction 1
compress stub-v2
verb 5<ca> # etc/easy-rsa/pki/ca.crt
-----BEGIN CERTIFICATE-----
・・・・・
-----END CERTIFICATE-----
</ca>
<cert> # etc/easy-rsa/pki/issued/openvpn-client〇.crt 【追加時】
Certificate:
Data:
・・・・
Signature Algorithm: sha256WithRSAEncryption
・・・・
Signature Algorithm: sha256WithRSAEncryption
・・・・
-----BEGIN CERTIFICATE-----
・・・・
-----END CERTIFICATE-----
</cert>
<key> # etc/easy-rsa/pki/private/openvpn-client〇.key 【追加時】
-----BEGIN PRIVATE KEY-----
・・・・
-----END PRIVATE KEY-----
</key>
<tls-crypt> # etc/openvpn/tlscrypt.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
・・・・
-----END OpenVPN Static key V1-----
</tls-crypt>
▶ Win上でも適当にテキストファイルにコピーして、.txt→.ovpn
名前は適当にOVPN-Client.ovpnとでも
▶ 該当箇所(4ヶ所)をそれぞれMobaXtermのエディターで開いてコピペ
▶ できた.ovpnファイルを泥機(あいぽん)のOpenVPNアプリで開いて接続
▶▶TCP接続にする場合は proto udp→proto tcp-client
補足
verbは5にしてるので同時接続は5台まで
2台目以降の.ovpnファイルはMobaXtermSSHで
# cd /etc/easy-rsa
# easyrsa build-client-full openvpn-client〇 nopass
で、clientのkeyとcertが追加されるので
クライアント用ファイルの【追加時】のところにコピペ
名前も間違わないようにOVPN-Client〇.ovpnにしとく
WANのPPPoE設定お忘れなく
DDNS使ってるならシステム>スケジュールタスクなど細かい設定もお忘れなく