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のインストール

EPELの確認と有効化

 yum repolist | grep -i epel
 sudo amazon-linux-extras install -y epel

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      (1)
 sudo ./easyrsa build-ca      (2)
  • (1) カレントディレクトリにpkiディレクトリができる
    • /usr/share/easy-rsa/3.0.8/pki の中に以下で作るファイルが設置される
  • (2) CA証明書を作る。コモンネームはホスト名やIPアドレスなど任意だが、デフォルトはEasy-RSA CA。
    • CA証明書 /usr/share/easy-rsa/3/pki/ca.crt
    • CA秘密鍵 /usr/share/easy-rsa/3/pki/private/ca.key

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: 2020-11-29 (日) 14:31:01