OpenVPN でVPN環境を構築してみる
自宅のネットワークに外出先からもアクセスしたいときがあります。
実際には、ブロードバンドルータで外部にポートを開放して SSH でアクセスすればだいたい用は足りるのですが、敢えて、VPN環境を構築して完全な形でローカルネットワークの一部を持ち出せるようにできたら面白いと思い、やってみました。
ローカルネットワークには DHCPサーバ と DNSサーバ が稼働しているので、 VPN で接続したホストもこの DHCPサーバ から情報をもらい、この DNSサーバ を利用するようにします。
OpenVPN の tap接続 を使います。
トンネルを通して L2 で接続されるので完全に内部にいるのと区別できなく(TCP/IP 以外のプロトコルすら動作する)なります。(そのためセキュリティ等の面からはむしろあまり推奨されない方法でもあるようです。)
以下は作業の記録です。いろいろな要素が絡むことがわかったので、覚書として残します。
VPNサーバ を立てようとするホストは次のとおり。
- OS : Ubuntu 24.04 Server
- ホスト名 :
serverhost
とする。 - すでに ISC-DHCP-Server と BIND9 が稼働中。 DHCP と DNS を連携させている。
- IPアドレス : 192.168.0.2/24 (静的設定)
VPNクライアント にするホストは次のとおり。
- OS : Ubuntu 22.04
- ホスト名 :
clienthost
とする。
記事を3つに分けます。
です。
1 : Easy-RSA による証明書等の準備
サーバやクライアントの設定に入る前に、事前準備として、各種の証明書や鍵を用意しておかなければなりません。
最初に、その作業を行います。
1-1 作業の概要
- OpenVPN は、 サーバの証明書 と サーバの秘密鍵 のペアおよび クライアントの証明書 と クライアントの秘密鍵 のペアを必要とします。それらを作ります。
- サーバの証明書 と クライアントの証明書 を利用するためには、それを発行した 認証局(CA)の証明書 が必要です。それは証明書を発行するために必然的に作りますので、各ホストで使えるように用意します。
- サーバは、 クライアントの証明書 が何らかの理由ですでに無効にされたものでないかどうかを確認しなければなりません。そのために 証明書失効リスト(CRL) が必要です。それを用意します。
- OpenVPN は、証明書を使った公開鍵暗号方式で通信を開始し、その通信で最初に共通鍵の受け渡しを行い、その後は、共通鍵暗号方式で通信を行います。そのようにする理由は、共通鍵暗号方式のほうが計算の負荷が小さく高速だからです。このとき、共通鍵そのものを直接渡すのではなく、共通鍵を生成するためのパラメータの一つを受け渡し、別のパラメータと合わせて各ホストでそれぞれ生成する、という、 DH方式 で共通鍵を共有します。その受け渡すパラメータ DHパラメータ を作ります。
参考 : OpenVPNにDH鍵交換方式が必要な理由 - OpenVPN は、セキュリティ強化のために、 TLS接続 において HMAC認証 を行うことができます。これは、クライアントからのパケットに TLS認証鍵 による署名(ハッシュ)をつけさせ、通信時に検証することで、サーバと同一の TLS認証鍵 を持っているクライアントだけを認証する機能です。その TLS認証鍵 を作ります。
参考 : How To - #tls-auth
参考 : OpenVPN TLS-Auth とは?
整理すると、結局、ここでは以下のものを作ります。
必要なもの | ファイル名 | どのホストが持たなければならないか |
---|---|---|
サーバの証明書 | serverhost.crt | サーバ |
サーバの秘密鍵 | serverhost.key | サーバ |
クライアントの証明書 | clienthost.crt | クライアント |
クライアントの秘密鍵 | clienthost.key | クライアント |
CAの証明書 | ca.crt | サーバ・クライアント |
証明書失効リスト | crl.pem | サーバ |
DHパラメータ | dh.pem | サーバ |
TLS認証鍵 | ta.key | サーバ・クライアント |
以上のうち、 TLS認証鍵 以外は、 OpenSSL のパッケージに含まれる Easy-RSA というプログラムを使って作ります。したがって、作業はすべて Easy-RSA の操作です。
TLS認証鍵 は OpenVPN の openvpn
コマンドで作ります。
1-2 必要なパッケージのインストール
以下、サーバのホストで作業をします。
openvpn
easy-rsa
bridge-utils
が必要です。
user<serverhost~> % sudo -s
root<serverhost~> % apt install openvpn easy-rsa bridge-utils
1-3 認証局の作成
サーバの証明書 と クライアントの証明書 を発行する 認証局(CA) を作ります。
1-3-1 準備
Easy-RSA の作業ディレクトリを作りそこへ移動
root<serverhost~> % cd /etc/openvpn/
root<serverhost/etc/openvpn> % cp -R /usr/share/easy-rsa/ .
root<serverhost/etc/openvpn> % cd easy-rsa/
Easy-RSA (OpenSSL)の基本動作を設定する openssl.cnf
の用意
/etc/openvpn/easy-rsa/
にすでに openssl-easyrsa.cnf
があってそれが役割を果たし、内容についても何も変更する必要がないので、何もする必要はありません。
Easy-RSA の変数の設定
Easy-RSA で使う変数の初期値などを、 vars
というファイルで設定します。
root<serverhost/etc/openvpn/easy-rsa> % cp vars.example vars
root<serverhost/etc/openvpn/easy-rsa> % vim vars
何も設定しなくても問題ないようですが、いちおう、形式的に設定しました。
以下が diff です。左が元のファイル、右が書き換え後。
101,106c101,106
< #set_var EASYRSA_REQ_COUNTRY "US"
< #set_var EASYRSA_REQ_PROVINCE "California"
< #set_var EASYRSA_REQ_CITY "San Francisco"
< #set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
< #set_var EASYRSA_REQ_EMAIL "me@example.net"
< #set_var EASYRSA_REQ_OU "My Organizational Unit"
---
> set_var EASYRSA_REQ_COUNTRY "JP"
> set_var EASYRSA_REQ_PROVINCE "Tokyo"
> set_var EASYRSA_REQ_CITY "Chiyoda"
> set_var EASYRSA_REQ_ORG "My Organization"
> set_var EASYRSA_REQ_EMAIL "mail@my.domain"
> set_var EASYRSA_REQ_OU ""
ディレクトリのクリーンアップ
easyrsa clean-all
で CA が使うディレクトリをクリーンアップします。
root<serverhost/etc/openvpn/easy-rsa> % easyrsa clean-all
Notice
------
'init-pki' complete; you may now create a CA or requests.
Your newly created PKI dir is:
* /etc/openvpn/easy-rsa/pki
Using Easy-RSA configuration:
* /etc/openvpn/easy-rsa/vars
1-3-2 認証局の作成
「CA を作る」とは、つまり CAの証明書 と CAの秘密鍵 のペアを作ることです。
Easy-RSA では CAの証明書 は 自己署名証明書 とするので、 CAの公開鍵 にさらに上位の CA に署名してもらって証明書を発行してもらう、という手順は必要ありません。
easyrsa build-ca
を使います。
Enter New CA Key Passphrase:
は、 CAの秘密鍵 につけるパスフレーズです。
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
は、 CAの名称 です。
root<serverhost/etc/openvpn/easy-rsa> % easyrsa build-ca
Using Easy-RSA 'vars' configuration:
* /etc/openvpn/easy-rsa/vars
Using SSL:
* openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
Enter New CA Key Passphrase:
Confirm New CA Key Passphrase:
.......+.....+...+.+......+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.....+.+.....+....+...+..+...................+..+...+.........+.+............+...+.................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
....+.....+...+...+....+......+.....+....+...+..+.+.....................+......+..+......+.+...+..+...+.......+......+.........+...+...........+..........+..+............+.+......+.........+..+...+.........+...+.........+..........+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+...+........+.........+.+..+.......+..+...+.......+...+...+...+.....+......+.+.................+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.....+..+...+............+.......+...+..................+.........+...+........+...+.......+..+.+.....+.........+......+............+..........+..+..........+........+.........+..........+.....+.........+.......+.........+...+...+...+...........+.+.........+......+..............+.........+......+.+..+.+..+...............+....+........+.......+........+...........................+................+........+....+.....+..........+..+......+.......+...+..+.+..+...+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:My CA
Notice
------
CA creation complete. Your new CA certificate is at:
* /etc/openvpn/easy-rsa/pki/ca.crt
できました。
CAの証明書 は ca.crt
(/etc/openvpn/easy-rsa/pki/ca.crt
)、 CAの秘密鍵 は ca.key
(/etc/openvpn/easy-rsa/pki/private/ca.key
)になります。
CAの証明書 はサーバ・クライアントともに持つ必要があります。
あとで、サーバ・クライアント両方のホストの適切なディレクトリにコピーします。
CAの秘密鍵 は CA として証明書を発行するためのもので、 VPNサーバ や VPNクライアント には必要ないものです。
CA から絶対に漏洩してはならないものなので、ディレクトリのパーミッションに注意してそのまま保管します。
1-4 サーバ証明書の作成
サーバの公開鍵 と サーバの秘密鍵 のペアを作り、 CA が サーバの公開鍵 に署名をして サーバの証明書 を発行します。
easyrsa build-server-full サーバの名称
を使います。
Enter PEM pass phrase:
は、 サーバの秘密鍵 につけるパスフレーズです。
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
は、 サーバの証明書 に署名する CAの秘密鍵 のパスフレーズです。
root<serverhost/etc/openvpn/easy-rsa> % easyrsa build-server-full serverhost
Using Easy-RSA 'vars' configuration:
* /etc/openvpn/easy-rsa/vars
Using SSL:
* openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
....+.............+......+.....+...+.+.....+......+.+........+......+.+..+.....作る。
.+....+...........+....+..+...+.......+...+..+.........+....+.....+......+.........+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+.+.....+...........................+..........+..+.+........+......+.+..+......+................+...+...+...+.....+......+..........+...+..+...+.......+...+.....+...+.........+...+.......+.....+................+..+...+...+.+...........+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.....+.....+.........+...+.+.....+....+......+.........+.....+.+.....+.......+..+...+...............+...............+...+....+..+.+.....+.......+.....+......+.....................+....+.....+......+.+........+....+...........+.......+...+...........+.+.....+....+.....+....+..+.......+........+....+...+.................+....+..+...+....+..+......+....+...+...+............+.....+................+.....+........................+......+.......+........+.+........+.......+......+...+.....+....+..+......+.........+....+.....+.......+..+...+...+.+.........+......+.....+....+............+.........+.....+.+............+...+..+..........+.....+.......+......+..+.......+...+...+..+.+.....+...............+.........+.......+...+..+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
......+........+.........+.........+.+...+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.+......+..+...+...+.......+........+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+........+...+.......+........+....+...+......+.....+......+..........+...........+.............+......+.....+.+...+.....+.+.....+.+............+..+..........+.....+....+...........+.+...+..+.......+...............+.....+...+.......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
Notice
------
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: /etc/openvpn/easy-rsa/pki/reqs/serverhost.req
* key: /etc/openvpn/easy-rsa/pki/private/serverhost.key
You are about to sign the following certificate:
Request subject, to be signed as a server certificate
for '825' days:
subject=
commonName = serverhost
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /etc/openvpn/easy-rsa/pki/openssl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'serverhost'
Certificate is to be certified until Jun 28 02:58:16 2027 GMT (825 days)
Write out database with 1 new entries
Database updated
Notice
------
Certificate created at:
* /etc/openvpn/easy-rsa/pki/issued/serverhost.crt
Notice
------
Inline file created:
* /etc/openvpn/easy-rsa/pki/inline/serverhost.inline
できました。
サーバの証明書 は serverhost.crt
(/etc/openvpn/easy-rsa/pki/issued/serverhost.crt
)、 サーバの秘密鍵 は serverhost.key
(/etc/openvpn/easy-rsa/pki/private/serverhost.key
)になります。
サーバの証明書 と サーバの秘密鍵 はサーバが持つ必要があります。
あとで、サーバのホストの適切なディレクトリにコピーします。
1-5 DHパラメータの作成
DHパラメータ を作ります。
easyrsa gen-dh
を使います。
root<serverhost/etc/openvpn> % cd easy-rsa/
root<serverhost/etc/openvpn/easy-rsa> % easyrsa gen-dh
Using Easy-RSA 'vars' configuration:
* /etc/openvpn/easy-rsa/vars
Using SSL:
* openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
Generating DH parameters, 2048 bit long safe prime
............................+.....................................................................................................................+...................................................+..........................................+.......................................................................................................................................................+.................................................................+................+....................................................................................................................................+.....................................................................................................................................................................................................................................................................................................................................+...........................................................................................................+.......+................................................................................+...................................+...........................................................................................................................+......................................................................................................+..............................................................................................................................+............+.....................................................................................+.....................+..........................................................................................................................................................................................................................................................................................+......................+..+......................................+..................+...........................................................................................+.....................................................................................................................................................................................+.....................................................................................+....................................................................................................................................+.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+...............................................................................................................................................................................................................+....................................................................+................................+...........+.....................................+.........+............................+..................................................+...................................................................................................................................................................................................................................................+.+............+...................................+.............................................................................+.......................................................................................+...............+...............................................................................................................................................................................................................................................................................................................................................................................................................................+............................................................................................+..............................................................................................................++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*++*
DH parameters appear to be ok.
Notice
------
DH parameters of size 2048 created at:
* /etc/openvpn/easy-rsa/pki/dh.pem
できました。
dh.pem
(/etc/openvpn/easy-rsa/pki/dh.pem
)になります。
DHパラメータ はサーバが使います。
あとで、サーバのホストの適切なディレクトリにコピーします。
1-6 証明書失効リストの作成
証明書失効リスト(CRL) を作ります。
CRL を作成するために、 ダミーの証明書 dummy.crt
を発行し直ちに失効させるという方法を使います。
ダミーの証明書を作る
easyrsa build-client-full dummy
を使います。
root<serverhost/etc/openvpn> % cd easy-rsa/
root<serverhost/etc/openvpn/easy-rsa> % easyrsa build-client-full dummy
Using Easy-RSA 'vars' configuration:
* /etc/openvpn/easy-rsa/vars
Using SSL:
* openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
....+...+.....+.+...........+....+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.+.....+...+.+............+............+...+............+..+..........+...+.....+......+.+...+........+............+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...+...+.....+.+.....+.+............+............+.....+.+..............+.+...+..+.......+..+...+.+.....+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+...+....+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..........+.........+.....+...+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
Notice
------
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: /etc/openvpn/easy-rsa/pki/reqs/dummy.req
* key: /etc/openvpn/easy-rsa/pki/private/dummy.key
You are about to sign the following certificate:
Request subject, to be signed as a client certificate
for '825' days:
subject=
commonName = dummy
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /etc/openvpn/easy-rsa/pki/openssl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'dummy'
Certificate is to be certified until Jun 28 03:08:37 2027 GMT (825 days)
Write out database with 1 new entries
Database updated
Notice
------
Certificate created at:
* /etc/openvpn/easy-rsa/pki/issued/dummy.crt
Notice
------
Inline file created:
* /etc/openvpn/easy-rsa/pki/inline/dummy.inline
ダミーの証明書を失効させる
easyrsa revoke dummy
を使います。
root<serverhost/etc/openvpn/easy-rsa> % easyrsa revoke dummy
Using Easy-RSA 'vars' configuration:
* /etc/openvpn/easy-rsa/vars
Using SSL:
* openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
WARNING
=======
This process is destructive!
These files will be MOVED to the 'revoked' sub-directory:
* /etc/openvpn/easy-rsa/pki/issued/dummy.crt
* /etc/openvpn/easy-rsa/pki/private/dummy.key
* /etc/openvpn/easy-rsa/pki/reqs/dummy.req
These files will be DELETED:
All PKCS files for commonName : dummy
The inline credentials files:
* /etc/openvpn/easy-rsa/pki/dummy.creds
* /etc/openvpn/easy-rsa/pki/inline/dummy.inline
The duplicate certificate:
* /etc/openvpn/easy-rsa/pki/certs_by_serial/8D169CCABF31A0099BBDF29E1DB74FC2.pem
Please confirm that you wish to revoke the certificate
with the following subject:
subject=
commonName = dummy
serial-number: 8D169CCABF31A0099BBDF29E1DB74FC2
Reason: None given
Type the word 'yes' to continue, or any other input to abort.
Continue with revocation: yes
Using configuration from /etc/openvpn/easy-rsa/pki/openssl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Revoking Certificate 8D169CCABF31A0099BBDF29E1DB74FC2.
Database updated
Notice
------
* IMPORTANT *
Revocation was successful. You must run 'gen-crl' and upload
a new CRL to your infrastructure in order to prevent the revoked
certificate from being accepted.
CRLのファイルを生成する
easyrsa gen-crl
を使います。
root<serverhost/etc/openvpn/easy-rsa> % easyrsa gen-crl
Using Easy-RSA 'vars' configuration:
* /etc/openvpn/easy-rsa/vars
Using SSL:
* openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
Using configuration from /etc/openvpn/easy-rsa/pki/openssl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Notice
------
An updated CRL has been created:
* /etc/openvpn/easy-rsa/pki/crl.pem
できました。
crl.pem
(/etc/openvpn/easy-rsa/pki/crl.pem
)になります。
CRL はサーバが持ちます。
あとで、サーバのホストの適切なディレクトリにコピーします。
CRL は、今後、何らかの証明書が失効するたびに作り直して OpenVPNサーバ に渡さなければなりません。
1-7 クライアント証明書の作成
クライアントの公開鍵 と クライアントの秘密鍵 のペアを作り、 CA が クライアントの公開鍵 に署名をして クライアントの証明書 を発行します。
easyrsa build-client-full クライアントの名称
を使います。
Enter PEM pass phrase:
は、 クライアントの秘密鍵 につけるパスフレーズです。
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
は、 クライアントの公開鍵 に署名する CAの秘密鍵 のパスフレーズです。
root<serverhost/etc/openvpn> % cd easy-rsa/
root<serverhost/etc/openvpn/easy-rsa> % easyrsa build-client-full clienthost
Using Easy-RSA 'vars' configuration:
* /etc/openvpn/easy-rsa/vars
Using SSL:
* openssl OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
.+.....+.+......+..+...+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+....+.....+............+....+......+.....+.+..+...+...+..........+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+.......+.....+...+.......+...............+.....+...+...+....+...+......+.....+.........+...+.............+..............+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+....+...+..+....+..+...+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+.........+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+........+.......+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
Notice
------
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: /etc/openvpn/easy-rsa/pki/reqs/clienthost.req
* key: /etc/openvpn/easy-rsa/pki/private/clienthost.key
You are about to sign the following certificate:
Request subject, to be signed as a client certificate
for '825' days:
subject=
commonName = clienthost
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /etc/openvpn/easy-rsa/pki/openssl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'clienthost'
Certificate is to be certified until Jun 28 03:33:35 2027 GMT (825 days)
Write out database with 1 new entries
Database updated
Notice
------
Certificate created at:
* /etc/openvpn/easy-rsa/pki/issued/clienthost.crt
Notice
------
Inline file created:
* /etc/openvpn/easy-rsa/pki/inline/clienthost.inline
できました。
クライアントの証明書 は clienthost.crt
(/etc/openvpn/easy-rsa/pki/issued/clienthost.crt
)、 クライアントの秘密鍵 は clienthost.key
(/etc/openvpn/easy-rsa/pki/private/clienthost.key
)になります。
クライアントの証明書 と クライアントの秘密鍵 はクライアントが持つ必要があります。
あとで、クライアントのホストの適切なディレクトリにコピーします。
1-8 TLS認証鍵の作成
TLS認証鍵 を作ります。
これは Easy-RSA と無関係です。
サーバのホストで作業し、 /etc/openvpn/
に、直接、作ります。
openvpn
コマンドで行います。具体的には、 openvpn --genkey secret 生成した鍵を格納するファイル名
とします。
root<serverhost/etc/openvpn/easy-rsa> % cd ..
root<serverhost/etc/openvpn> % openvpn --genkey secret /etc/openvpn/ta.key
ta.key
(/etc/openvpn/ta.key
)になります。
TLS認証鍵 は漏洩してはならないものですから、パーミッションに注意します。
オーナー は root:root にし、 パーミッション は 600 にしました。
次の記事はこちら → 2 : サーバの設定
次の次の記事はこちら → 3 : クライアントの設定