記事一覧

OpenVPN その1

openVPNサーバーを立てます。

施設AのUbuntuに立て、esxi上のvyattaからアクセスさせます。

Ubuntuサーバーでの作業です。
詳細は(面倒くさいので)省きます。
sudo aptitude install openvpn
cp -pr /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
vi vars

一番下の
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
を書き換え。
export KEY_COUNTRY="JP"
export KEY_PROVINCE="Tokyo"
export KEY_CITY="Setagaya"
export KEY_ORG="alleycat.co.jp"
export KEY_EMAIL="aaa@bbb.ccc"

mkdir keys
source ./vars
./clean-all

基本的に全部デフォルトで答えます。
./build-ca

基本的に全部デフォルトで答えます。
./build-key-server server

cp keys/ca.crt ../
cp keys/server.crt ../
cp keys/server.key ../

./build-dh
cp keys/dh1024.pem ../

ダミークライアントキーを作成
./build-key dummy
ダミークライアントキーを使用禁止指定
./revoke-full dummy
ダミークライアントキーの使用禁止情報を適用
cp keys/crl.pem ../

使用するクライアントキーの作成:パスあり
./build-key-pass cirno.alleycat.co.jp
./build-key-pass kanna.alleycat.co.jp

使用するクライアントキーの作成:パスなし
./build-key vyatta.alleycat.co.jp
>パスありにしたいけれどもvyattaでの設定方法が・・・。
>たぶん、openvpn-optionで指定するのだろうけれども。

*cirno 施設AのクライアントWindowsPC
*kanna 施設AのクライアントWindowsPC
*vyatta vyattaルータ

生成されたファイルのうち、
ca.crt
*.key
*.crt
が必要になります。
cd keys
tar czf vyatta.alleycat.co.jp.tar ca.crt vyatta.alleycat.co.jp.key vyatta.alleycat.co.jp.crt
tar czf kanna.alleycat.co.jp.tar ca.crt kanna.alleycat.co.jp.key kanna.alleycat.co.jp.crt
tar czf cirno.alleycat.co.jp.tar ca.crt cirno.alleycat.co.jp.key cirno.alleycat.co.jp.crt

vyatta.alleycat.co.jp.tarを施設Bへ持ち出し、何らかの方法でvyattaアカウントのホームの下に設置します。
kannaとcirnoは施設AのPCへ持ち込みます。

openvpnサーバーの設定ファイルはこんな感じになっています。
cd /etc/openvpn
grep -v -e "^[ \t]*[#;]" -e "^$" server.conf
port 11194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.241.0 255.255.255.0"
client-config-dir ccd
route 192.168.241.0 255.255.255.0
client-to-client
keepalive 10 120
cipher AES-128-CBC # AES
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3
management localhost 7505
crl-verify crl.pem

よくわからない解説:
port:デフォルトポート番号は使用したくないという、なんとなくな考えです。
proto:施設Aのルーター(もしかするとISP)が、なんでかudpを上手く通してくれなかった。
push:「openVPNネットワーク上に、192.168.241.0/24への出口があります」と通知
route:同上
client-to-client:openVPNのクライアント同士は通信できます
management:telnetコマンドで、接続状況を確認できます

あうあうあう

今日は3月40日・・・今日は3月40日・・・

ま、よくある話ですよねー

ネットワーク構成

一日あたり一記事としてるので、未来日記になってまいりました。
(記入日23日)
書き溜めしとかないと、忘れるんで。

先に書いておきます。
注意:
 この構成を真似て何か問題が発生しても、当方は責任は取れません。
 あくまでも思考実験のひとつとして捕らえていただけると幸いです。
 この構成を真似る場合、必ずセキュリティの妥当性などの検証を行ってください。

ネットワーク構成図です。
施設は二つに分かれています。

施設A:
 開発者の居る施設です。
 施設Bの設備をリモートデスクトップで使用します。
 リモートデスクトップを動かすためのクライアントのみあります。

施設B:
 開発設備(仮想環境)のある施設です。
 施設Aのネットワークは見えません。

施設Bから施設Aへのファイル転送などは許可しません。
施設Aから施設Bへのファイル転送などは許可しません。
ファイルはすべて施設Bの開発設備(仮想環境)でリモートデスクトップにより閲覧します。

(施設A)

 --=----=--+--=----=----=--=---
      | ISP(非固定IP)
    +---+----+
    |ルーター|
    +---+----+
      | 192.168.120.x
 ----+--=--+--=--=--+--
   |       |120.108
   |    +--=--+--=---+
   |    |クライアント+--=--OpenVPN--=-->
   |    +--=----=----+
   |120.112
 +---+----+
 |サーバー+<--=--OpenVPN--=--
 +--=--=--+

*:フレッツ光マンションタイプ契約です。
  (配電盤から電話線で各家庭へ、のタイプ)
*:DDNSを使用しています。
*:ルータ設定は変更できます。
*:OpenVPNからはリモートデスクトップのみできます。

(施設B)

 --=----=--+--=----=----=--=---
      | ISP(固定IP)
    +---+----+
    |ルーター|
    +---+----+
      | 192.168.230.99
 --=----=--+--=--=---DMZ
      | 192.168.230.100
    +---+----+
    |ルーター|
    +---+----+
      | 192.168.141.111
 ----+--=--+--=---+--MZ
   |      | 141.147
   |   +--=--+--=---+
   |   |クライアント+--=--PPTP--=-->
   |   +--=----=----+
   | 141.140
   | +--=--=--+
   +--+ESXi|
   | +--=--=--+
 ----+--=---仮想ネットワーク1
   | 141.141(Static)
 +---+--+
 |vyatta+--=--OpenVPN--=-->
 |******+<--=--PPTP--=--
 +---+--+
   | 241.x(DHCP)
 ----+--=----=----+--仮想ネットワーク2
   |      |
 +---+----+ +----+---+
 |開発環境| |開発環境|
 +--=--=--+ +--=--=--+

*:ISPから141セグメントは見えません。
*:230セグメントから141セグメントは見せません。
*:141セグメントから241セグメントは見せません。
*:ルータ設定は変更できません。
*:141セグメントからISPへは、すべてのポートが通ります。

このブログツール、ハイフン5つつなげるとコマンド扱いなのねぇ。
なので、間にイコールが挿入されてます。

vyattaでpptp

このままだと、141セグメントから241セグメントへはアクセスできません。
なので、241セグメントにアクセスしたい141セグメントのPCを、241セグメントに参加させます。

PPTPサーバーを立て、ログインしたPCに241セグメントに参加できるようにします。

set vpn pptp remote-access authentication mode local
set vpn pptp remote-access authentication local-users username alleycat password pwd20100321!
set vpn pptp remote-access client-ip-pool start 192.168.241.50
set vpn pptp remote-access client-ip-pool stop 192.168.241.99
set vpn pptp remote-access dns-servers server-1 192.168.141.1

#これ必要なのかなぁ・・・?
#無くても動くっぽいので、コメント
#set vpn pptp remote-access outside-address 192.168.141.241

ココまでの説明:
authentication mode local : よく分からないや
local-users username alleycat password pwd20100321!
 : VPN接続をする際のユーザアカウントとパスワードです。
client-ip-pool start : VPN接続した際に割り振られるIP開始
client-ip-pool stop : VPN接続した際に割り振られるIP末尾
dns-servers server-1 : DNSサーバ1
outside-address 192.168.141.23 : 接続元?(よく分からない)

参加するWindowsクライアント機に設定をします。
(WindowsXPでの設定)

スタートメニュー
 +設定
  +ネットワーク接続
   +新しい接続ウイザード

・新しい接続ウイザード
次へ
 ・ネットワーク接続の種類
 ・職場のネットワークへ接続する
 次へ
  ・職場でネットワークにどう接続しますか?
  ・仮想プライベートネットワーク接続
  次へ
   ・接続名
   ・『vyatta』
   次へ
    ・パブリックネットワーク
    ・最初の接続にダイヤルしない
    次へ
     ・VPNサーバーの選択
     ・192.168.1.141.241
     次へ
      完了

ファイル 11-1.png

・vyattaへ接続
・ユーザ名『alleycat』
・パスワード『pwd20100321!』

ファイル 11-2.png

接続
 接続中云々

241のセグメントに参加している状態で、作業は行うことになります。
VMware vSphere Clientで開発環境を立ち上げ、リモートデスクトップ接続でマシンを操作します。
ファイルやり取りはファイル共有によります。

自分が手元で操作するクライアント機自体がかなり性能が低くても、
esxiサーバーで動いている開発環境へは殆ど影響がなく、
高い処理スペックを要求する操作もかなりサクサク動かすことが出来ます。

コレも一種のシンクライアント・・なのかな?

リモートからvyatta設定

sshで外部からSSHでログイン出来るように設定します。
人によってはこっちのほうが良いという人も多いと思うので。
sshは要らないという人は以下は入力しなくても良いです。

configure
set service ssh
commit
save
exit

ウェブブラウザで外部から設定を出来るようにします。
ウェブブラウザで設定は要らないという人は以下は入力しなくても良いです。

configure
set service https
commit
save
exit

vyatta その4

起動が完了したので、設定を続けます。
ログインのユーザID/パスは vyatta/vyatta です。

コンソールより、以下を入力します。
注意:長いコマンドでもset が必ず先頭です。

configure
set system host-name vyatta.alleycat.co.jp
set system domain-name alleycat.co.jp
commit

set interfaces ethernet eth0 address 192.168.141.241/24
set system name-server 192.168.141.1
set system gateway-address 192.168.141.1
commit

この設定で、このvyatta機は外が見れるようになります。
IPアドレスは、自分の環境を元にしてください。
ping を打ち込んでみてください。
応答が無かったりする場合、どこか間違えています。

ping google.co.jp

上手く言ったらコレを入力しておきます。
save

ココまでの説明:
configure : 設定の開始
set system host-name : ホスト名設定
set system domain-name : ドメイン設定
(どっかと重複しなければ何でも良いです)
set interfaces ethernet eth0 address
 : IPアドレスとネットマスク
set system name-server : DNSサーバー
set system gateway-address : ゲートウェイサーバー
commit : 設定を適用
save : 設定を保存して、再起動しても設定が失われないように

外部に繋がったら、設定モードを出てパッケージを新しくします。

exit
su -
[パスワード]
aptitude update
aptitude dist-upgrade

再起動したほうが良いかも

reboot

再起動してきたら続き

eth1(閉塞ネットワーク)側を設定します。
configure
set interfaces ethernet eth1 address 192.168.241.1/24
commit

eth1側にDHCPをセットします。
set service dhcp-server shared-network-name ETH1_POOL subnet 192.168.241.0/24 start 192.168.241.100 stop 192.168.241.199
set service dhcp-server shared-network-name ETH1_POOL subnet 192.168.241.0/24 default-router 192.168.241.1
set service dhcp-server shared-network-name ETH1_POOL subnet 192.168.241.0/24 dns-server 192.168.141.1
commit

NATを設定します。
set service nat rule 241 source address 192.168.241.0/24
set service nat rule 241 outbound-interface eth0
set service nat rule 241 type masquerade
commit

eth1側にDHCP接続のマシンを起動してみてください。
DHCP経由でIPアドレスが取得でき、141セグメントやインターネットを見ることが出来れば成功です。

コレを忘れずに!
save

設定が終わったら設定モードを抜けます。
exit

ココまでの説明:
set service dhcp-s・・・start stop : DHCPアドレスで付与するIP群
set service dhcp-s・・・default-router : DHCPClientに知らせるDefaultGateway
set service dhcp-s・・・dns-server : DHCPClientに知らせるDNSサーバー
set service nat rule 241 source address : NAT変換元
set service nat rule 241 outbound-interface eth0 : 変換先
set service nat rule 241 type masquerade : マスカレード設定

コレでVirtualPCやVMWearPlayer見たいなNAT設定環境が整いました。

vyatta その3

vyatta仮想マシンをスタートします。
vyattaRouter を選択
 +『はじめに』タブ
  +基本タスク
   +仮想マシンのパワーオン

といっても、まだ中身空っぽです。

画面上のほうに、CDロムにスパナが合わさったアイコンがあるのでクリックします。

アイコン
 +CD/DVDドライブ1
  +ローカルディスクのISOイメージに接続
   +ファイルを開くダイアログ

予め落としてある
Vyatta Community Edition 5 (VC5) iso
を選択して『開く』

仮想マシンを再起動してCDを読ませます。

イベントリ
 +仮想マシン
  +電源
   +リセット

『コンソール』タブを選択します。
コンソールを操作するために、コンソールの真ん中辺りをクリックします。

注意:フォーカスをコンソールから出したい場合、『Ctrlキー+Altキー』を押します。

vyattaが起動してきます。
『vyatta login:』と出るまで放っておきます。
(5分くらい?)

ユーザID/パスは vyatta/vyatta です。
install-system
とコマンドを打ち、インストーラを立ち上げます。
色々聞かれますが、基本的にDefaultで良いと思います。
メッセージを確認しながら、Enterを押していきます。

This will destroy all data on /dev/sda
Continue? (Yes/No)[No]:
の問い合わせはYesと入力します。
データ全部消して良い?という問い合わせです。

Enter root password:
Retype root password:
には、設定したいパスワードを入れてください。

Done!
vyatta@vyatta:~$
と表示されたら、インストール完了です。

ファイル 8-1.png
ファイル 8-2.png
ファイル 8-3.png
ファイル 8-4.png

CDを取り出します。

画面上のほうに、CDロムにスパナが合わさったアイコンがあるのでクリックします。

アイコン
 +CD/DVDドライブ1
  +vyatta-livecd-vc5.0.2.isoから切断します。

コンソールに再び入り、再起動させます。
Altキー + Ctrlキー + Insertキーを同時に押します。

再移動が始まり、しばらく見ていると
vyatta login:
で止まります。

仮想マシンでの起動が完了しました。
これから設定をしていきます。

vyatta その2

以下にアクセスします。
http://www.vyatta.com/
Downloadを選択します。
Vyatta Community Edition 5 (VC5) iso
を選択し落としてきます。

閉じたネットワークを作ります。
ホーム
 +イベントリ
  +『構成』タブ
   +ネットワーク
    +ネットワークの追加

ファイル 7-1.png
ファイル 7-2.png
ファイル 7-3.png

ネットワーク追加ウイザードが開きます。
・仮想マシン
次へ
 ・仮想スイッチの作成
 次へ
  ・ネットワークラベル『vyattaNetwork』
  次へ
   終了

ファイル 7-4.png

画面のネットワークの表示に仮想スイッチが一つ追加されました。
物理アダプタに繋がっていない、閉じたネットワークです。

ファイル 7-5.png

仮想マシンを作成します。
『ファイル』メニュー
 +新規
  +仮想マシン
仮想マシン作成画面が開きます。

・標準
次へ
 ・名前:vyattaRouter
 次へ
  ・設置するストレージ選択
  次へ
   ・ゲストOS選択Linuxとその他2.6x(32bit)
   (後から変更できる)
   次へ
    ・容量設定
    ・2G
    ・シンプロビジョニング
    次へ
     ・仮想マシン設定を編集
     続行

仮想マシンのプロパティ
・メモリ 256M
・CPU 1~2
・新規NIC ネットワークラベルがVM Networkになってるのを確認します。
 (一つは物理アダプタ側に繋がってる必要があります)

この仮想マシンにNICをもう一枚追加します。
プロパティ画面の上の方の『追加』ボタン
 ・イーサネットアダプタ
 次へ
  ・ネットワークラベルを『vyattaNetwork』にする
  次へ
   終了

二つ目のNICが一覧に増えました。

OKボタンを押します。

つづく・・・

vyatta その1

早速仮想マシンを追加します。
OSは手っ取り早くUbuntuをやります。
意気揚々と仮想マシンを追加します。

『ファイル』メニュー
 +新規
  +仮想マシン
仮想マシン作成画面が開きます。

・標準
次へ
 ・名前:Ubuntu8
 次へ
  ・設置するストレージ選択
  次へ
   ・ゲストOS選択LinuxとUbuntuLinux(32bit)
   次へ
    ・容量設定
    ・シンプロビジョニング
    次へ
     ・仮想マシン設定を編集
     続行

追加した仮想マシンのプロパティが開きます。
新規NICを選びます。
NATを選びます・・・えらび・・・えr・・・アレ?

NATが無い・・・。
なんでだろう・・・。

と、調べてみると、VirtualPCやVMWearPlayerのようなNAT構成が無いことが分かりました。
開発環境を多数立てる場合、どうしてもNATは必要なのです。

何か方法が無いかと探してみると、仮想マシン上にルーターを立てて
そこに閉じたネットワークを設定する方法なんてのが紹介されていました。

VirtualPCやVMWearPlayerは、自分自身をルーターに見立てて閉じたネットワークを構成していたけれど、ソレを自力でやれということなのですね。

そうなると、ルーター機能をOSにつけてルーター仮想マシンを作らないとなりません。
ルーター機なんて作った事無いので、どうしよう。

やっぱり何か方法が無いかと探してみると、『vyatta』なるOSを見つけました。
Debianのディストリビューションの一つ(?)で簡単な設定でかなり高速な接続が出来るそうです。
VMWear用の仮想マシンも提供されてるとか何とか。

クリーンな状態を作りたかったので、あえてLiveCDからやることにしました。

つづく・・・

ストレージ追加

HDDが認識しなかったってのは、あまり見かけませんでした。
調べてみても、あまり情報が見つかりません。
と、ふとoemファイルを見てみると
RTL8111_8168_P55_integr_SATA_Ctrl.(AHCI).oem.tgz
の名前。
あ、これAHCIドライバが入ってる。

ためしにBIOS画面を調べてみると、AHCIに関する記述がありました。
設定を弄くって再起動してみると、見事認識。
ふぅ・・・びっくりしたわ。

VMware vSphere Clientにより、再び接続して設定をします。

ホーム
 +イベントリ
  +イベントリ
により、このマシンの管理画面になります。

『構成』タブ
 +ストレージ
  +ストレージの追加
より、ハードディスクをストレージ一覧に追加します。

・ディスク/LUNを選択
次へ
 ・現在認識されてるストレージデバイスが表示
 ・ESXIで使うストレージを選択
 次へ
  ・現在のHDD状態が表示される
  ・警告:全ての利用可能なパーティションが云々
  次へ
   ・データストア名を何か適当に・・・『hdd』っと
   次へ
    ・最大ファイルサイズがどうのこうの
    ・よく分からないから、デフォルトのまま
    次へ
     ・設定内容と思わしき画面に
     終了

場合によっては少し待つと、データストアに対してhddが追加されました。
ここに表示されているハードディスクが、仮想マシンの保存場所になります。

『ファイル』メニュー
 +新規
  +仮想マシン

と辿ると、仮想マシンの作成ウィンドウが開き仮想マシンを追加できます。