SUSE+XEN で作る pptp サーバ、ノマドワークへの道

最近 BYOD という言葉が流行になっています。たとえ、社内のリソースを持ち出せない設定にしたとしても、仮想マシン上の Windows シンクライアントにRemote Desktop できればなぁ、とか、PUTTY や xming で Linux の操作ができればなぁ、ということを考えると、小さな iPod Touch ではなく iPad や今後販売が予測される Windows8 RT などでも「ノマドワーク」ができるようになります。

Transrate english

SUSE + XEN でpptp を動かすメリット

1) 安い、何しろ1年間のサブスクリプションが $375 32ソケットの制限はあるけど仮想化は無制限、 RH の場合は4仮想マシンまで、 Windows ならライセンスを別途購入。VMware はハードウェアを選ぶしCPUやソケット数で莫大なライセンス料がかかるし、別途 OS を購入する必要がある。

2) 追加サブスクリプションを購入すると、サポートも受けられる。(年間9万円位から)

3) どうせたいしたCPU能力もディスクも使わないし、セキュリティ上の問題から、本体のクラックを避けられる。仮想化で十分。サービスも最低なものにすれば再起動はめちゃくちゃ早い。

4) デメリットは外から dom0 が壊れたり pptpd をイジルとアクセスできない(当たり前ですけど)

ということで SOHO プライベートクラウドを作るにはよい選択です。まず、テスト環境でサッと作ってみてから、本番機にイメージコピーして xm create してやればよいわけですね。

ということで SUSE + XEN 環境で VPN 用の pptp サーバを構築してみます。

ここではテストのため、VPN 接続が pptpd との間のセッションが確立できることを確認するために、同じ LAN 内でつながることを確認してみました。

-SUSE への pptpd のインストール-

仮想マシンにリモート x で接続します。yast2 > Softwre Management > search から "vpn" をキーワードに探してみます。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_1216963.jpg

pptpd のチェックが入っていないのでチェックします。Network Manager などもチェックが入っていないのでついでにチェックを入れましたが、これはこちらがクライアントとして VPN 接続するための機能なので不要なようです。Accept を入れるとリポジトリからインストールが始まります。

SUSEでのVPNクライアントアクセスの設定の場合はこちらをご参考に
第14章 VPN サーバの設定

次に、pptpd が自動起動できるよう yast2 > system runlevel に pptpd がリストされている行のレベル、3、5をチェックします。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_1223162.jpg


この時点で /etc/pptpd.conf と /etc/ppp のデフォルトが作成されます。最悪、デフォルトに戻したい場合は /etc/pptpd.conf と etc/ppp/* を削除して、 yast から pptpd の削除と再インストールを行えば、初期設定に戻ります。

pptpd にはいい教科書がたくさんあるので、その中から肝要な部分をパクってみました。

※この先の作業は様々なネットワークの設定を変更します。 Domain-0 から xm console vpnx1 (myPPTPserver) で作業することをお勧めします。

pptpd サーバは vpnx1(192.168.1.22) 外部から接続するユーザは user/password です。192.168.1.40 以降のアドレスに割り当てるように設定します。イントラネットのドメイン名は intra です。

設定内容を確認してみましょう。斜線部分がこちらの環境に合わせて修正した部分です。

vpnx1:/etc # cat pptpd.conf
option /etc/ppp/options.pptp
localip 192.168.1.22
remoteip 192.168.1.40-49

pidfile /var/run/pptpd.pid
vpnx1:/etc #
vpnx1:/etc # cat ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
user vpnx1 password *

vpnx1:/etc # cat ppp/options.pptp
lock
# my pptp server name, myoffice domain
name vpnx1
domain intra

#
auth
refuse-mschap
require-mschap-v2
require-mppe-128

# my office-dns
ms-dns 192.168.1.2
#ms-wins 192.168.1.2

#
proxyarp
nodefaultroute
nobsdcomp
novj
novjccomp
nologfd

#
vpnx1:/etc #
vpnx1:/etc # /etc/init.d/pptpd restart
Shutting down MS VPN server pptpd done
Starting MS VPN server pptpd done
vpnx1:/etc #

ポイントは
1) ppp/options.pptp の
require-mschap-v2
の行です。他の認証方法は refuse します。

2) pptpd.conf に
pidfile /var/run/pptpd.pid
という行がなければ pptpd restart をしたときにエラーになります。

-Windows 側の設定-

これもさまざまな教科書があるので割愛します。肝要な点だけピックアップしました。

Windows XP の場合
PPTPクライアントの設定 for Windows XP

Windows 7 系の場合
VPN(PPTP)接続の設定方法(Windows 7)

デフォルトは「自動」ですが、これはあくまでも「総当り」方式なので接続に時間がかかります。pptp のみに設定します。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_12384463.jpg

また、MS-CHAP もチェックが入っていますが、セキュリティ上の問題で許可していないのでチェックをはずしておきます。

将来使うかもしれませんが ipv6 のデュアルスタックは止めます。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_12403125.jpg


接続先の pptp サーバのアドレスです。実際にはルータのグローバルアドレスを指定します。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_1685665.jpg


それでは /etc/ppp/chap-secrets に設定した user/password で接続してみましょう・
接続できたかどうか確認してみます。

C:\Users\myname ipconfig /all

Windows IP 構成

ホスト名 . . . . . . . . . . . . : mylaptop
プライマリ DNS サフィックス . . . . . . . :
ノード タイプ . . . . . . . . . . . . : ハイブリッド
IP ルーティング有効 . . . . . . . . : いいえ
WINS プロキシ有効 . . . . . . . . : いいえ
DNS サフィックス検索一覧 . . . . . . : intra

PPP アダプター test:

接続固有の DNS サフィックス . . . :
説明. . . . . . . . . . . . . . . : test
物理アドレス. . . . . . . . . . . :
DHCP 有効 . . . . . . . . . . . . : いいえ
自動構成有効. . . . . . . . . . . : はい
IPv4 アドレス . . . . . . . . . . : 192.168.1.40(優先)
サブネット マスク . . . . . . . . : 255.255.255.255
デフォルト ゲートウェイ . . . . . : 0.0.0.0
DNS サーバー. . . . . . . . . . . : 192.168.1.2
NetBIOS over TCP/IP . . . . . . . : 有効

イーサネット アダプター ローカル エリア接続:

接続固有の DNS サフィックス . . . : intra
説明. . . . . . . . . . . . . . . : Realtek PCIe GBE Family Controller


-以下略-



実際にネゴシエーションするところを WireShark で確認してみます。
Wiresharkはこちら

SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_12535685.jpg


今現在は直接 LAN と pptpd サーバがつながっているので、自分自身と pptpd サーバとのやり取りを覗き見してみました。チャレンジレスポンスで認証されている様子がわかります。

※ところで「3回ログインできなかったらロックアウト10分」といったパスワード総当たり攻撃の防御策はあるのでしょうか。探してもないのでどなたかご存知の方はコメントください。


-それでは本当に VPN でつながるか-

ISPのルータを設定します。

SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_12573965.gif


プロバイダからレンタルしているモデムから 1723ポートを pptpd サーバ(192.168.1.22)に開放します。このプロバイダはソラで覚えているくらいそうめったにグローバルIPが変わらないので、 VPN 接続にグローバル IP を設定します。LANケーブルをはずしてノートブックのモバイル回線から接続します。

※ iPod 系の場合は GRE ポート 47 も開放する必要があるようです。
SUSE Linux pptp で Android, iOS がリモート接続できない

------ The beginning of long way from here ... ここから長い道のりが始まる。

この後、モデムを出荷設定に戻したところ、何と丸一日後に復旧しました。

接続したところ、やっと ACK が返ってきました。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_13132100.jpg


一応、リモートデスクトップも使えます。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_1315655.jpg


PUTTYでリモート接続してみます。
SUSE+XEN で作る pptp サーバ、ノマドワークへの道_a0056607_13152257.jpg


SPP でポートスキャンをかけると、色々ポートが開いていたので、yast > runlevell > expert mode から不要なサービスは止めておきます。最終的にはファイアウォールをかけることになるでしょう。またできればeDirectory+Ldap 認証(PDF)ができるように試みてみます。

さすが家庭用の回線で、細いのであまり実用的(xmingはタイムアウトした)とは言えないのですが、一応ここまでが手順です。

現実的かどうかは別にして、深夜、大きなファイルをダウンロードしているとか、バックアップが順調に進んでいるかの確認などは使えそうです。

※ セッションを閉じた後、しばらく接続できなくなりました。ルーターをリセットしたらOKなので、SOHO 環境ではプロバイダを選ぶということです。ちなみに Windows の着信接続を使っても同じ症状がでました。

この設定で iOS (iPod Touch) はLAN内は問題なかったのですがルーターは超えられませんでした。

--
SUSE SLES11 pptpd xen Novell プライベートクラウド

islandcenter.jp

by islandcenter | 2012-06-25 13:31 | プライベートクラウド | Comments(0)