🐡

Openvpn クライアントユーザ追加手順メモ

2022/06/21に公開


現在参画しているプロジェクトの引き継ぎにOpenVPN(EasyRSA)の運用手順書作成を作成。
過去含め今回3回目の作成。いい加減使いまわしできるように纏めました。
Openvpn&EasyRASでのVPNサーバは構築後のクライアントユーザ追加手順を纏めてみました。

EasyRSA client秘密鍵発行手順

  1. OpenVPNサーバへSSHでログインした後、EasyRSAをインストールしたディレクトリへ移動。easyrasコマンドを使い認証系ファイル一式の生成を行う。
  • 今回は、パスワード設定無し。※設定したい場合は下記コマンドの"nopass"を取る。

  • EasyRsaをインストール場所は。/user/shear/easy-rsa/3として記載。

  • biud-clientコマンド実行後、Enter pass phrase for /usr/share/easy-rsa/3.0.8/pki/private/ca.key:を聞かれたら、ca作成した際のパスワードを入力する。

    $ cd /xxx/xxxx/easyrsa
    $ sudo ./easyrsa build-client-full user名 nopass
      Using SSL: openssl OpenSSL 1.0.2k-fips  26 Jan 2017
      Generating a 2048 bit RSA private key
      ..................+++
      ..........+++
      -----
      Enter pass phrase for /usr/share/easy-rsa/3.0.8/pki/private/ca.key:  ← CA認証パスワードを入力(CA初期作成時に設定したもの)
      Check that the request matches the signature
      Signature ok
      The Subject\'s Distinguished Name is as follows
      commonName            :ASN.1 12:'user名'
      Certificate is to be certified until Sep 17 17:21:05 2024 GMT (825 days)
      Write out database with 1 new entries
      Data Base Updated
    
  1. 上記のDataBaseUpdatedが表示されると3つのファイルが作成される。クライアントへDownload。
    ※注意 今回、ta.keyの利用は無しとしている。理由としては、プロジェクト参画者のほとんどが過去利用しているVpnuxバージョンが古く、そのまま利用したいというニーズがあった為)

2-1. ファイル生成される場所

格納場所 File
/pki ca.crt
/pki/private user名.key
/pki/issued user名.crt

2-2. 生成された認証key/秘密鍵は、scp等でクライアントへコピー

  • 下記Linuxでのコピー例 hogehogeユーザとして作成した例
#Openvpnサーバ上での作業
$ cd
$ mkdir hogehoge 
$ sudo cp /usr/share/easy-rsa/3/pki/ca.crt ./hogehoge/.
$ sudo cp /usr/share/easy-rsa/3/pki/private/hogehoge.key ./hogehoge/.
$ sudo cp /usr/share/easy-rsa/3/pki/issued/hogehoge.crt ./hogehoge/.
$ ls -al hogehoge
  合計 20
  drwxrwxr-x  2 hogehoge hogehoge   52  616 03:07 .
  drwx------ 10 hogehoge hogehoge 4096  616 03:05 ..
  -rw-------  1 root     root     4430  616 03:07 ca.crt
  -rw-------  1 root     root     1704  616 03:07 hogehoge.key
  -rw-------  1 root     root     1172  616 03:06 hogehoge.crt

#権限も変えておく
$ sudo chown -R  ec2-user hogehoge
$ sudo chgrp -R  ec2-user hogehoge
#tarで固めておく
$ tar cfvz hogehoge.tar.gz hogehoge
#ログオフしローカル環境へ戻る
$exit

```SHELL
#クライアント端末からの操作
$ cat ./ssh/config
  Host hoge
  HostName xx.xx.xx.xx
  User hogehoge
  IdentityFile ~/.ssh/xxxxxxx
  IdentitiesOnly yes
 #serverよりGET
 scp hoge:/home/hogehoge/hogehoge.tar.gz ./
  1. おまけ(archlinuxでのクライアント設定 )
  • メモ windowsでのOpenvpnクライアントはいろいろとあるが、フリーでは、openvpn-clientかvpnuxがよいとの事。
    しかし、複数のVPN接続をする場合はopenvpn-clientがよい。Vpnuxはconfファイルを作成せず、GUIから設定できるが同時複数のVPN環境へ接続はできない。

  • ※Windows環境での上記2つのクライアントソフトののダウンロードと設定手順は以下公式にて

  • 下記はarchlinuxでのCLIによるopenvpn設定内容。
    1. sudo pacman -S networkmanager-openvpn
    2. インストール後 '/etc/openvpn/client/ 配下に秘密鍵や認証keyを保存し.confファイルを作成。
    3. systemdで自動起動させたい場合は、/lib/systemd/system/openvpn-client@.serviceを利用。
    4. /etc/openvpn/client配下にサービス名.confとしてクライアント設定用の.opvnファイルを作成(拡張子は.confに変更)
    5. systemctl start openvpn-client@サービス名 でstart。
    6. 起動時に接続する場合は systemctl enable openvpn-client@サービス名。 status でLoad: 〜 enabled: 確認。
sudo systemctl status openvpn-client@hoge
● openvpn-client@hogehoge.service - OpenVPN tunnel for hoge
     Loaded: loaded (/usr/lib/systemd/system/openvpn-client@.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2022-06-21 06:36:19 JST; 10h ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 1331 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 57462)
     Memory: 4.9M
        CPU: 1.312s
     CGroup: /system.slice/system-openvpn\x2dclient.slice/openvpn-client@hogehoge.service
             └─1331 /usr/bin/openvpn --suppress-timestamps --nobind --config hoge.conf

Jun 21 15:36:18 r134 openvpn[1331]: VERIFY OK: depth=1, CN=Easy-RSA CA
Jun 21 15:36:18 r134 openvpn[1331]: VERIFY OK: depth=0, CN=server
Jun 21 15:36:18 r134 openvpn[1331]: Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Jun 21 15:36:18 r134 openvpn[1331]: Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Jun 21 15:36:18 r134 openvpn[1331]: Control Channel: TLSv1.2, cipher TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, peer cert>
Jun 21 16:36:18 r134 openvpn[1331]: VERIFY OK: depth=1, CN=Easy-RSA CA
Jun 21 16:36:18 r134 openvpn[1331]: VERIFY OK: depth=0, CN=server
Jun 21 16:36:18 r134 openvpn[1331]: Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key

  • 以下.confファイル設定例(server.confに合わせて作成)
client
dev tun
proto udp
remote xx.xx.xx.xx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca  xxxxxx/ca.crt
cert xxxxxx/hogehoge.crt
key xxxxxx/hogehoge.key
keepalive 10 60
verb 3
mssfix 1280
comp-lzo

以上。次は EC2を利用したOpenvpnサーバ構築手順書を纏めたいと思います。。。

Discussion