Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
114
Help us understand the problem. What is going on with this article?
@hideki

AWS環境にOpenVPNでVPNを構築

More than 5 years have passed since last update.

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が非常に使いやすくてお勧めです。

114
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hideki

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
114
Help us understand the problem. What is going on with this article?