計画は繊細に行動は大胆に!

Categories

Translate

Page view

ラベル windows の投稿を表示しています。 すべての投稿を表示
ラベル windows の投稿を表示しています。 すべての投稿を表示

2007/05/16

Windowsのプロセスを詳細表示


MicrosoftUpdateを行うとWindows上のCPUが100%で張り付く自称が発生しました orz。なにやらsvchostが邪魔をしているとしかわかりませんでした。

ちなみにこれは

1.更新プログラム 927891 をインストール
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7a81b0cd-a0b9-497e-8a89-404327772e5a
2.Windows Update Agent 3.0 をインストール
http://download.windowsupdate.com/v7/windowsupdate/redist/standalone/windowsupdateagent30-x86.exe
3.再起動する
で解決して一件落着しています。
実施に事が起こったときにはタスクマネージャーをみていたわけですが、
残念ながら何の解決にもなりませんでした・・・。
VirusバスターかWindowsアップデートか・・・と検討をつけていたから解決できた
わけです。
で、もう少しWindows上で動作するプロセスの詳細が見れないかと思い、探してみたところありました。
Process Explorer
http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx
動作しているプロセスがどのDLLを利用しているか、ファイルを開いているかなどを
確認することができます。
あと、うれしいのは不要プロセスをKILLする場合に確実に葬ってくれます(笑)
タスクマネージャーで物足りない方はお試ししては如何でしょうか?
 


2007/04/16

Macで動くWindowsを実現するために


Windows Vistaの話ですが、以前もどこぞで話に上がっていた、仮想化してWindowsを動作させるなら、Vistaの上位バージョンご購入頂きますという話。

参照:Vista on your Mac? Not so fast

(SNIP・・・)

That's because the Microsoft agreement states that anyone running Parallels can't use the $199 basic or the $239 premium edition of Vista. Instead, they have to buy the $299 business version or the $399 ultimate version of the long-anticipated OS. MIcrosoft says the move was necessary because of security issues with virtualization technology. A security analyst showed last year that, in theory, the kind of virtualization that Intel and AMD processors allow could be used to run malicious software programs alongside another operating system, creating the potential for damage.

要するに、仮想化ソフトでWindowsを動かしたければVistaで$299か$399のビジネスユーザ向けを買いなさい。という話です。
まじめな仮想化ソフト提供会社はチェックするのかもしれませんね。
#私はあと5年はXPな気がしていますが(笑

本家のSlashdotの方では、

参照:MS Requiring More Expensive Vista if Running Mac

"Mathew Ingram from Canada's Globe and Mail writes that Microsoft will require at least the $299 Business version of Vista or higher if installing on a Mac with virtualization. Running the cheaper Basic or Premium versions would be a violation of their user agreement. According to the article, Microsoft's reasoning is 'because of security issues with virtualization technology'. Sounds suspiciously like a 'Mac penalty' cost that Microsoft is trying to justify."

MicrosoftのしていることはMac Penaltyのように聞こえるといった形で同記事へのレビューを締め括っています。

はてさて、間違いなく便利な仮想化技術ですが今後は技術ではないところで大いにこじれそうな予感です。

AppleがVMwareやParallelsに対してWindows上の仮想化環境上で動作するMacソフトの
販売に圧力をかけているとかいう話もあったりするので、似たりよったりなのかもしれません。一応、このソースは

参照:Windows on the Mac changes everything

VMware's CEO Diane Greene told me last week that her company's existing x86 desktop product is already being used by some to run Mac OS on computers from Dell (Charts), Hewlett-Packard (Charts) and others, though this is not intentional on VMware's part.

とかにあります。もう少し下を読むと

"I wonder what Steve Jobs is going to do, because there is so much pressure to run Mac OS on non-Macs.

とかいう文言も出てきますね。1月の記事なので現在はどうなっているのかは知りませんが。



2007/02/02

03 手軽に接続するstatic-key


実際にVPN通信を行うための準備をしていくわけです。
しかし、取っ掛かり上は簡単にやりたい。そうですよね?きっと。
私はそうです(笑)

今回は、セキュリティ無視して、拡張性無視して簡単にサクッっとつないで
便利なVPNの恩恵をうけましょう。

実はこの方法はhttp://openvpn.net/static.htmlの方法をそのまま行っただけです。
リンク先は英語ですので、分かりやすいように日本語で書いておきます。

Static Keyの設定はPoint-to-Pointで接続する理想、または、テストに最適です。

StaticKeyの特徴としては

  • 簡単セットアップ
  • X.509証明書の管理が必要がない

といった事があげられます。
では、不利な点は何でしょうか?

  • 拡張性に限界があり、クライアント1台にサーバ1台の縛りがあります。
  • PFSが欠けています。-かぎ情報が漏洩する可能性があります-
    • 簡単に言うと長期間鍵を使っていると危ないということです。
  • パスワードは平分で保管する必要あり
  • 鍵を設定前にやり取りするするの面倒

といった感じです。

今回の環境ですが、

サーバ   :Linux (Fedora Core 4)
クライアント:Windows XP

となっています。
まず、openvpnのプログラムをインストールする必要がありますね。
Fedoraを利用されている方であれば、以下のコマンドでOKです。

[root@apolo ~]# yum install openvpn.i386
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for openvpn to pack into transaction set.
openvpn-2.1-0.14.beta16.f 100% |=========================| 20 kB 00:00
---> Package openvpn.i386 0:2.1-0.14.beta16.fc6 set to be updated
--> Running transaction check
--> Processing Dependency: liblzo2.so.2 for package: openvpn
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for lzo to pack into transaction set.
lzo-2.02-2.fc6.i386.rpm 100% |=========================| 4.0 kB 00:00
---> Package lzo.i386 0:2.02-2.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
openvpn i386 2.1-0.14.beta16.fc6 extras 357 k
Installing for dependencies:
lzo i386 2.02-2.fc6 extras 63 k

Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 420 k
Is this ok [y/N]:
Downloading Packages:
(1/2): lzo-2.02-2.fc6.i38 100% |=========================| 63 kB 00:00
(2/2): openvpn-2.1-0.14.b 100% |=========================| 357 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: lzo ######################### [1/2]
Installing: openvpn ######################### [2/2]

Installed: openvpn.i386 0:2.1-0.14.beta16.fc6
Dependency Installed: lzo.i386 0:2.02-2.fc6
Complete!

以下のように表示されればプログラムは無事インストール完了です。

[root@apolo ~]# rpm -qa |grep openvpn
openvpn-2.1-0.14.beta16.fc6

OpenVPNのWinwosクライアントにはGUIが付いているものと、付いていないものが存在します。
コマンドプロンプトが好きな方はどちらをインストールされても良いと思いますが、
通常はここからダウンロードしてインストールを完了すればOKです。
インストール自体はイエスマンになれば誰でも簡単に完了できます。

 

では、まずサーバ側の設定を済ませましょう。

サーバ上でstatic keyを作成します。

openvpn --genkey --secret static.key
これでstatic.keyというファイルが出来上がります。
ファイルの中身を見るとこんな感じです。


[root@apolo ~]# cat static.key1
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
5f9e3f5fb119f135fd909ca0f259cb41
8aa09985cc9935a3ad5a5b33390a877f
6c814abf6c6ef849fa8da05c0b06620b
b44fc474d85a57d15ebe5d19a1f4f4d5
43626f751eeade35afd4be67cde27e6d
528de63cd7a61ec026b50b43ea3edf68
76bcf2273d3d40286c5462129fcc0b44
44535f96a73f8d0acdd21172204b05ac
354e4c34f3a991a52c38605e8190dc7f
31c4742c82e18d14502c553b279c7858
10deb0086c0c3ec3fd4d95d26f4aed50
370382721acaa1b4ac47b11628312579
c26b35215cdf259c1202d5b23a34d208
7fb0544628ffa788ad3f145c8e459225
a19ce8f50b98173ead054a9f2299d87b
4f24118ebf7166a07e07cbf0b8774ade
-----END OpenVPN Static key V1-----


もちろん、このテキストをコピーするだけでも鍵となります。
#それほど手間でないので自分でつくりましょう。

この鍵をサーバとクライアントにコピーします。

次にサーバの設定ファイルを設定していきます。


ファイル名:/etc/openvpn/server.conf

dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key


ん?簡単すぎて拍子抜けでしょうか?しかし十分です。
あとさきほどのstatic.keyを



/etc/openvpn/static.key


の位置にコピーしておきます。
あとは、



/etc/init.d/openvpn start


でデーモンを立ち上げてください。
Linux上でFWが動作している可能性があるので、ひとまず
FWをOFFにします。



/etc/init.d/iptables stop


もちろん、接続が確認できればFWは元に戻す方がベターです。
後ほど、このあたりも触れるとします。


クライアントの方はというと、


ファイル名:C:\Program Files\OpenVPN\config\static_client.ovpn
remote server.name.dane
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key

としてください。remoteは実際に接続するサーバ名です。
またサーバと同じように static.keyは



C:\Program Files\OpenVPN\config\static.key


に配置して下さい。
これで終わりです。クライアントのOpenVPNを起動してみましょう。


タスクバーにこんな感じで待ち受けます。



それでは、このアイコンを右クリックして


static_client → connect


で接続を行います。接続のメッセージが出たら成功です。
アイコンが緑になればOKです。

Windows上でサーバまでVPNが成功しているか確認してみましょう。



C:\Documents and Settings\akihito>ping 10.8.0.1

Pinging 10.8.0.1 with 32 bytes of data:

Reply from 10.8.0.1: bytes=32 time=16ms TTL=64
Reply from 10.8.0.1: bytes=32 time=16ms TTL=64
Reply from 10.8.0.1: bytes=32 time=17ms TTL=64
Reply from 10.8.0.1: bytes=32 time=16ms TTL=64

Ping statistics for 10.8.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 16ms, Maximum = 17ms, Average = 16ms


上記のように表示されればひとまず成功です。
10.8.0.1はサーバ側でもつtunデバイスですね。
とりあえず、家ネットワークに侵入する事ができました。
次回はこの設定に肉付けをしていき、実用性に耐えるものに
したいと思います。



2007/01/31

02 VPN設計を考える


OpenVPNを利用してインターネットから家までのVPN環境を作るという方向はとりあえずいいとして、どのように実現するのか。
とりあえず、OpenVPNはLayer2とLayer3のVPNの両方が構築出来る優れもの。 

簡単ではあるけども、L2とL3のVPNの違いを以下にまとめてみる。

  • L2-VPN
    • 利点
      • IPv4以外のプロトコルも透過するため、IPv6などのプロトコルもOK
      • Windowsファイル共有で、コンピュータが見える(利点か?)
      • クライアントや周辺機器の設定が比較的楽
    • 欠点
      • 不必要な通信もVPNを通ってしまう。
      • アクセス制限がかけにくい(ACLのはなし)
      • 拡張性に乏しい
  • L3-VPN
    • 利点
      • 拡張性が高く、多数のマシンを収容出来る
      • 比較的アクセス制限がかけ易い
        • VPNのセグメントがはっきりするし。L2でもインタフェースで掛ければVPNと非VPNは分かるけども、ログに残るレベルはIPだと管理もしやすいし。。。
      • 一般的にL3-VPNの方がスループットが高い(はず)
        • L2でカプセル化すると、オリジナルのイーサフレームからカプセル化する必要があるため。
    • 欠点
      • IPv4以外の通信は利用出来ない
      • 他機器を含めたルーティングの設定を意識する必要がある

別に、どっちがいいとかそういう話ではないです。クライアントの設定や使い勝手を考えるとL2-VPNの方がよいかもしれません。ひとまず、私はL3-VPNを選択しました。なぜ?OpenVPNのデフォルトコンフィグがL3-VPNだったからに他なりません(笑)
というわけで、L3-VPNが正常に確立出来れば、L2-VPNにも手を出したいと思います。

では、OpenVPNの設定を・・・っと、その前に事前準備が要ります。
私の家のネットワーク環境を見て頂ければ分かるように、ルータ以下のネットワークは
プライベートネットワークが割り振られています。すなわちルータでNATされている
状態です。ここで問題が生じます。通常、外からの通信を直接、
特定のサーバに割り振ることは出来ません。内側から外側に出ていく時はルータが
SNATをしてパケットは出て行くので問題ありません。
こういった場合には、ルータ上でDNAT設定を行い必要があります。
TCP/UDPを利用した通信は必ずポート番号を利用します。OpenVPNも例外ではありません。
OpenVPNの場合、デフォルト設定で1194番が選択されています。これはIANAによって、
割り当てられたサービス番号になっています。

図のサーバ1でOpenVPNサーバを動作させるとします。
その場合、ルータ上では、インターネットからルータめがけて1194番に来た通信は
サーバ1に転送するという設定を入れる必要があります。これがDNATです。
DNATとはDestinationNATの略で行き先を変更して上げることが出来ます。
背景が緑の表にはAirStationの実際のNATテーブルを貼り付けています。
ご利用のルータは違えども、概念は同じはずですのでご参照下さい。

この設定が終われば、無事、OpenVPNのクライアントが1194番で通信をルータに
行ってきても、ルータはサーバ1に通信を転送してくれます。
通信の帰りは、NATテーブルを参照して、行きとは逆の変換をしてインターネットの
世界へと出ていくこととなります。

 

VPN通信を行うときは、仮想的なインタフェースを利用します。そのインタフェースはtun/tapドライバを利用します。tunドライバはL3-VPNで利用し、TapドライバはL2-VPNで利用することとなります。

L3-VPNでVPNを利用した場合を想定して話を進めましょう。以下がイメージ図です。

 

L3-VPNを張ると、tunインタフェースが作成されます。では、クライアントPCのVPNを張る前と張った後のルーティング情報を見てみます。

 

 

VPN接続前ルーティング情報

C:\Documents and Settings\akihito>route print

===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 220.159.33.100 220.159.33.100 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.106.0 255.255.255.0 192.168.106.1 192.168.106.1 20
192.168.106.1 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.106.255 255.255.255.255 192.168.106.1 192.168.106.1 20
192.168.184.0 255.255.255.0 192.168.184.1 192.168.184.1 20
192.168.184.1 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.184.255 255.255.255.255 192.168.184.1 192.168.184.1 20
211.14.82.201 255.255.255.255 220.159.33.100 220.159.33.100 1
220.159.33.100 255.255.255.255 127.0.0.1 127.0.0.1 50
220.159.33.255 255.255.255.255 220.159.33.100 220.159.33.100 50
224.0.0.0 240.0.0.0 192.168.106.1 192.168.106.1 20
224.0.0.0 240.0.0.0 192.168.184.1 192.168.184.1 20
224.0.0.0 240.0.0.0 220.159.33.100 220.159.33.100 1
255.255.255.255 255.255.255.255 192.168.106.1 192.168.106.1 1
255.255.255.255 255.255.255.255 192.168.184.1 192.168.184.1 1
255.255.255.255 255.255.255.255 220.159.33.100 80004 1
255.255.255.255 255.255.255.255 220.159.33.100 90005 1
255.255.255.255 255.255.255.255 220.159.33.100 140008 1
255.255.255.255 255.255.255.255 220.159.33.100 20006 1
255.255.255.255 255.255.255.255 220.159.33.100 220.159.33.100 1
Default Gateway: 220.159.33.100
===========================================================================
Persistent Routes:
None

 

VPN接続後ルーティング情報

C:\Documents and Settings\akihito>route print
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 220.159.33.100 220.159.33.100 1
10.8.0.1 255.255.255.255 10.8.0.5 10.8.0.6 1 
10.8.0.4 255.255.255.252 10.8.0.6 10.8.0.6 30
10.8.0.6 255.255.255.255 127.0.0.1 127.0.0.1 30
10.255.255.255 255.255.255.255 10.8.0.6 10.8.0.6 30
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.0.0 255.255.255.0 10.8.0.5 10.8.0.6 1 → 192.168.0.0行きのアドレスはVPN経由で。
192.168.106.0 255.255.255.0 192.168.106.1 192.168.106.1 20
192.168.106.1 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.106.255 255.255.255.255 192.168.106.1 192.168.106.1 20
192.168.184.0 255.255.255.0 192.168.184.1 192.168.184.1 20
192.168.184.1 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.184.255 255.255.255.255 192.168.184.1 192.168.184.1 20
211.14.82.201 255.255.255.255 220.159.33.100 220.159.33.100 1
220.159.33.100 255.255.255.255 127.0.0.1 127.0.0.1 50
220.159.33.255 255.255.255.255 220.159.33.100 220.159.33.100 50
224.0.0.0 240.0.0.0 10.8.0.6 10.8.0.6 30
224.0.0.0 240.0.0.0 192.168.106.1 192.168.106.1 20
224.0.0.0 240.0.0.0 192.168.184.1 192.168.184.1 20
224.0.0.0 240.0.0.0 220.159.33.100 220.159.33.100 1
255.255.255.255 255.255.255.255 10.8.0.6 140008 1
255.255.255.255 255.255.255.255 10.8.0.6 90005 1
255.255.255.255 255.255.255.255 10.8.0.6 80004 1
255.255.255.255 255.255.255.255 10.8.0.6 10.8.0.6 1
255.255.255.255 255.255.255.255 192.168.106.1 192.168.106.1 1
255.255.255.255 255.255.255.255 192.168.184.1 192.168.184.1 1
255.255.255.255 255.255.255.255 220.159.33.100 220.159.33.100 1
Default Gateway: 220.159.33.100
===========================================================================
Persistent Routes:
None

VPN接続後の赤字で表示している部分がVPN接続時に追加されたルーティング情報です。

ちなみに
サーバのTUNドライバ 10.8.0.1
クライアントのTUNドライバ 10.8.0.6
の環境の話です。

192.168.0.0 255.255.255.0 10.8.0.5 10.8.0.6 1

は192.168.0.0/24行きの通信は10.8.0.6(tunドライバ)に投げるということです。
※ちなみにWIndowsはローカルネットワークxとかいう名前でデバイスが出来てます。

あとは、Tunドライバによりパケットはカプセル化され対抗のOpenVPNサーバに送られます。

上記はVPN接続後にTunドライバにより、仮想的に接続されたときの図を描いたものです。

さて、もう1点考える必要があります。上記で書いたようにクライアントのIPアドレスは
10.8.0.6が送信元として送信されます。しかし、VPNの先にある、家庭内の各機器は
10.8.0.6って誰?といった感じになります。
そこで、ルータに10.8.0.6の人はOpenVPNサーバが知っているという事をルーティング情報に
いれます。下の図にはルーティング情報が追加されています。

これで、VPNクライアントから家庭内の各機器に接続出来ることになりました。
L2VPNの概念もありますが、とりあえず次からはL3VPNで接続する実践的な方法を
書きます。それでは。



2006/10/29

WindowsをMac ライクに


Windowsをマックライクにするソフトがあるようです。

ずいぶんと前から存在していたようですが、私は気づいていませんでした。
ダウンロードのさせかたもユニークで目を通すだけの価値があります。
ブラウザの中でMacOSが動作しているような感覚になります。
ダウンロードサイトに適当にIDを入力しログインすると以下のような感じです。

 

ダウンロードは画面中でハイライト表示になっているところです。
ただ、私のWindows環境では上手く実行することが出来ませんでした ;(
興味のある方はどうぞ。