====== 60 CentOS OpenVPN ======
===== ①OpenVPNインストール =====
==== 1.yumでインストール ====
[[01_linux:01_net:11_yum_rpmforgeレポジトリ追加|]]を行ってから
# yum install --enablerepo=rpmforge openvpn
# rpm -qa | grep openvpn
openvpn-2.2.2-1.el5.rf
==== 2.OpenVPNの設定ファイルをコピーしておく ====
# cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn/
==== 3.ログローテーション設定 ====
# vi /etc/logrotate.d/openvpn
/var/log/openvpn.log {
missingok
notifempty
sharedscripts
postrotate
/etc/rc.d/init.d/openvpn restart 2>&1 > /dev/null || true
endscript
}
==== 4.起動スクリプト修正 ====
FORWARD設定行のコメントアウトを外してforward許可しておく
# vi /etc/rc.d/init.d/openvpn
echo 1 > /proc/sys/net/ipv4/ip_forward
==== 5.自動起動ON ====
# chkconfig openvpn on
===== ②証明書、鍵の作成 =====
==== 1.CA証明書、秘密鍵作成 ====
# cd /etc/openvpn/
# cp -r /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/ easy-rsa
# cd easy-rsa
# vi vars
export KEY_COUNTRY="JP"
export KEY_PROVINCE="ToKyo"
export KEY_CITY="Shibuya-ku"
export KEY_ORG="hoge"
export KEY_EMAIL="admin@hoge.hoge"
#export KEY_EMAIL=mail@host.domain ← 行頭に#を追加してコメントアウト
#export KEY_CN=changeme ← 行頭に#を追加してコメントアウト
#export KEY_NAME=changeme ← 行頭に#を追加してコメントアウト
#export KEY_OU=changeme ← 行頭に#を追加してコメントアウト
#export PKCS11_MODULE_PATH=changeme ← 行頭に#を追加してコメントアウト
#export PKCS11_PIN=1234 ← 行頭に#を追加してコメントアウト
証明書/鍵作成用環境変数設定ファイル内容をシステムに反映
# source vars
証明書/鍵作成先ディレクトリ初期化※OpenVPNインストール後最初の1回のみ
# ./clean-all
# sh build-ca ← CA証明書・秘密鍵作成
CA証明書コピー
# cp keys/ca.crt /etc/openvpn/
==== 2.サーバ証明書・秘密鍵作成 ====
# sh build-key-server server
# cp keys/server.crt /etc/openvpn/
# cp keys/server.key /etc/openvpn/
==== 3.DH(Diffie Hellman)パラメータ作成 ====
# sh build-dh
==== 4.TLS認証鍵用意 ====
# openvpn --genkey --secret /etc/openvpn/ta.key
==== 5.クライアント証明書・秘密鍵作成 ====
※クライアント名は一意であること=既に作成済のクライアント名と重複しないこと
# cd /etc/openvpn/easy-rsa/
# source vars
=== パスフレーズ認証あり証明書 ===
# sh build-key-pass client1
=== パスフレーズ認証なし証明書 ===
# sh build-key client1
=== 作成された証明書、鍵の場所 ===
* クライアント証明書(/etc/openvpn/easy-rsa/keys/client1.crt)
* クライアント秘密鍵(/etc/openvpn/easy-rsa/keys/client1.key)
==== 6.証明書廃止リスト作成 ====
# sh build-key dmy
# sh revoke-full dmy
# cp keys/crl.pem /etc/openvpn/
# chown openvpn:openvpn /etc/openvpn/crl.pem
※最後のchownをしておかないと、下記のエラーになる
CRL: cannot read: crl.pen: No such file or directory (errno=2)
===== VPNクライアントの削除 =====
=== 1.クライアント証明書廃止 ====
client1のクライアント証明書廃止
# cd /etc/openvpn/easy-rsa/
# source vars
# sh revoke-full client1
# /bin/cp keys/crl.pem /etc/openvpn/ ← 証明書廃止リストを所定のディレクトリへ上書きコピー
=== 2.接続中クライアントの強制切断 ===
# telnet localhost 7505 ← OpenVPN管理インタフェース起動
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info
status ← VPN接続状況確認
OpenVPN CLIENT LIST
Updated,Mon Mar 10 16:16:53 2014
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client1,210.172.143.2:62974,888323,892928,Sun Mar 9 04:03:54 2014
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.6,client1,210.172.143.2:62974,Mon Mar 10 15:53:00 2014
GLOBAL STATS
Max bcast/mcast queue length,0
END
kill client1 ← client1強制切断
SUCCESS: common name 'client1' found, 1 client(s) killed
status ← VPN接続状況確認
OpenVPN CLIENT LIST
Updated,Tue Nov 28 19:29:05 2006
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
GLOBAL STATS
Max bcast/mcast queue length,0
END
exit ← OpenVPN管理インタフェース終了
Connection closed by foreign host.
== 執行した証明書の復旧 ==
[[http://server-setting.info/centos/openvpn-revoke-client.html#openvpn_4]]