AWS LightsailでOpenVPNサーバ構築

概要

  • AWS LightsailのLinuxインスタンスにOpenVPNサーバをインストールする
  • WindowsにOpenVPNクライアントをインストールして、OpenVPNサーバへの接続をする

AWS インスタンス作成

作成するインスタンスの構成

  • 構成: Linux OSのみ Amazon Linux

ネットワーキング設定

  • 静的IPの作成、インスタンスにアタッチ
  • ファイヤウォール: "Custom" "TCP" "1194"を追加

OSセットアップ

インスタンスにログイン

  • ec2-userでSSHでログイン

アップデート

sudo yum update

タイムゾーンの設定

cd /etc
sudo cp localtime localtime.$(date +%Y%m%d)
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo localtime
cd sysconfig/
sudo cp clock clock.$(date +%Y%m%d)
sudo vi clock
------------
ZONE="Asia/Tokyo"
UTC=false
------------

sudo service rsyslog restart
sudo service crond restart

# 確認
date

SSHの設定(必要であれば)

cd /etc/ssh
sudo cp sshd_config sshd_config.$(date +%Y%m%d)
sudo vi sshd_config
------------
PermitRootLogin forced-commands-only
PasswordAuthentication no
------------

再起動

sudo shutdown -r now

OpenVPNとeasy-rsaのインストール

OpenVPN

sudo yum install openvpn

easy-rsa

sudo yum install epel-release
sudo yum install easy-rsa --enablerepo=epel

各種Keyファイルの作成

認証局の作成

cd /usr/share/easy-rsa/3
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca

DHパラメータの生成

sudo ./easyrsa gen-dh

サーバー用の証明書と秘密鍵の生成

sudo ./easyrsa build-server-full server nopass

クライアント用の証明書と秘密鍵の生成

sudo ./easyrsa build-client-full test-client nopass
  • 作成されるファイル:
  • /usr/share/easy-rsa/3/pki/ca.crt
  • /usr/share/easy-rsa/3/pki/issued/test-client.crt
  • /usr/share/easy-rsa/3/pki/private/test-client.key

OpenVPNのセットアップ

IPアドレスの確認

ip a
--------------------
eth0:
...
inet 10.0.0.20/20 ... 
--------------------

Keyファイル設置

cd /usr/share/easy-rsa/3
ls /etc/openvpn/
sudo cp pki/ca.crt /etc/openvpn/
sudo cp pki/issued/server.crt /etc/openvpn/
sudo cp pki/private/server.key /etc/openvpn/
sudo cp pki/dh.pem /etc/openvpn/dh2048.pem

server.confセットアップ

ls /usr/share/doc/openvpn-2.4.4/sample/sample-config-files
sudo cp /usr/share/doc/openvpn-2.4.4/sample/sample-config-files/server.conf /etc/openvpn/server.conf
sudo vim /etc/openvpn/server.conf
----------------
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "route xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 0
----------------
diff /usr/share/doc/openvpn-2.4.4/sample/sample-config-files/server.conf /etc/openvpn/server.conf
sudo mkdir /var/log/openvpn
sudo chmod 0600 /var/log/openvpn
  • TCPで接続する場合はexplicit-exit-notify 0にする

TLS認証キーの作成

sudo openvpn --genkey --secret /etc/openvpn/ta.key

IP Forwadingの有効化

cd /etc
sudo cp sysctl.conf sysctl.conf.$(date +%Y%m%d)
sudo vim sysctl.conf
-----------------------
net.ipv4.ip_forward = 1
-----------------------
sudo sysctl -p # 有効化の反映

ルーティングを変更

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo service iptables save

OpenVPNの起動

sudo chkconfig openvpn on
sudo service openvpn start

Windows向けOpenVPNクライアントのセットアップ

クライアント用Keyファイルのダウンロード

(サーバ上で)
cd ~
mkdir ./tmp
sudo cp /usr/share/easy-rsa/3/pki/ca.crt ./tmp
sudo cp /usr/share/easy-rsa/3/pki/issued/test-client.crt ./tmp
sudo cp /usr/share/easy-rsa/3/pki/private/test-client.key ./tmp
sudo cp /etc/openvpn/ta.key ./tmp
sudo chown -R ec2-user ./tmp
(Windows上で)
scp -i ./LightsailDefaultKey-ap-northeast-1.pem ec2-user@52.199.55.61:tmp .
  • Windows上でKeyファイル群は一か所にまとめておく

OVPNファイルの作成

client
dev             tun
proto           tcp
remote          123.123.123.1 1194
ca              ca.crt
cert            test-client.crt
key             test-client.key
tls-auth        ta.key 1
verb            3
tun-mtu         1500
cipher          AES-256-GCM
remote-cert-tls server
compress        lz4-v2
auth-nocache
nobind
  • OVPNファイルは自分で作成する必要がある
  • 上の内容でKeyファイル群と同じ場所にtest-client.ovpnファイルをテキストエディタで作成する
  • 123.123.123.1はOpenVPNサーバのグローバルIPアドレス

OpenVPN Client for Windowsのインストール

OpenVPN Client for Windowsの起動と動作確認

  • OpenVPN GUIを起動すると設定ファイルが見つからないというエラーになる
  • タスクトレイのアイコンを右クリックして、「Import file...」を選び、上で作ったOVPNファイルを指定する
  • インポートが終了したら、再度アイコンを右クリックして、「接続」を選ぶ
  • ブラウザを起動して、http://ugtop.com/などにアクセスして、IPアドレスが123.123.123.1であることを確認する

参考

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2019-12-25 (水) 06:20:13 (28d)