LoginSignup
106
115

More than 5 years have passed since last update.

AWS環境にOpenVPNでVPNを構築

Last updated at Posted at 2014-08-22

AWS環境にOpenVPNをインストールし、ソフトウェアVPN環境を構築するための簡単な構築メモです。
クライアント側に専用クライアントのインストールが必要ですが、ハードウェアVPNを構築するほどのコストを掛けられ無いような規模であれば、役に立つこともあるかと思います。

環境

Ppublicセグメントでは、OpenVPN用サーバのみを公開し、Privateセグメントの各サーバに対しては、クライアントからプライベートアドレスで接続できるようにします。

env.png

AWSの設定

  • OpenVPNをインストールしたサーバにEIPを設定。
  • OpenVPNをインストールしたサーバのみをPublicセグメントのセキュリティグループに所属させる。
  • Privateセグメントのセキュリティグループに、Publicセグメントに設定したセキュリティグループからのアクセスを許可。
  • Publicセグメントのセキュリティグループに以下を設定。
    Custom UDP Rule, UDP, 1194, 0.0.0.0/0
  • Routeテーブルに、VPNのクライアント側のセグメントから、OpenVPNをインストールしたサーバへのルーティングを設定。
  • OpenVPNをインストールしたサーバに対し、Source/dest.checkをdisabled。

OpenVPNのインストール

sudo yum install openvpn

easy-rsaのインストール

Amazon Linuxでは、標準でeasy-rsaに相当するパッケージがインストールされていません。このため、個別にインストールする必要がありますが、yumにepelリポジトリを有効にするオプションの指定が必要です。

sudo yum install easy-rsa --enablerepo=epel

以下にインスト−ルされます。

  • /usr/share/easy-rsa

各種keyの作成

build-ca

cd /usr/share/easy-rsa/2.0
sudo -s
source ./vars
./clean-all
./build-ca

入力例

Country Name (2 letter code) [US]:JP
State or Province Name (full name) [CA]:Tokyo
Locality Name (eg, city) [SanFrancisco]:Hoge-shi
Organization Name (eg, company) [Fort-Funston]:Fuga Company
Organizational Unit Name (eg, section) [MyOrganizationalUnit]:Hoge Dept.
Common Name (eg, your name or your server's hostname) [Fort-Funston CA]:openvpn-ca
Name [EasyRSA]:
Email Address [me@myhost.mydomain]:ec2-user@example.com

build-key-server

./build-key-server server

入力例

Country Name (2 letter code) [US]:JP
State or Province Name (full name) [CA]:Tokyo
Locality Name (eg, city) [SanFrancisco]:Hoge-shi
Organization Name (eg, company) [Fort-Funston]:Fuga Company
Organizational Unit Name (eg, section) [MyOrganizationalUnit]:Hoge Dept.
Common Name (eg, your name or your server's hostname) [server]:openvpn-server
Name [EasyRSA]:
Email Address [me@myhost.mydomain]:ec2-user@example.com

build-key

以下はアクセスを許可するアカウント毎に作成します。

./build-key [username]

入力例

countryName           :PRINTABLE:'JP'
stateOrProvinceName   :PRINTABLE:'Tokyo'
localityName          :PRINTABLE:'Hoge-shi'
organizationName      :PRINTABLE:'Fuga Company'
organizationalUnitName:PRINTABLE:'Hoge Dept.'
commonName            :PRINTABLE:'ec2-user'
name                  :PRINTABLE:'EasyRSA'
emailAddress          :IA5STRING:'ec2-user@example.com'

build-dh

./build-dh

リンクの作成

ln -s /usr/share/easy-rsa/2.0/keys/ca.crt .
ln -s /usr/share/easy-rsa/2.0/keys/server.crt .
ln -s /usr/share/easy-rsa/2.0/keys/server.key .
ln -s /usr/share/easy-rsa/2.0/keys/dh2048.pem .

OpenVPNの設定

/etc/openvpn/config.conf

port 1194
proto udp
dev tun

server 172.25.254.0 255.255.255.0
ifconfig-pool-persist ipp.txt

push "route 172.31.0.0 255.255.240.0"

ca ca.crt
cert server.crt
key server.key
dh dh2048.pem

comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key

status /var/log/openvpn-status.log
verb 3

OpenVPNプロセスの再起動

sudo /etc/rc.d/init.d/openvpn restart

OpenVPNの自動起動設定

sudo chkconfig --level 345 openvpn on

IP Forwardingを設定

OpenVPNをインストールした開発環境管理サーバで、IP Forwardingを有効にします。

/etc/sysct.conf

net.ipv4.ip_forward = 1

設定を読み込みます。

sudo sysctl -p

OpenVPN Clinet for Mac

MacであればTunnelblickが良いと思います。以下は設定例です。

Tunnelblick

client
remote [OpenVPN用サーバに設定したEIP]
proto udp
dev tun
port 1194

tls-client

ca ca.crt
cert [username].crt
key [username].key

comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key

OpenVPN Client for Windows

vpnux Clientが非常に使いやすくてお勧めです。

106
115
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
106
115