差分

ナビゲーションに移動 検索に移動

OpenVPNのインストール

2,082 バイト追加, 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サーバー ===<syntaxhighlight lang="bash">以下のコマンドで、署名済み公開鍵を適切なディレクトリに移動します。{{bc|# mv /tmp/servernameserver.crt /etc/openvpn/server/# chown root:root /etc/openvpn/server/servernameserver.crt</syntaxhighlight> == VPNクライアント ==ぶっちゃけどこでも構わない<syntaxhighlight lang="bash"># mkdir /etc/easy-rsa/pki/signed# mv /tmp/client1client.crt /etc/easy-rsa/pki/signed</syntaxhighlight> == VPNサーバー ==<syntaxhighlight lang="bash">pacman -S openvpn</syntaxhighlight> == VPNサーバー設定ファイル ==<syntaxhighlight lang="bash">cp /usr/share/openvpn/examples/server.conf /etc/openvpn/serverclient/server.conf</syntaxhighlight> <syntaxhighlight lang="bash"># nano chown root:root /etc/openvpn/serverclient/serverclient.conf</syntaxhighlight>crt}}
ポート番号これまでの手順で以下のファイルが作成されているかと思います。<syntaxhighlight lang="text">port 1194<{{bc|/syntaxhighlight>etc/openvpn/server/ca.crt/etc/openvpn/server/dh.pem/etc/openvpn/server/server.crt/etc/openvpn/server/server.key/etc/openvpn/client/client.crt<syntaxhighlight lang="text">port xxxx</syntaxhighlight>etc/openvpn/client/client.key/etc/openvpn/server/ta.key}}
プロトコル(基本udpだけど、proxy越えしたい場合はtcp)=== VPNサーバー設定ファイルの作成 ===<syntaxhighlight lang="text">;proto tcp以下のコマンドでサンプルファイルをコピーしますproto udp<{{bc|# cp /usr/share/openvpn/syntaxhighlight><syntaxhighlight lang="text">proto tcp;proto udp<examples/server.conf /etc/openvpn/server/syntaxhighlight>server.conf}}
プロトコルをTCPにした場合は以下も…以下のコマンドで設定ファイルを開いて編集していきます。<syntaxhighlight lang="text">{{hc|# nano /etc/openvpn/server/server.conf|port 1194 ←ポート番号を変更したい場合proto tcp ←プロトコルを変更したい場合(プロキシ認証越えの場合はtcp。ipv6の場合はudp6/tcp6);proto udp;explicit-exit-notify 1</syntaxhighlight>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 ←追記<syntaxhighlight lang="text">;explicittls-exitversion-notify min 1</syntaxhighlight>.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サーバーのアドレスを指定<syntaxhighlight lang=push "textdhcp-option DNS 8.8.4.4" ←追記:VPNクライアントで使用してほしいDNSサーバーのアドレスを指定push ">ca caroute 192.168.56.0 255.255.255.crt</syntaxhighlight>0" ←追記:VPNクライアントがアクセスしたいローカルネットワークのアドレスとサブネットマスクを指定push "block-outside-dns" ←追記:DNSリーク対策<syntaxhighlight lang=push "textredirect-gateway def1">ca ca.crt</syntaxhighlight> ←追記:すべての通信をVPNサーバー経由で行う場合は設定client-to-client ←追記:VPNクライアントどうして通信したい場合はコメントアウトを外す
サーバーの公開鍵
<syntaxhighlight lang="text">cert server.crt</syntaxhighlight>
<syntaxhighlight lang="text">cert servername.crt</syntaxhighlight>
サーバーの(署名された)秘密鍵<syntaxhighlight lang="text">key server.key # This file should be kept secret</syntaxhighlight><syntaxhighlight lang="text">key servername.key # This file should be kept secret</syntaxhighlight>}}
暗号通信用のパラメータファイル設定が完了したら、以下のコマンドでサービスを起動します。<syntaxhighlight lang="text">dh dh2048.pem</syntaxhighlight>{{bc|# systemctl start openvpn-server@server}}<syntaxhighlight lang="text">dh dh.pem</syntaxhighlight>因みに…@の後ろの「server」は設定ファイル名です。
HMAC共通鍵(変えなくてもいいはず)=== VPNクライアント設定ファイル ===引き続き、VPNクライアント用の設定ファイルを作成していきます。<syntaxhighlight lang="text">tls-auth ta.key 0<br/syntaxhighlight><syntaxhighlight lang="text">tls-auth ta.key 0</syntaxhighlight>ただ…あ~だこ~だファイルを移すのは面倒なので、すべてを包含した設定ファイルを作成します。
プロセスのユーザーとグループ==== 「ovpngen」のインストール ====AURに「ovpngen」という、便利なツールがあります。<syntaxhighlight lang="text"br/>;user nobody;group nobodyこれを使用してVPNクライアント用の設定ファイルを作成していきます。<br/syntaxhighlight>まずは、以下のコマンドを使用してツールをゲットします。<syntaxhighlight lang="text"br/>user nobodygroup nobody<(バージョンは適宜最新のものに読み替えてください){{bc|# cd /etc/openvpn/client# wget https://github.com/graysky2/ovpngen/archive/syntaxhighlight>v1.28.tar.gz# tar -xvf v1.28.tar.gz# cd ovpngen-1.28# chmod +x ovpngen}}このツールはスクリプトなので、これでインストール完了です。
よくわからん!(変えなくてもいいはず)==== VPNクライアント用設定ファイルの生成 ====「ovpngen」を使用して、設定ファイルを作成します。<syntaxhighlight lang="text">cipher AES-256-CBC<br/syntaxhighlight>(ポート番号、プロトコルは適宜読み替えてください)<syntaxhighlight lang="text">cipher AES-256-CBC<{{bc|./ovpngen [VPNサーバーのIPアドレスまたはURL] /etc/openvpn/server/ca.crt /etc/openvpn/client/client.crt /etc/openvpn/client/client.key /etc/openvpn/server/syntaxhighlightta.key 1194 tcp >client.ovpn}}
以下追記<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>このファイルをVPNクライアントに持って行って、OpenVPNクライアントアプリに読み込ませればOKです。
サービス起動!<syntaxhighlight lang="bash">systemctl start openvpn-server@serverただ…ここで作成した「client.ovpn」ファイルの以下の部分は編集した方が良いかもです…。<br/syntaxhighlight>(自信なし…)
== VPNクライアント設定ファイル ===== 「ovpngen」のインストール ===<syntaxhighlight lang="bash">cd ~</syntaxhighlight><syntaxhighlight lang="bash">wget https://github.com{{hc|# nano /graysky2etc/ovpngenopenvpn/archiveclient/v1client.28.tar.gz</syntaxhighlight>ovpn|<syntaxhighlight lang="bash">tar cipher AES-xvf v1.28.tar.gz</syntaxhighlight>256-CBC ←コメントアウトを外す<syntaxhighlight lang="bash">cd ovpngen-1.28</syntaxhighlight>auth SHA512 ←コメントアウトを外す<syntaxhighlight lang="bash">chmod +x ovpngen</syntaxhighlight>proto xxxx ←VPNサーバーの設定に合わせる}}
=== VPNクライアント用設定ファイルの生成 =参考サイト ==<syntaxhighlight lang="bash">.[https:/ovpngen [VPNサーバーのIPアドレスまたはURL] /etcwiki.archlinux.jp/openvpnindex.php/server/caOpenVPN#.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.E6.8E.A5.E7.B6.crt /etc/easy9A OpenVPN -rsaArchWiki]<br/pki>[https:/signed/client1wiki.archlinux.crt jp/etcindex.php/easyEasy-rsaRSA Easy-RSA - ArchWiki]<br/pki>[https:/private/client1github.key com/etcgraysky2/openvpnovpngen GitHub - graysky2/server/ta.key 1194 tcp > client.conf</syntaxhighlight>ovpngen: Generate an OpenVPN Connect private tunnel profile in the unified format]
このファイルをクライアントに持って行って接続???[[Category:ArchLinux]][[Category:OpenVPN]]

案内メニュー