1. インストール
以下、全部管理者権限で。標準ではパッケージが用意されていないが、ソースから作るのも(アップデートとかを考えた際に)めんどいのでEPELを追加する。
# yum install epel-release続いてopenvpnと、お手軽な証明書生成スクリプトのeasyrsaをインストールする
# yum install openvpn easy-rsa
2. 証明書と鍵の生成
この辺のページやこの辺のページを参考にしつつ作業。要するにまず認証局(CA)を作り、それをベースにサーバ側の証明書と秘密鍵の生成、という順序でやる。EPELパッケージでのeasyrsaスクリプトは/usr/share/easy-rsa/まず初期化。
# /usr/share/easy-rsa/3/easyrsa init-pki続いてCAの作成。
# /usr/share/easy-rsa/3/easyrsa build-ca鍵を利用するためのパスフレーズを2回入力し、Common Name(適当な名前)を入力する。このとき、カレントディレクトリにpkiというディレクトリが作成され、pki/ca.crt(証明書)とpki/private/ca.key(秘密鍵)が出来る。
次にサーバ証明書と鍵のペアを生成。
# /usr/share/easy-rsa/3/easyrsa build-server-full server nopasspki/issued/server.crt(証明書)とpki/private/server.key(鍵)が生成される。
(これは順不同)DHパラメータの生成。ちょっと時間がかかる。
# /usr/share/easy-rsa/3/easyrsa gen-dhpki/dh.pemが生成される。まとめると、以下のファイルがカレントディレクトリ下に出来たことになるので、これらをまとめて/etc/openvpn/にコピる(設定ファイルで絶対パスを指定できるので、適当なディレクトリに置いても構わない)。
pki/ca.crt
pki/private/ca.key
pki/issued/server.crt
pki/private/server.key
pki/dh.pem
3. OpenVPNサーバの設定
設定ファイルは標準で/etc/openvpn/server.confだが、とりあえずサンプルをコピって修正してもよい。# cp /usr/share/doc/openvpn-以下の設定が有効になっていることを確認する。(行頭にシャープまたはセミコロンがあるとコメントアウトされた状態なので、有効にしたい場合は外す)/sample/sample-config-files/server.conf /etc/openvpn/
proto udp #tcpだと遅くなるで、tls-authで用いるta.keyを生成する。
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
topology subnet
push "route 192.168.0.0 255.255.255.0" #VPN経由でアクセスしたいサブネット
tls-auth /etc/openvpn/ta.key 0
user nobody
group nobody
# openvpn --genkey --secret /etc/openvpn/ta.key標準ではポート1194を使うので、開けておく。
# firewall-cmd --add-service=openvpn --zone=public --permanent