【VPNサーバ】OpenVPN設定(クライアント用)

  • OpenVPN設定(クライアント側パスワード有)
    iPhone以外でパスワード有りでログインする場合、こっちを選択。

    # クライアント用の証明書作成
    cd /etc/openvpn/easyrsa3/
    ./easyrsa build-client-full クライアント名
    
    下記内容を入力
    Enter PEM pass phrase:クライアント用パスワードを入力
    Verifying - Enter PEM pass phrase:クライアント用パスワードを入力
    Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:CA秘密鍵のパスワードを入力
    
  • OpenVPN設定(クライアント側パスワード無)
    iPhoneやパスワード無しでログインする場合、こっちを選択。

    # クライアント用の証明書作成
    cd /etc/openvpn/easyrsa3/
    ./easyrsa build-client-full クライアント名 nopass
    
    下記内容を入力
    Enter pass phrase for /etc/openvpn/easyrsa3/pki/private/ca.key:CA秘密鍵のパスワードを入力
    
  • iPhone用のOpenVPN設定
    WindowsのOpenVPNクライアントをインストールし、
    インストール後、「インストールディレクトリ/OpenVPN/sample-config/client.ovpn」を編集する。
    iPhone用は設定値のみとし、#のコメントも削除する。

    下記内容を確認/追加/変更
    # TLSクライアントを指定
    tls-client
    
    # VPNインターフェースとしてtunデバイスを指定
    dev tun
    
    # プロトコルとしてudp
    proto udp
    
    # サーバ名とポートを指定
    remote z-area.net 1194
    
    # 名前解決試みのリトライ数(無限)
    resolv-retry infinite
    
    # ローカルポートをバインドしない
    nobind
    
    # 再接続時に鍵読み込み、tunデバイスオープン
    persist-key
    persist-tun
    
    # Man-in-the-Middle攻撃対策
    remote-cert-tls server
    
    # LZO圧縮を利用
    comp-lzo
    
    # OpenVPNのログ設定
    verb 3
    
    # 鍵の設定と思われるがいまいち不明
    # しかしこの記述がないと接続できなかった
    key-direction 1
    
  • iPhone用の秘密鍵の変換
    「X509」というエラーが出いてた場合、
    iPhoneのOpenVPNクライアントアプリのTLS/SSLがPolarSSLを利用している場合があり、
    OpenSSLと秘密鍵のフォーマットが異なり、接続できないことがある。
    そこで以下のコマンドで秘密鍵を変換する。

    openssl rsa -in /etc/openvpn/easyrsa3/pki/private/クライアント名.key -out /etc/openvpn/easyrsa3/pki/private/クライアント名.key.polarssl