ユーザ用ツール

サイト用ツール


openwrt-19:openvpn-server

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
openwrt-19:openvpn-server [2020/02/02 14:15]
admin [公開鍵基盤(PKI)を作成]
openwrt-19:openvpn-server [2020/06/19 14:57] (現在)
admin [TROUBLE SHOOT]
行 44: 行 44:
  
 <code> <code>
 +opkg update 
 +opkg install openvpn-openssl
 </code> </code>
  
行 59: 行 60:
  
 <code> <code>
- cp -r /etc/easy-rsa/ /etc/easy-rsa-openvpn/+cp -r /etc/easy-rsa/ /etc/openvpn/ 
 +cd /etc/openvpn/easy-rsa/
 </code> </code>
- 
  
 パラメータとして使われる環境変数を設定する。 パラメータとして使われる環境変数を設定する。
  
 <code> <code>
-export EASYRSA_PKI="/etc/easy-rsa/pki" +vim ./vars
-export EASYRSA_REQ_CN="ovpnca"+
 </code> </code>
 +
 +<code>
 +#set_var EASYRSA_REQ_CN         "ChangeMe"
 +</code>
 +を以下に変更する。
 +<code>
 +set_var EASYRSA_REQ_CN         "OpenWRT-OpenVPN"
 +</code>
 +他にも国コード等を変更したければ同様に変更する。
  
 PKI ディレクトリを削除して初期化する。 PKI ディレクトリを削除して初期化する。
 +
 +<note>vars ファイルは自動で読み込まれると書いてあるが読み込まれなかったので明示的に指定する。</note>
 +
 <code> <code>
-easyrsa --batch init-pki+easyrsa --vars=./vars --batch init-pki
 </code> </code>
  
行 80: 行 92:
  
 <code> <code>
-easyrsa --batch gen-dh +easyrsa --vars=./vars --batch gen-dh 
-easyrsa --batch build-ca nopass +easyrsa --vars=./vars --batch build-ca nopass 
-easyrsa --batch build-server-full server nopass+easyrsa --vars=./vars --batch build-server-full server nopass
 </code> </code>
  
行 88: 行 100:
  
 <code> <code>
-easyrsa --batch build-client-full client01 nopass +easyrsa --vars=./vars --batch build-client-full client01 nopass 
-easyrsa --batch build-client-full client02 nopass +easyrsa --vars=./vars --batch build-client-full client02 nopass 
-easyrsa --batch build-client-full client03 nopass+easyrsa --vars=./vars --batch build-client-full client03 nopass
 </code> </code>
  
行 96: 行 108:
 ==== OpenVPN サーバのインストール ==== ==== OpenVPN サーバのインストール ====
  
-パッケージをインストールする。 
-<code> 
-# opkg update 
-# opkg install openvpn-openssl 
-</code> 
  
 暗号を強化するための TLS 鍵を作成する。 暗号を強化するための TLS 鍵を作成する。
 <code> <code>
-openvpn --genkey --secret /etc/easy-rsa/pki/ta.key+openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/tc.pem
 </code> </code>
  
 +server.conf を作成する。
 <code> <code>
-vim /etc/config/openvpn +OVPN_DH="$(cat /etc/openvpn/easy-rsa/pki/dh.pem)" 
 +OVPN_TC="$(sed -e "/^#/d;/^\w/N;s/\n//" /etc/openvpn/easy-rsa/pki/tc.pem)" 
 +OVPN_CA="$(openssl x509 -in /etc/openvpn/easy-rsa/pki/ca.crt)" 
 +OVPN_CERT="$(openssl x509 -in /etc/openvpn/easy-rsa/pki/issued/server.crt)" 
 +OVPN_KEY="$(cat /etc/openvpn/easy-rsa/pki/private/server.key)" 
 +NL=$'\n' 
 +cat << EOF > /etc/openvpn/server.conf 
 +port 1194 
 +proto udp 
 +dev tun 
 +server 10.8.0.0 255.255.255.0 
 +topology subnet 
 +client-to-client 
 +keepalive 10 120 
 +user nobody 
 +group nogroup 
 +persist-tun 
 +persist-key 
 +compress lz4-v2 
 +verb 3 
 +push "dhcp-option DNS 8.8.8.8" 
 +push "dhcp-option DNS 8.8.4.4" 
 +push "redirect-gateway def1 bypass-dhcp" 
 +push "block-outside-dns" 
 +push "persist-tun" 
 +push "persist-key" 
 +push "compress lz4-v2" 
 +<dh>${NL}${OVPN_DH}${NL}</dh> 
 +<tls-auth>${NL}${OVPN_TC}${NL}</tls-auth> 
 +<ca>${NL}${OVPN_CA}${NL}</ca> 
 +<cert>${NL}${OVPN_CERT}${NL}</cert> 
 +<key>${NL}${OVPN_KEY}${NL}</key> 
 +EOF 
 +chmod 600 /etc/openvpn/server.conf
 </code> </code>
 +
 +OpenVPN サーバーを再起動して設定を読み込ませる。
  
 <code> <code>
-/etc/init.d/openvpn restart+/etc/init.d/openvpn restart
 </code> </code>
  
  
-  * /etc/easy-rsa/pki/ca.crt +==== クライアントの設定ファイルを作成 ====
-  * /etc/easy-rsa/pki/ta.key +
-  * /etc/easy-rsa/pki/private/client.key +
-  * /etc/easy-rsa/pki/issued/client.crt+
  
 +クライアント用の設定ファイルを格納するディレクトリを作成。
  
-==== TROUBLE SHOOT ====+<code> 
 +mkdir /etc/openvpn/client-conf/ 
 +</code>
  
-opkg update +クライアント用の設定ファイルを作成する。 
-opkg install ipset+ 
 +<code> 
 +OVPN_SERV="hogepiyo.com" 
 +OVPN_TC="$(sed -e "/^#/d;/^\w/N;s/\n//" /etc/openvpn/easy-rsa/pki/tc.pem)" 
 +OVPN_CA="$(openssl x509 -in /etc/openvpn/easy-rsa/pki/ca.crt)" 
 +NL=$'\n' 
 +grep -l -r -e "TLS Web Client Auth" "/etc/openvpn/easy-rsa/pki/issued"
 +| sed -e "s/^.*\///;s/\.\w*$//"
 +| while read -r OVPN_ID 
 +do 
 +OVPN_CERT="$(openssl x509 -in /etc/openvpn/easy-rsa/pki/issued/${OVPN_ID}.crt)" 
 +OVPN_KEY="$(cat /etc/openvpn/easy-rsa/pki/private/${OVPN_ID}.key)" 
 +cat << EOF > /etc/openvpn/client-conf/${OVPN_ID}.ovpn 
 +client 
 +remote ${OVPN_SERV} 
 +port 1194 
 +proto udp 
 +dev tun 
 +nobind 
 +auth-nocache 
 +remote-cert-tls server 
 +compress lz4-v2 
 +verb 3 
 +<tls-auth>${NL}${OVPN_TC}${NL}</tls-auth> 
 +<ca>${NL}${OVPN_CA}${NL}</ca> 
 +<cert>${NL}${OVPN_CERT}${NL}</cert> 
 +<key>${NL}${OVPN_KEY}${NL}</key> 
 +EOF 
 +chmod 600 /etc/openvpn/client-conf/${OVPN_ID}.ovpn 
 +done 
 +ls /etc/openvpn/client-conf/*.ovpn 
 +</code>
  
  
openwrt-19/openvpn-server.1580620551.txt.gz · 最終更新: 2020/02/02 14:15 by admin