OpenVPNを設定してみる for CentOS7

準備

Open VPNをインストール

$ sudo yum install -y openvpn    # epelリポジトリを有効にしておかないとできないかも

VPNを設定

cd /etc/openvpn/server
mkdir user
vim user.conf

設定を書く。

認証局の設定

git clone https://github.com/OpenVPN/easy-rsa.git
cd /home/user/easy-rsa/easyrsa3
cp vars.example vars
vim vars

varsファイルの以下の部分を修正

 95 set_var EASYRSA_REQ_COUNTRY     "JP"
 96 set_var EASYRSA_REQ_PROVINCE    "自分の街"
 97 set_var EASYRSA_REQ_CITY        "自分の市"
 98 set_var EASYRSA_REQ_ORG "自分の会社"
 99 set_var EASYRSA_REQ_EMAIL       "自分のメアド"
100 set_var EASYRSA_REQ_OU          "自分の所属"

~~~

116 set_var EASYRSA_ALGO            「rsa」か「ec」を書く

~~~

120 set_var EASYRSA_CURVE           secp384r1

124 set_var EASYRSA_CA_EXPIRE       3650

128 set_var EASYRSA_CERT_EXPIRE     1080

~~~~~

212 set_var EASYRSA_DIGEST          "sha256"

認証局を作成し、証明書を作成していく

$ ./easyrsa  init-pki      # 初回だけ実行
$ ./easyrsa build-ca      # 認証局を作成
   # パスワードを設定(これを破られると死ぬ)
	 # 認証局のサーバ名を指定(わかり易い名前)
# 以下コマンドで、作られた鍵情報が表示される
$ ./easyrsa show-ca full
# または
$ openssl x509 -text -in pki/ca.crt
$ ./easyrsa build-server-full サーバ名 nopass
$ $ ./easyrsa show-cert サーバ名

VPNにつなぎに行くクライアントを作成

$ ./easyrsa build-client-full

失効証明書の作成

ユーザに対する、接続の無効化を設定するためのもの。
(退職などでユーザの接続権を剥奪するときなどに使う)

$ ./easyrsa gen-crl

HMAC署名の鍵作成

メッセージ(パケット)の改ざんがされていないかをチェックする鍵

$ openvpn --genkey --secret ta.key

証明書をおいていく

$ mkdir /etc/openvpn/server/user/ssl
$ install -d -o root -g root -m 755 /etc/openvpn/server/user/ssl/certs
$ install -d -o root -g root -m 710 /etc/openvpn/server/user/ssl/private

$ install -o root -g root -m 644 pki/issued/nnahito.crt /etc/openvpn/server/user/ssl/certs/
$ install -o root -g root -m 644 pki/ca.crt /etc/openvpn/server/user/ssl/certs/
$ install -o root -g root -m 640 pki/private/nnahito.key /etc/openvpn/server/user/ssl/private/
$ install -o root -g root -m 640 ta.key /etc/openvpn/server/user/ssl/private/
$ install -o root -g root -m 644 pki/crl.pem /etc/openvpn/server/user/ssl/certs/

$ install -d -o root -g root -m 755 ccd

Google authenticator をいれる

sudo yum install -y google-authenticator
cd /etc/pam.d/
vim openvpn-nnahito
install -d -o root -g root -m 755 google-authenticator
cd /etc/openvpn/server/nnahito/google-authenticator/

CCD

cd /etc/openvpn/server/nnahito/ccd
vim nnahito

クライントの設定

[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。