はじめに
今回はEC2を立てるところから、スマホからOpenVPNを使って接続するところまでの解説です。といっても初学者なので、至らぬところがあればご指摘ください。1.EC2を立てる
グローバルIPを固定させる必要がある
VPNをつかってクライアントからアクセスするときに、宛先グローバルアドレスIPアドレスが必要です。この宛先グローバルアドレスがコロコロ変わるとそのたびに設定を書き換えないといけません。それは面倒なので今回はグローバルIPを固定させます。固定IPを契約するか、EC2をつけっぱなしにするとグローバルIPを固定できます。今回は安い個人開発用の安いEC2なので、つけっぱなしにしてIPを固定させます。EC2を立てる
下記記事で進めたらうまくいきました。
2.EC2側の設定。
easyrsaを使ってと証明書の生成。
・easyrsaを使って秘密鍵と証明書の生成。
tlskeyを生成
bash
openvpn --genkey --secret ta.key
server側のconf作成
詳しくは調べてみてください。 以下は例です。基本的にこれで動きます。server.conf
port 1194
proto udp
dev tun
ca /path/to/your/ca.crt
cert /path/to/your/server.crt
key /path/to/your/server.key
dh /path/to/your/dh.pem
server 10.0.31.0 255.255.255.0
keepalive 10 120
cipher AES-256-CBC
auth SHA256
topology subnet
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3
tls-server
tls-auth /path/to/your/ta.key 0
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
odooを起動する
sudo systemctl restart openvpn
3.スマホ側の設定。
設定ファイル作成
.ovpnの拡張子をもつテキストファイルをつくる。 中身は下記参照。細かいvpnの設定は省きます。 気になる人は調べてみてください。
client.ovpn
client
dev tun
proto udp
remote 外部固定IP 1194
resolv-retry infinite
persist-key
persist-tun
remote-cert-tls server
auth SHA256
cipher AES-256-CBC
verb 3
key-direction 1
<ca>
-----BEGIN CERTIFICATE-----
生成されたCA証明書
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
生成されたクライアント証明書
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
生成されたクライアントkey
-----END PRIVATE KEY-----
</key>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
生成されたtls用のkey
-----END OpenVPN Static key V1-----
</tls-auth>
スマホにopenVPNアプリを入れる
Android版
IOS版
スマホ側のVPN設定
下記手順で設定ファイルをインポートする。