rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

OpenVPNインストール ルーティング方式 Easy-RSA3利用、TLS認証無し版

2020 Nov. 06.
2020 Jun. 07.
2019 Apr. 27.
2018 Oct. 07.
2018 Sep. 30.
2018 Sep. 27.
2018 Sep. 02.

インストール

こちら(https://qiita.com/noraworld/items/2fe6be489e1d93c748b8) を参照

プログラムインストール

# apt install openvpn
$ cd ~/YOUR-WORK-DIR
  CA証明書(認証局証明書)の再作成に備え、~/YOUR-WORK-DIRは恒久的なディレクトリとする。

$ git clone https://github.com/OpenVPN/easy-rsa.git
初期設定
$ cd ~/YOUR-WORK-DIR/easy-rsa/easyrsa3
$ ./easyrsa init-pki

CA証明書生成

 以後入力するパスフレーズはすべて同じにしておいた方が楽。

 CA名称は "ホスト名+OS名" にした。

$ ./easyrsa build-ca
$ sudo cp pki/ca.crt /etc/openvpn/

サーバ証明書生成
$ ./easyrsa build-server-full server nopass
$ sudo cp pki/issued/server.crt /etc/openvpn/
$ sudo cp pki/private/server.key /etc/openvpn/

DH鍵生成
$ ./easyrsa gen-dh
$ sudo cp pki/dh.pem /etc/openvpn/
クライアント証明書生成
$ ./easyrsa gen-crl
$ sudo cp pki/crl.pem /etc/openvpn/
$ sudo chmod o+r /etc/openvpn/crl.pem
サーバー設定ファイル記述

/etc/openvpn/server.confを作成

###########

port   1194
proto  udp
dev    tun


cipher AES-256-CBC 

ca          ca.crt
cert        server.crt
key         server.key
dh          dh.pem
crl-verify  crl.pem

ifconfig-pool-persist ipp.txt

server 10.8.0.0 255.255.255.0

push "redirect-gateway def1 bypass-dhcp"
push "route 10.8.0.0 255.255.255.0"
push "dhcp-option DNS 8.8.8.8"

client-to-client
keepalive 10 120
comp-lzo

user  nobody
group nogroup

persist-key
persist-tun

status      /var/log/openvpn-status.log
log         /var/log/openvpn.log
log-append  /var/log/openvpn.log

verb 3 

###########
ファイアウォール設定
# ufw allow 1194/udp
# ufw reload

IPフォワーディング設定

 /etc/default/ufw を編集する

  DEFAULT_FORWARD_POLICYをDROPからACCEPTに変更する

    - DEFAULT_FORWARD_POLICY="DROP"
    + DEFAULT_FORWARD_POLICY="ACCEPT"


 IPフォワーディングを有効化

  /etc/ufw/sysctl.confを編集する

   net.ipv4.ip_forward=1の一行をアンコメントする

    - # net.ipv4.ip_forward=1
    + net.ipv4.ip_forward=1

IPマスカレード有効化

 ifconfigでネットワークポート名を確認する( enp0s7 とか)


 /etc/ufw/before.rulesを編集する
  一番下の行にCOMMITと書かれているはずなので、この下に以下を追加する

  COMMIT
  +
  + *nat
  + :POSTROUTING ACCEPT [0:0]
  + -A POSTROUTING -s 10.8.0.0/24 -o enp0s7 -j MASQUERADE
  + COMMIT


 UFWの設定読み込み
 # ufw reload

Logローテーション設定

こちら (リンク先消失)

OpenVPN起動

# systemctl start openvpn@server
もしくは
# systemctl start openvpn


 起動確認
  $ ps ax -f | grep openvpn | grep -v grep
  $ systemctl status openvpn@server
  もしくは
  $ systemctl status openvpn

  Active: active (running) の表示を確認する

OpenVPN自動起動設定

# systemctl disable openvpn && systemctl enable openvpn@server
もしくは
# systemctl disable openvpn@server && systemctl enable openvpn

  確認
  $ systemctl is-enabled openvpn openvpn@server

クライアント用秘密鍵の生成
$ cd ~/YOUR-WORK-DIR/easy-rsa/easyrsa3 
$ ./easyrsa build-client-full HOGE
  HOGEは "サーバー名+サーバーOS+クライアント端末名" とした。
  「$ ./easyrsa build-client-full HOGE nopass」とすれば接続時パスワード不要。

$ mkdir ~/CLIENT-FILE-DIR
$ sudo cp /etc/openvpn/ca.crt ~/CLIENT-FILE-DIR/
$ cp pki/issued/HOGE.crt ~/CLIENT-FILE-DIR/
$ cp pki/private/HOGE.key ~/CLIENT-FILE-DIR/
$ sudo chown USER:USER ~/CLIENT-FILE-DIR/ca.crt
$ chown USER:USER ~/CLIENT-FILE-DIR/HOGE.crt
$ chown USER:USER ~/CLIENT-FILE-DIR/HOGE.key
  USER: VPNサーバに現在ログインしているユーザのユーザ名 

接続するクライアントに鍵ファイルをダウンロード

$ scp ~/CLIENT-FILE-DIR/ca.crt CLIENT
$ scp ~/CLIENT-FILE-DIR/HOGE.crt CLIENT
$ scp ~/CLIENT-FILE-DIR/HOGE.key CLIENT

設定
WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
This is nothing to worry about.
https://support.hidemyass.com/hc/en-us/articles/202720436-Auth-nocache-Warning-in-OpenVPN-connection-log


WARNING: cipher local='cipher BF-CBC' remote='cipher AES-256-CBC'
クライアントの暗号化方式を AES-256-CBS に指定する。
参考サイト

VPN経由でアクセスするLAN内の各種サーバーの設定
http://rokkonet.blogspot.com/2018/05/openvpn.html