Azure 仮想マシン上のAD DSでディレクトリサービス復元モードする

タイトルの通り。やり方をひょんなことで知ったのでやってみました。

※ というか知識がWindows Server 2003で止まってるからナー。。

昔の知識だとブート時にF8押して~とかなんですが、いやいやbcdeditで既定のブートかえればいいじゃんという話でした。あとWindows Server 2008からかどうか知らないんですが、ディレクトリサービス復元モードでもRDP使えるみたいですね。

続きを読む →

Azure のネットワークACLの挙動

こういうお話がありました。

結論からいうと、LBとかじゃなくてホストサーバー上の設定なのでVNET(特に拒否の設定)指定ができちゃいます。

とはいえちょっと気になったので見てみることにします。こんなVNET to VNETなネットワークをAzure上で組んでみました。

image

ca1-srv1-vnet1 なインスタンスにIISを入れてHTTP(tcp/80)なエンドポイントを定義します。(LBは省略しました)

ネットワークACL(エンドポイントACL)を何も設定しない際に各インスタンスで内部のIPアドレスと外部のFQDN(図だとca1.cloudapp.net)にブラウザで接続してIISの既定のページが見れることは確認済みな状態とします。(Azure外のクライアントも当然OK)

※ようは疎通できてる状態

さて、以下の表のような感じでACLを定義したときに、それぞれのインスタンスから内部IPとFQDNでアクセスしてどうなるかを見てみました。

ACLの状態 ca1-srv1-vnet1   ca1-srv2-vnet1   ca2-src1-vnet1   ca3-srv1-vnet2   外部PC
  内部IP FQDN 内部IP FQDN 内部IP FQDN 内部IP FQDN FQDN
vnet1のみ許可 OK OK OK OK OK NG OK NG NG
vnet1のみ拒否 OK OK NG OK NG OK OK OK OK
vnet2のみ許可 OK OK OK OK OK NG OK NG NG
vnet2のみ拒否 OK OK OK OK OK OK NG OK OK
外部PCのみ許可 OK OK OK OK OK NG OK NG OK
外部PCのみ拒否 OK OK OK OK OK OK OK OK NG
ca1のGIPのみ許可 OK OK OK OK OK NG OK NG NG
ca1のGIPのみ拒否 OK NG OK NG OK OK OK OK NG
ca2のGIPのみ許可 OK OK OK OK OK OK OK NG NG
ca2のGIPのみ拒否 OK OK OK OK OK NG OK OK OK
ca3のGIPのみ許可 OK OK OK OK OK NG OK OK NG
ca3のGIPのみ拒否 OK OK OK OK OK OK OK NG OK

 

※クラウドサービスのグローバルIPアドレスは一応インスタンス上からインターネットにアクセスした際に使用されるIPアドレスを確認して設定

本来ネットワークACLは許可だけが設定されたらそのルールにマッチしないものは拒否になるはずですが、VNETを許可した場合はその辺うまく動作してない様子。

例えばvnet1だけ許可した場合だと、vnet2にいるインスタンスからもアクセスできてしまっています。(期待値としては拒否してほしい)

ただ拒否設定の場合は想定どおりになるようなので、何とも不可思議な挙動です。(表中で怪しいところをわかりやすくしようと思ったけど、面倒くさくなったので放置)

但し、ネットワークACLのドキュメントを見る限りでは

仮想ネットワークに対して ACL を指定したり、仮想ネットワーク内にある特定のサブネットに対して ACL を指定したりすることはできません。

とあるので今のところこのあたりの挙動は想定外なのかもです。今後に期待。

また、ネットワークACLのパケットフィルタ処理はホストノード上で実行されるようです。

ACL を作成して仮想マシンのエンドポイントに適用するとき、パケット フィルターが VM のホスト ノードで実行されます。これは、リモート IP アドレスからのトラフィックのフィルター処理が、VM 上ではなく、ホスト ノードによって実行され、ACL ルールとの照合が行われることを意味します。これにより、パケット フィルターの処理で VM が重要な CPU サイクルを消費するのを防ぐことができます。

上位のFWとかルータじゃなかったのねー。

まぁとりあえず現状はVNETに対するACLは微妙にノンサポートという感じですので、もし制限したい場合はご注意ください。(意図せず外部はOKになったりする可能性があります)

Azure Web Sites のAntimalware

ってされてるんですか?という話題があったので適当に見てみました。

EICARテストファイルを作ってどんな挙動になるかというのを見てみます。

こんな感じでWebサイト上に作ります

image

そもそも普通に作成できました。実行してみましょう。

image

普通に実行できました。まぁ実際に動作するファイルじゃないわけで結果は妥当な感じ。(アンチウィルスのチェックとしてはダメですが)

さてローカルPCで見てみましょう。

image

中身を入力して保存したタイミングでWindows Defenderさんが反応します。

実行するとちゃんとウィルスの可能性があるから実行しないよ的なメッセージになります。

image

しばやん先生によるとAzure Webサイト上はWindows Defenderが手動開始になっているようで、動作してないっぽいですね。

というわけで注意しましょう。

ASP.NETとTypeScript

なんとなくJavaScriptもちゃんと触りたいと思ってTypeScript本読んだりしてました。

ほんとはUI周りでFlagrateを使いたいからという理由で、じゃぁどうせJavaScriptするならTypeScriptかなーと。でも鯖側はまだ慣れてるC#で書きたいし…ということでASP.NETなプロジェクトとどう共存しようというのを見てみました。たぶん何そんなの基本だろ的な感じだと思われますが。

続きを読む →

Visual Studioを使った仮想マシンのデバッグとデプロイ

今更感がありますがVisual Studioを使うと仮想マシンのデバッグとデプロイが簡単にできます。

※Visual Studio 2013 Update2以降とAzure SDK 2.3、Azure PowerShell 0.7.4(Windows PowerShell 3.0)以降が必要ですが。

具体的にどう簡単になったかというと、新規でWebアプリケーションを作成する際のダイアログで、「クラウド内のホスト」にチェックを付けて仮想マシンを選ぶと仮想マシンをデプロイしてWebDeployが有効な状態にしてくれます。

image

こんな感じでIISとWeb配置の有効化を行うと、IISのインストールとWebDeployの準備をしてくれます。

image

※「OK」ってした段階で仮想マシンが作られますので注意。

実際に作成された仮想マシンを見てみると

image

てな感じでWebアプリケーションで必要な設定が行われてます。

また自分だけの環境にならないように、仮想マシン作成&デプロイ用のスクリプトも生成されます。

image

※Webサイトにした場合もどうようのスクリプトが生成されます。

image

Azure Resource Managerと違いますが、設定がJSONで保存されてます。このあたり統合されていくんでしょうかね…まだわかりませんが。

さて、実際にどうやってデプロイ等しているかというと、同じく生成されるPowerShellスクリプトモジュール(.psm1)にデプロイ用のモジュールと、実際にそのモジュールを使ってデプロイするスクリプトを使います。

このスクリプトモジュール、よくできてると思うので早く本家にマージされるといいですね。

なおスクリプトに関する詳細はこちら

さて仮想マシンのデプロイが終わったら、後は通常のWebアプリケーションと同じようにWebDeployで発行できますし、Zipパッケージにして、生成されたPowerShellスクリプトを使って発行することもできます。

開発者がいちいち管理ポータルでちまちま仮想マシンやらWebサイトやら作る必要もなく、開発だけに専念して展開や本番環境の調整は別の人が行ったり、スクリプトを使って自動化したりできるのは嬉しいですね。

Azureの説明の際にどんとPaaS/IaaSといいだした背景は案外こんなところかもしれません。

デバッグ方法

そいやデバッグ方法について記載してなかった感(タイトル詐欺)。

Visual Studioのサーバーエクスプローラーから対象の仮想マシンを選択して「デバッグの有効化」を行った後、デバッガをアタッチしてデバッグしたいプロセス(w3wpとか)にアタッチするだけです。はい。

簡単ですね。

Azure Resource Manager

Azure Resource Managerって何ですか? というのをいつも通り適当に書いておきたいと思います。

適当は嫌じゃ、という方は //build/ 2014 と TechEd 2014 NA のセッションとかを見たほうが早いかもしれません。

続きを読む →

FreeBSD on Azure

ついにこの日がやってきました。

WALinuxAgent2.0がFreeBSDに公式対応したということもあり、VMDepotにFreeBSD 10 RELEASE x64なイメージが公開されています。

今のところ管理ポータル上のVMDepotの参照からは作れなさそうなのでコマンドでどうぞ。

image

VMDepotから生成スクリプト取得できるので、簡単ですね。

azure vm create <クラウドサービス名> -o vmdepot-36254-2-128 -l "East Asia" <ユーザー名> <パスワード> --ssh

という感じです。まぁイメージ名だけ間違ってなければあとはお好きなようにという感じです。

image

\ノ’∀ン ヒャッホウ

もうこれで過去やったみたいな面倒くさい手順からは解放されます!

AzureでもFreeBSDライフをお楽しみください!

Windows 8.1 Update1 で複数モニタの境界のマウス移動が難しい

何を言ってるか(ry

Windows 8.1 Update1な環境で複数モニタ使ってる方はわかってもらえそうな気がしないでもないですが、モニタ間をマウスカーソル移動させる際にある程度の加速度というか勢いがないと、境界でカーソルが止まってしまいます。

試しにゆーっくりモニタ間移動してもらえるとわかるかと思いますが、、、なんだろうこの表現の難しさ。

まぁ引っかかっちゃうので結構困ります、ということで直すためのTips。

に書いてある通り、レジストリ2か所いじってExplorer.exeを再起動でなんとかなります。

HKCU\Control Panel\Desktop の MouseMonitorEscapeSpeed を1に、

同様に HKCU\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUI の MouseMonitorEscapeSpeed を1にします。

ふぅ。たぶんストアアプリにタイトルバー(?)がついた影響だと思うんですけどよくわからずです。GUIで設定できるようにしてほしいですね。

※2014/05/15追記:2つ目のレジストリキーと値が間違っていたのを修正