【VPNサーバ】OpenVPN導入

RaspberryPiがとうとう壊れしまったので、
NUCにOpenVPNを導入します。
導入はrootユーザで実施します。

  • OpenVPN導入

    cd /usr/local/src
    # OpenVPNインストールに必要なパッケージをインストール
    yum -y install openssl-devel lzo-devel pam-devel
    # 最新の OpenVPN をダウンロードしてビルド
    # 最新版は公式サイトで確認
    wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.10.tar.gz
    rpmbuild -tb --clean openvpn-2.3.10.tar.gz
    yum -y localinstall ~/rpmbuild/RPMS/x86_64/openvpn-2.3.10-1.x86_64.rpm
    rm -f ~/rpmbuild/RPMS/x86_64/openvpn-*
    rm -f openvpn-2.3.10.tar.gz
    
    # easyrsa をダウンロードして解凍
    # OpenVPNをインストールするとOpenSSLを簡単に利用できるツール「easy-rsa」が
    # 「/usr/share/doc/openvpn/examples/easy-rsa/2.0」にインストールされるが、
    # 最新版の3.0をダウンロードします。
    wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
    unzip master.zip
    cp -r easy-rsa-master/easyrsa3/ /etc/openvpn/
    rm -rf easy-rsa-master/
    rm -f master.zip
    
  • 証明書初期化(OpenVPN導入後の1回のみ)

    cd /etc/openvpn/easyrsa3/
    ./easyrsa init-pki
    
  • CA証明書と秘密鍵作成

    ./easyrsa build-ca
    
    下記内容を入力
    Enter PEM pass phrase:任意のパスワードを入力
    Verifying - Enter PEM pass phrase:任意のパスワードを再入力
    Common Name (eg: your user, host, or server name) [Easy-RSA CA]:z-area.net
    
    # CA証明書をOpenVPN設定ファイル格納ディレクトリへコピー
    cp pki/ca.crt /etc/openvpn/
    # CA秘密鍵は以降のサーバ証明書・秘密鍵作成時、クライアント証明書・秘密鍵作成時のみ使用するため、コピー不要
    
  • サーバ証明書と秘密鍵作成

    ./easyrsa build-server-full server nopass
    
    下記内容を入力
    Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:CA秘密鍵のパスワードを入力
    
    # サーバ証明書をOpenVPN設定ファイル格納ディレクトリへコピー
    cp pki/issued/server.crt /etc/openvpn/
    # サーバ秘密鍵をOpenVPN設定ファイル格納ディレクトリへコピー
    cp pki/private/server.key /etc/openvpn/
    
  • DH(Diffie Hellman)パラメータ作成

    # DHパラメータ作成
    ./easyrsa gen-dh
    # DHパラメータをOpenVPN設定ファイル格納ディレクトリへコピー
    cp pki/dh.pem /etc/openvpn/
    
  • 証明書廃止リスト作成
    証明書廃止リストは、実際にクライアント証明書を
    作成してから廃止を行わないと作成できないので、
    ダミーのクライアント証明書を一旦、作成と廃止することにより、
    証明書廃止リストを作成する

    # ダミーのクライアント証明書作成
    ./easyrsa build-client-full dmy nopass
    
    下記内容を入力
    Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:CA秘密鍵のパスワードを入力
    
    # ダミーのクライアント証明書廃止
    ./easyrsa revoke dmy
    
    下記内容を入力
    Continue with revocation:yes
    Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:CA秘密鍵のパスワードを入力
    
    # 証明書廃止リストを作成
    ./easyrsa gen-crl
    
    下記内容を入力
    Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:CA秘密鍵のパスワードを入力
    
    # 証明書廃止リストをOpenVPN設定ファイル格納ディレクトリへコピー
    cp pki/crl.pem /etc/openvpn/
    # 証明書廃止リストへ参照権限付加
    chmod o+r /etc/openvpn/crl.pem
    
  • TLS認証鍵作成

    # TLS認証鍵作成
    openvpn --genkey --secret /etc/openvpn/ta.key