Oracle Rac On Amazon EC2 その1 OpenVPN編

まずは、OpenVPN&iSCSI用のインスタンスを作成

AMIは@suz_labさんのami-809f3581を選択。

Instance-typeは最初はmicroで
あとでVolumeを追加するので、Availability Zoneをあらかじめ決めておく。


セキュリティグループの作成
OpenVPN(1194/1195) iSCSI(3260) VNC(5901)のポートは予めあけておきます。



openvpnのインストール

#yum -y install openvpn
@dynakou さんのページを参考にopenvpnのキーを作成
http://blog.livedoor.jp/dynakou/archives/2009-05.html


#cp -rp /usr/share/doc/openvpn-2.1.4/easy-rsa /etc/openvpn
#chmod 755 /etc/openvpn/easy-rsa/2.0/*


#vi /etc/openvpn/easy-rsa/2.0/vars

export KEY_COUNTRY="JA"
export KEY_PROVINCE="CA"
export KEY_CITY="Tokyo"
export KEY_ORG="xxxxx.xxx"
export KEY_EMAIL="xxx.@xxx.xxx"


openvpnの鍵&証明書作成の事前作業(環境変数
#cd /etc/openvpn/easy-rsa/2.0
#source /etc/openvpn/easy-rsa/2.0/vars
#/etc/openvpn/easy-rsa/2.0/clean-all


認証局の証明書&鍵作成
#/etc/openvpn/easy-rsa/2.0/build-ca
エンターキーを連打


サーバ証明書
#/etc/openvpn/easy-rsa/2.0/build-key-server server
基本はエンターキー連打
最後の以下だけyを押す

Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y


Diffie-Hellman keyの作成
#/etc/openvpn/easy-rsa/2.0/build-dh


クライアントキーの作成
#/etc/openvpn/easy-rsa/2.0/build-key public1
#/etc/openvpn/easy-rsa/2.0/build-key public2
#/etc/openvpn/easy-rsa/2.0/build-key private1
#/etc/openvpn/easy-rsa/2.0/build-key private2


基本はエンターキー連打
最後の以下だけyを押す

Certificate is to be certified until May 12 20:57:09 2021 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated


設定ファイル(public)
#cp -p /usr/share/doc/openvpn-2.1.4/sample-config-files/server.conf /etc/openvpn/public.conf

#vi /etc/openvpn/public.conf

dev tap0
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key # This file should be kept secret

dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem

server 192.168.0.0 255.255.255.0
client-to-client


設定ファイル(private)
#cp /etc/openvpn/public.conf /etc/openvpn/private.conf
#vi /etc/openvpn/private.conf

port 1195
dev tap1
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key # This file should be kept secret

dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem

server 192.168.100.0 255.255.255.0
ifconfig-pool-persist ipp_private.txt
client-to-client
status private_openvpn-status.log


クライアントIPを固定する
#vi /etc/openvpn/ipp.txt

public1,192.168.0.11
public2,192.168.0.12

#vi /etc/openvpn/ipp_private.txt

private1,192.168.100.11
private2,192.168.100.12


openvpnを起動してみる
/etc/init.d/openvpn start


tapインターフェイスが出来ているか確認
ifconfig -a

tap0 Link encap:Ethernet HWaddr FA:C8:73:B3:43:8C
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::f8c8:73ff:feb3:438c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:238 (238.0 b)

tap1 Link encap:Ethernet HWaddr 92:8D:76:E2:52:C2
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::908d:76ff:fee2:52c2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:308 (308.0 b)


openvpn自動起動
#chkconfig openvpn on

Dynamic DNS設定
クライアントから名前解決させるためにDynamic DNSの設定
http://www.dyndns.com/


設定方法は、ここらへんを参考に。
http://y-kit.jp/saba/xp/dyndns.htm


DNSの更新はddclientを使う
yum -y install
vi /etc/ddclient.conf

末尾に以下を追加(mydomain.dyndns.infoは使いたいホスト名)

use=if, if=eth0 # via interfaces
protocol=dyndns2
server=members.dyndns.org
login=ログインID
password=パスワード
mydomain.dyndns.info

ddclient -daemon=0 -verbose で動作確認

ホストが起動されるたびに ddclientが実行されるように。
vi /etc/rc.local

ddclient -daemon=0


Openvpnクライアント側(RACノード側)

AMIはami-24de7425を選択


openvpnは標準パッケージに含まれていないのでepelレポジストリを追加
#rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
#yum -y install openvpn

#mkdir -p /etc/openvpn/easy-rsa/2.0/keys


rootのパスワード設定(SCPで必要)
#passwd

#vi /etc/ssh/sshd_config

PasswordAuthentication yes
PermitRootLogin yes

設定ファイル編集(public側)
#cp /usr/share/doc/openvpn-2.1.4/sample-config-files/client.conf /etc/openvpn/public.conf
#vi /etc/openvpn/public.conf

dev tap0
remote mydomain.dyndns.info 1194
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/public1.crt
key /etc/openvpn/easy-rsa/2.0/keys/public1.key

設定ファイル編集(private側)
vi /etc/openvpn/private.conf

dev tap1
remote mydomain.dyndns.info 1195
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/privare1.crt
key /etc/openvpn/easy-rsa/2.0/keys/private1.key


Openvpnサーバ側からOpenvpnクライアント側(RACノード側)へファイルをコピー

scp /etc/openvpn/easy-rsa/2.0/keys/ca.crt root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/public1.crt root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/public1.key root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/private1.crt root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/private1.key root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/public2.crt root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/public2.key root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/private2.crt root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/
scp /etc/openvpn/easy-rsa/2.0/keys/private2.key root@<クライアント1のip>:/etc/openvpn/easy-rsa/2.0/keys/