ノートPCを導入したのでOpenVPNを作ってみる
正直この辺は明るくない.
参照先:https://gtrt7.com/blog/linux/install-openvpn
CentOS7を最小構成で作り上げ、SELinuxは切った
[root@vpn ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@vpn ~]# yum -y install epel-release wget unzip
[root@vpn ~]# sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/epel.repo
[root@vpn ~]# yum -y update && reboot
[root@vpn ~]# yum --enablerepo=epel -y install openvpn
[root@vpn ~]# yum list installed |grep openvpn
openvpn.x86_64 2.4.3-1.el7 @epel
[root@vpn ~]#
[root@vpn ~]# wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
[root@vpn ~]# unzip master.zip
[root@vpn ~]# cp -r ./easy-rsa-master/easyrsa3 /etc/openvpn
[root@vpn ~]# cd /etc/openvpn/easyrsa3
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# ls -l
合計 52
-rwxr-xr-x 1 root root 35985 7月 3 01:52 easyrsa
-rw-r--r-- 1 root root 4560 7月 3 01:52 openssl-1.0.cnf
-rw-r--r-- 1 root root 8126 7月 3 01:52 vars.example
drwxr-xr-x 2 root root 58 7月 3 01:52 x509-types
[root@vpn easyrsa3]#
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# ./easyrsa init-pki
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/easyrsa3/pki
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# ./easyrsa build-ca
Generating a 2048 bit RSA private key
.........+++
..+++
writing new private key to '/etc/openvpn/easyrsa3/pki/private/ca.key.(略'
Enter PEM pass phrase: <--- パスフレーズ
Verifying - Enter PEM pass phrase: <--- パスフレーズ再入力
-----
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]:chaperone
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/openvpn/easyrsa3/pki/ca.crt
[root@vpn easyrsa3]#
できた ca証明書(/etc/openvpn/easyrsa3/pki/ca.crt) を/etc/openvpn/に送る
[root@vpn easyrsa3]# cp -p ./pki/ca.crt /etc/openvpn/
[root@vpn easyrsa3]# ls -l /etc/openvpn/ca.crt
-rw------- 1 root root 1180 7月 3 01:59 /etc/openvpn/ca.crt
[root@vpn easyrsa3]#
[root@vpn ~]# cd /etc/openvpn/easyrsa3
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# ./easyrsa build-server-full server nopass
Generating a 2048 bit RSA private key
........+++
...........................................+++
writing new private key to '/etc/openvpn/easyrsa3/pki/private/server.key.r63A2QNOKY'
-----
Using configuration from ./openssl-1.0.cnf
Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key: <-- ca証明書で使用したパスフレーズ
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :PRINTABLE:'server'
Certificate is to be certified until Jun 30 18:12:29 2027 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
[root@vpn easyrsa3]#
これでサーバ証明ファイル /etc/openvpn/easyrsa3/pki/private/server.key が用意できた
これも /etc/openvpn/ に置く
[root@vpn easyrsa3]# cp -p ./pki/issued/server.crt /etc/openvpn/
[root@vpn easyrsa3]# cp -p ./pki/private/server.key /etc/openvpn/
[root@vpn easyrsa3]# ls -l /etc/openvpn/server.{crt,key}
-rw------- 1 root root 4560 7月 3 03:12 /etc/openvpn/server.crt
-rw------- 1 root root 1704 7月 3 03:12 /etc/openvpn/server.key
[root@vpn easyrsa3]#
[root@vpn ~]# cd /etc/openvpn/easyrsa3/
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# ./easyrsa gen-dh
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.....................................(略
DH parameters of size 2048 created at /etc/openvpn/easyrsa3/pki/dh.pem
[root@vpn easyrsa3]#
これで DHパラメータファイル /etc/openvpn/easyrsa3/pki/dh.pem を得た
これも /etc/openvpn/ に置く
[root@vpn easyrsa3]# cp -p ./pki/dh.pem /etc/openvpn/
[root@vpn easyrsa3]# ls -l /etc/openvpn/dh.pem
-rw------- 1 root root 424 7月 3 03:17 /etc/openvpn/dh.pem
[root@vpn easyrsa3]#
[root@vpn ~]# cd /etc/openvpn/easyrsa3/
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# ./easyrsa gen-crl
Using configuration from ./openssl-1.0.cnf
Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:
An updated CRL has been created.
CRL file: /etc/openvpn/easyrsa3/pki/crl.pem
[root@vpn easyrsa3]#
これで証明書廃止リスト /etc/openvpn/easyrsa3/pki/crl.pem を得る
これも /etc/openvpn/ に置く
[root@vpn easyrsa3]# cp -p ./pki/crl.pem /etc/openvpn/
[root@vpn easyrsa3]# ls -l /etc/openvpn/crl.pem
-rw------- 1 root root 638 7月 3 10:24 /etc/openvpn/crl.pem
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# chmod o+r /etc/openvpn/crl.pem
[root@vpn easyrsa3]# ls -l /etc/openvpn/crl.pem
-rw----r-- 1 root root 638 7月 3 10:24 /etc/openvpn/crl.pem
[root@vpn easyrsa3]#
[root@vpn ~]# openvpn --genkey --secret /etc/openvpn/ta.key
[root@vpn ~]# ls -l /etc/openvpn/ta.key
-rw------- 1 root root 636 7月 3 10:35 /etc/openvpn/ta.key
[root@vpn ~]#
[root@vpn ~]# cp -a /usr/share/doc/openvpn-2.4.3/sample/sample-config-files/server.conf /etc/openvpn/
[root@vpn ~]# vi /etc/openvpn/server.conf
[root@vpn ~]# grep -v -e '^#' -e '^;' -e '^\s*$' /etc/openvpn/server.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "route 10.8.0.0 255.255.255.0"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3
explicit-exit-notify 1
crl-verify crl.pem
[root@vpn ~]#
[root@vpn ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@vpn ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 1
[root@vpn ~]#
現状確認
[root@vpn ~]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block
[root@vpn ~]# firewall-cmd --list-services
dhcpv6-client ssh
[root@vpn ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
(略)
[root@vpn ~]#
っで、追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
[root@vpn ~]# systemctl enable openvpn@server.service
[root@vpn ~]# [root@vpn ~]# systemctl start openvpn@server.service
外部からのアクセスに応答するマシンを宛がう
こちらでは UDP 1194 への受け口に vpn.sybyl.local(192.168.0.61)を持たせた
また、routerおよびrouter/pfsense/multi-nic-router#d7fc8556のようにデフォルトGW以外の
出口が用意されるので、対応が必要となる。ここでは10.8.0.0/24を使って、そのGWはvpnサーバの192.168.0.61になるので
とする
実際に外部からアクセスするマシンにインストールされる証明書を作ります
用途に応じては、マシン名でなく、利用者の名称でもいいような気がする
ここではHPのノートPC向けの証明書を用意してみます
[root@vpn ~]# cd /etc/openvpn/easyrsa3/
[root@vpn easyrsa3]#
[root@vpn easyrsa3]# ./easyrsa build-client-full client_hp_elite_book
Generating a 2048 bit RSA private key
.........................+++
.........................+++
writing new private key to '/etc/openvpn/easyrsa3/pki/private/client_hp_elite_book.key.zZAhosG9BP'
Enter PEM pass phrase: <--- このクライアント証明書を使う際のパスフレーズ
Verifying - Enter PEM pass phrase: <--- 同上
-----
Using configuration from ./openssl-1.0.cnf
Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key: <--- ca証明書のパスフレーズ
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :T61STRING:'client_hp_elite_book'
Certificate is to be certified until Jul 1 02:32:26 2027 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
[root@vpn easyrsa3]#
これでクライアント証明書 /etc/openvpn/easyrsa3/pki/issued/client_hp_elite_book.crt と
クライアント秘密鍵 /etc/openvpn/easyrsa3/pki/private/client_hp_elite_book.key が得られ、
これと ca証明書、TLS認証鍵をクライアントマシンに送る
openVPNのクライアントアプリをPCにインストールします。ここではwindows10 proに入れてます
このサイトのvpnクライアントを使ってみた
http://www.plum-systems.co.jp/vpnux-client/
アプリを起動すると「VPNUX CLIENT」画面が表示される。そして「プロファイル」ボタンを押下する
表示された「プロファイル」画面にて、「追加」ボタンを押下して、vpnサイトを追加します
表示された「プロファイルの編集」画面にて、プロファイル名、VPNサーバを指定します。
同画面の「認証」欄にてca証明書の「...」ボタンを押下して、vpnサーバのca証明書の"中身"を流し込みます
次に証明書認証(PKI)にてクライアント証明書と秘密鍵の"中身"も流し込み、同時にパスフレーズも入力する
次に、画面上部の「詳細設定」リンクを押下します 所見見付け辛い
「追加セキュリティー設定」欄にて、TSL-Authを有効にして、「...」を押下して共有鍵を指定して
留意 最後に「暗号化設定」欄を「AES-256-CBC」に変更して、画面下部の「保存」ボタンを押下します
「プロファイル」画面に戻ります。ここで「閉じる」を押下します
初めの画面に戻り、プロファイル欄のプルダウンから先ほど定義したプロファイルを選び、「接続」ボタンを押下すれば、vpn接続が開始される