2021 May 05.
2021 Apr. 11.
2021 Mar. 28.
2021 Jan. 31.
2020 Nov. 06.
2020 Oct. 02.
2020 Sep. 22.
2020 Mar. 29.
2019 Oct. 21.
2019 Apr. 27.
2018 Oct. 08.
2018 Sep. 02.
参考元 https://qiita.com/noraworld/items/2fe6be489e1d93c748b8
これまでの失敗
- 複数サーバー設置時のサーバー設定ファイルとクライアント設定ファイルでのポート番号間違い。
- 設定ファイル丸写しによる個別ファイル名変更忘れ。
OpenVPNプログラムのインストール
(Ubuntu) $ sudo apt install openvpn git (Manjaro Linux / Arch Linux) openvpn、gitパッケージをインストールする $ mkdir ~/YOUR-WORK-DIR $ 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/
TLS鍵生成
(2021 May 04) $ openvpn --genkey secret ./pki/ta.key (old) ($ openvpn --genkey --secret ./pki/ta.key) $ sudo cp ./pki/ta.key /etc/openvpn/
失効クライアント証明書リスト生成
$ ./easyrsa gen-crl $ sudo cp pki/crl.pem /etc/openvpn/ $ sudo chmod o+r /etc/openvpn/crl.pem
サーバー設定ファイル記述
# touch /etc/openvpn/server.conf
/etc/openvpn/server.confを編集
port 1194 ## LAN内に複数のopenvpnサーバーを置くなら変更する proto udp dev tun cipher AES-256-CBC auth SHA512 ca ca.crt cert server.crt key server.key dh dh.pem crl-verify crl.pem tls-auth ta.key 0 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
IPフォワーディング設定
IPマスカレード有効化
ifconfigでネットワークポート名を確認する( enp0s7 とか)
Logローテーション設定
参照元 https://gtrt7.com/blog/linux/ubuntu-openvpn
OpenVPNログローテーション設定ファイル /etc/logrotate.d/openvpn を作成する。
/var/log/openvpn-status.log { weekly rotate 7 delaycompress compress missingok notifempty } /var/log/openvpn.log { weekly rotate 7 delaycompress compress missingok notifempty sharedscripts postrotate systemctl restart openvpn@server 2>&1 > /dev/null || true endscript }
OpenVPN起動
# systemctl start openvpn@server.service // systemctl start openvpn.service では起動できない
起動確認
$ ps ax -f | grep openvpn | grep -v grep
$ systemctl status openvpn@server.service
Active: active (running) の表示を確認する
OpenVPN自動起動設定
# systemctl disable openvpn # systemctl disable openvpn.service # systemctl enable openvpn@server.service
起動設定確認
$ systemctl is-enabled openvpn openvpn.service openvpn@server.service openvpn@server
sambaへのアクセス許可設定
次の2つのサイトに書かれた設定を行う。
sambaサーバーをルーティング方式openVPNで利用する時のsamba設定 - rokkonet
sambaサーバーをルーティング方式openVPNで利用する時のポート開放 - rokkonet
クライアント用秘密鍵の生成
$ cd ~/YOUR-WORK-DIR/easy-rsa/easyrsa3
次のクライアント秘密鍵生成時のパスワード有無は、パスワード有りにしても、クライアント側ソフトに、一度設定すれば以後は入力不要の機能があるはずなので、どちらでもかまわない。
(接続時パスワード無し)
$ ./easyrsa build-client-full CLIENTHOGE nopass
(接続時パスワード有り)
$ ./easyrsa build-client-full CLIENTHOGE
(CLIENTHOGEは "サーバー名+サーバーOS+クライアント端末名" とした)
次の作業を行う
$ mkdir ~/YOUR-WORK-DIR/CLIENT-FILE-DIR $ sudo cp /etc/openvpn/ca.crt ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/ $ cd ~/YOUR-WORK-DIR/easy-rsa/easyrsa3 $ cp pki/issued/CLIENTHOGE.crt ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/ $ cp pki/private/CLIENTHOGE.key ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/ $ sudo chown USER:USER ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/ca.crt $ chown USER:USER ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/CLIENTHOGE.crt $ chown USER:USER ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/CLIENTHOGE.key
USER: VPNサーバに現在ログインしているユーザのユーザ名
接続するクライアントに鍵ファイルをダウンロード
$ scp ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/ca.crt CLIENT/ $ scp ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/CLIENTHOGE.crt CLIENT/ $ scp ~/YOUR-WORK-DIR/CLIENT-FILE-DIR/CLIENTHOGE.key CLIENT/ $ scp ~/YOUR-WORK-DIR/easy-rsa/easyrsa3/pki/ta.key CLIENT/
VPNCLIENT.ovpn を作る(ファイル名は任意だが、拡張子は .ovpn )
client dev tun proto udp remote YOUR.GLOBAL.ADDRESS.HERE 1194 resolv-retry infinite nobind tls-auth ta.key 1 persist-key persist-tun cipher AES-256-CBC auth SHA512 ca ca.crt cert CLIENTHOGE.crt key CLIENTHOGE.key comp-lzo verb 3
# persist-key, persist-tun, comp-lzo, verb はサーバ側と同じにする。サーバ側に設定してあればこちらにも入力し、設定していない場合は外す。
VPNCLIENT.ovpn をクライアントにコピー
$ scp VPNCLIENT.ovpn CLIENT/
OpenVPNサーバー、LAN内ホスト、 LAN外OpenVPNクライアントのIPアドレス、通信関係
警告・エラーメッセージ対応
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 に指定する。
WARNING: No server certificate verification method has been enabled.
クライアント設定で「TLSサーバー証明書を要求する」をオンにする。
VPN経由でアクセスするLAN内の各種サーバーの設定
http://rokkonet.blogspot.com/2018/05/openvpn.html