ノート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

ca証明書

[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]#

DHパラメータ

[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]#

TLS認証鍵作成

[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 ~]#

OpenVPNの設定

[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 ~]#

ip forward

[root@vpn ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@vpn ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 1
[root@vpn ~]#

Firewalld

現状確認

[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 ~]# firewall-cmd --add-service openvpn
success
[root@vpn ~]#
[root@vpn ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client openvpn ssh
(略)
 
[root@vpn ~]#
[root@vpn ~]# firewall-cmd --permanent --add-service openvpn
[root@vpn ~]# firewall-cmd --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
[root@vpn ~]# firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
 
[root@vpn ~]# firewall-cmd --permanent --zone=trusted --add-interface=tun+
[root@vpn ~]# firewall-cmd --zone=trusted --add-interface=tun+

openVPN起動

[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)を持たせた
2017y07m03d_165634675.png

また、routerおよびrouter/pfsense/multi-nic-router#d7fc8556のようにデフォルトGW以外の
出口が用意されるので、対応が必要となる。ここでは10.8.0.0/24を使って、そのGWはvpnサーバの192.168.0.61になるので
2017y07m03d_170506288.png
とする

クライアント証明書

実際に外部からアクセスするマシンにインストールされる証明書を作ります
用途に応じては、マシン名でなく、利用者の名称でもいいような気がする
ここでは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認証鍵をクライアントマシンに送る

ノートPCへ設定

openVPNのクライアントアプリをPCにインストールします。ここではwindows10 proに入れてます
このサイトのvpnクライアントを使ってみた
http://www.plum-systems.co.jp/vpnux-client/
アプリを起動すると「VPNUX CLIENT」画面が表示される。そして「プロファイル」ボタンを押下する
2017y07m03d_115719092.png
表示された「プロファイル」画面にて、「追加」ボタンを押下して、vpnサイトを追加します
2017y07m03d_120329309.png
表示された「プロファイルの編集」画面にて、プロファイル名、VPNサーバを指定します。
2017y07m03d_121109144.png
同画面の「認証」欄にてca証明書の「...」ボタンを押下して、vpnサーバのca証明書の"中身"を流し込みます
次に証明書認証(PKI)にてクライアント証明書と秘密鍵の"中身"も流し込み、同時にパスフレーズも入力する
2017y07m03d_121930838.png
次に、画面上部の「詳細設定」リンクを押下します 所見見付け辛い
2017y07m03d_130521037.png
「追加セキュリティー設定」欄にて、TSL-Authを有効にして、「...」を押下して共有鍵を指定して
2017y07m03d_130936984.png
留意 最後に「暗号化設定」欄を「AES-256-CBC」に変更して、画面下部の「保存」ボタンを押下します
2017y07m03d_144413896.png

「プロファイル」画面に戻ります。ここで「閉じる」を押下します
2017y07m03d_123129410.png
初めの画面に戻り、プロファイル欄のプルダウンから先ほど定義したプロファイルを選び、「接続」ボタンを押下すれば、vpn接続が開始される
2017y07m03d_123316385.png


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-07-03 (月) 17:08:12 (110d)