メインメニューを開く

差分

OpenVPNのインストール

2,069 バイト追加, 2019年12月27日 (金) 11:24
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [server]:[任意の名前][任意の名前を入力]
Keypair and certificate request completed. Your files are:
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [client]:yyyyyyyy[任意の名前を入力]
Keypair and certificate request completed. Your files are:
req: /etc/easy-rsa/pki/reqs/client.req
key: /etc/easy-rsa/pki/private/client.key</pre>
 
生成されたファイルのうち、秘密鍵?を適切なディレクトリにコピーします。
{{bc|# cp /etc/easy-rsa/pki/private/client.key /etc/openvpn/client/}}
証明書署名要求ファイルを認証局サーバーに移動させます。
# chown foo /tmp/*.crt
$ scp /tmp/*.crt foo@hostname-of-openvpn_server:/tmp}}
 
 
これで、鍵関連の作業は終了です。<br/>
== VPNの設定 ==
=== VPNサーバー ===
以下のコマンドで、VPNサーバー用署名済み公開鍵を適切なディレクトリに移動します。以下のコマンドで、署名済み公開鍵を適切なディレクトリに移動します。
{{bc|# mv /tmp/server.crt /etc/openvpn/server/
# chown root:root /etc/openvpn/server/server.crt# mv /tmp/client.crt /etc/openvpn/client/# chown root:root /etc/openvpn/client/client.crt}}
=== VPNクライアント ===これまでの手順で以下のファイルが作成されているかと思います。ぶっちゃけどこでも構わない{{bc|/etc/openvpn/server/ca.crt/etc/openvpn/server/dh.pem/etc/openvpn/server/server.crt<syntaxhighlight lang="bash"># mkdir /etc/easy-rsaopenvpn/pkiserver/signedserver.key# mv /tmpetc/openvpn/client1client/client.crt /etc/easy-rsaopenvpn/client/client.key/etc/pkiopenvpn/signed<server/syntaxhighlight>ta.key}}
=== VPNサーバー設定ファイル VPNサーバー設定ファイルの作成 ===<syntaxhighlight lang="bash">以下のコマンドでサンプルファイルをコピーします{{bc|# cp /usr/share/openvpn/examples/server.conf /etc/openvpn/server/server.conf</syntaxhighlight>}}
<syntaxhighlight lang="bash">以下のコマンドで設定ファイルを開いて編集していきます。{{hc|# nano /etc/openvpn/server/server.conf<|port 1194 ←ポート番号を変更したい場合proto tcp ←プロトコルを変更したい場合(プロキシ認証越えの場合はtcp。ipv6の場合はudp6/syntaxhighlight>tcp6);proto udp;explicit-exit-notify 1 ←プロトコルをtcpにした場合はこの行をコメントアウトca ca.crt ←認証局の証明書(ファイル名を変えている場合は修正)cert server.crt ←VPNサーバーの公開鍵(ファイル名を変えている場合は修正)key server.key # This file should be kept secret ←VPNサーバーの秘密鍵(ファイル名を変えている場合は修正)dh dh.pem ←暗号通信用のパラメータファイル(ファイル名を変えている場合は修正)tls-auth ta.key 0 ←HMAC共通鍵(ファイル名を変えている場合は修正)user nobody ←プロセスのユーザー:コメントアウトを外すgroup nobody ←プロセスのユーザーグループ:コメントアウトを外すcipher AES-256-CBC ←良くわからないけど、書いたほうが良いらしい…(デフォルトで有効になってるけど…)auth SHA512 ←追記tls-version-min 1.2 ←追記tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA ←追記
ポート番号push "dhcp-option DNS 8.8.8.8" ←追記:VPNクライアントで使用してほしいDNSサーバーのアドレスを指定push "dhcp-option DNS 8.8.4.4" ←追記:VPNクライアントで使用してほしいDNSサーバーのアドレスを指定<syntaxhighlight lang=push "textroute 192.168.56.0 255.255.255.0">port 1194</syntaxhighlight> ←追記:VPNクライアントがアクセスしたいローカルネットワークのアドレスとサブネットマスクを指定push "block-outside-dns" ←追記:DNSリーク対策<syntaxhighlight lang=push "textredirect-gateway def1">port xxxx</syntaxhighlight> ←追記:すべての通信をVPNサーバー経由で行う場合は設定client-to-client ←追記:VPNクライアントどうして通信したい場合はコメントアウトを外す
プロトコル(基本udpだけど、proxy越えしたい場合はtcp)
<syntaxhighlight lang="text">;proto tcp
proto udp</syntaxhighlight>
<syntaxhighlight lang="text">proto tcp
;proto udp</syntaxhighlight>
プロトコルをTCPにした場合は以下も…<syntaxhighlight lang="text">explicit-exit-notify 1</syntaxhighlight><syntaxhighlight lang="text">;explicit-exit-notify 1</syntaxhighlight>}}
認証局の公開鍵(変える必要ないはず)設定が完了したら、以下のコマンドでサービスを起動します。<syntaxhighlight lang="text">ca ca.crt</syntaxhighlight>{{bc|# systemctl start openvpn-server@server}}<syntaxhighlight lang="text">ca ca.crt</syntaxhighlight>因みに…@の後ろの「server」は設定ファイル名です。
サーバーの公開鍵=== VPNクライアント設定ファイル ===引き続き、VPNクライアント用の設定ファイルを作成していきます。<syntaxhighlight lang="text">cert server.crt<br/syntaxhighlight><syntaxhighlight lang="text">cert servername.crt</syntaxhighlight>ただ…あ~だこ~だファイルを移すのは面倒なので、すべてを包含した設定ファイルを作成します。
サーバーの(署名された)秘密鍵==== 「ovpngen」のインストール ====AURに「ovpngen」という、便利なツールがあります。<syntaxhighlight lang="text"br/>key server.key # This file should be kept secretこれを使用してVPNクライアント用の設定ファイルを作成していきます。<br/syntaxhighlight>まずは、以下のコマンドを使用してツールをゲットします。<syntaxhighlight lang="text"br/>key servername(バージョンは適宜最新のものに読み替えてください){{bc|# cd /etc/openvpn/client# wget https://github.com/graysky2/ovpngen/archive/v1.28.tar.key gz# This file should be kept secret</syntaxhighlight>tar -xvf v1.28.tar.gz# cd ovpngen-1.28# chmod +x ovpngen}}このツールはスクリプトなので、これでインストール完了です。
暗号通信用のパラメータファイル==== VPNクライアント用設定ファイルの生成 ====「ovpngen」を使用して、設定ファイルを作成します。<syntaxhighlight lang="text">dh dh2048.pem<br/syntaxhighlight>(ポート番号、プロトコルは適宜読み替えてください)<syntaxhighlight lang="text">dh dh{{bc|./ovpngen [VPNサーバーのIPアドレスまたはURL] /etc/openvpn/server/ca.crt /etc/openvpn/client/client.crt /etc/openvpn/client/client.pem<key /etc/openvpn/server/syntaxhighlightta.key 1194 tcp >client.ovpn}}
HMAC共通鍵(変えなくてもいいはず)<syntaxhighlight lang="text">tls-auth ta.key 0</syntaxhighlight><syntaxhighlight lang="text">tls-auth ta.key 0</syntaxhighlight>このファイルをVPNクライアントに持って行って、OpenVPNクライアントアプリに読み込ませればOKです。
プロセスのユーザーとグループ<syntaxhighlight lang="text">;user nobody;group nobodyただ…ここで作成した「client.ovpn」ファイルの以下の部分は編集した方が良いかもです…。<br/syntaxhighlight><syntaxhighlight lang="text">user nobodygroup nobody</syntaxhighlight>(自信なし…)
よくわからん!(変えなくてもいいはず){{hc|# nano /etc/openvpn/client/client.ovpn|<syntaxhighlight lang="text">cipher AES-256-CBC</syntaxhighlight>CBC ←コメントアウトを外すauth SHA512 ←コメントアウトを外す<syntaxhighlight lang="text">cipher AES-256-CBC</syntaxhighlight>proto xxxx ←VPNサーバーの設定に合わせる}}
以下追記<syntaxhighlight lang="text">auth SHA512tls-version-min 1.2tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA</syntaxhighlight> サービス起動!<syntaxhighlight lang="bash">systemctl start openvpn-server@server</syntaxhighlight> === VPNクライアント設定ファイル =参考サイト ====== 「ovpngen」のインストール ====<syntaxhighlight lang="bash">cd ~</syntaxhighlight><syntaxhighlight lang="bash">wget [https://githubwiki.archlinux.comjp/graysky2index.php/ovpngen/archive/v1OpenVPN#.E3.82.AF.E3.83.A9.E3.82.A4.E3.82.A2.E3.83.B3.E3.83.88.E3.81.A8.E3.82.AF.E3.83.A9.E3.82.A4.E3.82.A2.E3.83.B3.E3.83.88.E3.81.AE_LAN_.E3.82.92.28E6.tar8E.gz</syntaxhighlight><syntaxhighlight lang="bash">tar -xvf v1A5.28E7.tarB6.gz9A OpenVPN - ArchWiki]<br/syntaxhighlight><syntaxhighlight lang="bash">cd ovpngen-1.28<[https:/syntaxhighlight><syntaxhighlight lang="bash">chmod +x ovpngen</syntaxhighlight> ==== VPNクライアント用設定ファイルの生成 ====<syntaxhighlight lang="bash">wiki.archlinux.jp/ovpngen [VPNサーバーのIPアドレスまたはURL] /etc/openvpn/server/caindex.crt php/etc/easyEasy-RSA Easy-RSA -rsaArchWiki]<br/pki>[https:/signed/client1github.crt com/etcgraysky2/easyovpngen GitHub -rsa/pkigraysky2/ovpngen: Generate an OpenVPN Connect private/client1.key /etc/openvpn/server/ta.key 1194 tcp > client.conf</syntaxhighlight>tunnel profile in the unified format]
このファイルをクライアントに持って行って接続???[[Category:ArchLinux]][[Category:OpenVPN]]