SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Exchange 2007 でインターネットにメール送信 / インターネットからメール受信する場合の覚書

one comment

Exchange の基礎と Exchange を外部メールサーバーとして使用する場合の設定する場合の初期設定の覚書です。

[Exchange の基礎]

基礎を学習するときには @IT の以下の記事がわかりやすい
# Exchange 2007 は マイクロソフト 公式解説書が便利だった。
? Exchange 2007 であればひと目でわかるシリーズもある

Exchange 2003
Windows Server Insider 基礎解説 - @IT
# 基礎から学ぶExchange Server 2003運用管理

Exchange 2007
Windows Server Insider 運用 - @IT
# Exchange Server 2007システム管理入門

[Exchange の組織]

  • 1 フォレスト 1 組織 (フォレスト内に複数の組織を設定できない)
  • フォレストをまたがった組織は作成できない (フォレスト内で完結する)

[DNS 設定]

外部の DNS が A (ホスト) レコードと MX (メールエクスチェンジャ) を解決できるようにしておく。

[ドメイン名の設定]

Active Directory ドメイン名とメールアドレスのドメイン名は別のものを設定しておくと管理上良い。
AD ドメイン名は内部管理用として使用するため、外部公開のドメイン名と一致させる必要はない。

  • AD ドメイン名 : test.local / メールアドレス ドメイン名 : test.com

といった設定が可能。

ユーザーアカウントにドメイン名と異なるメールアドレスを設定する場合は、[受信者の構成] → [メールボックス] で
対象のユーザーのプロパティを開き [電子メールアドレス] タブで設定可能
image?
[電子メール アドレス ポリシー] の設定によっては、追加したメールアドレスを [プライマリに設定] することができないため、
ポリシーが設定できていない場合は [電子メールアドレス ポリシーに基づいて電子メールアドレスを自動更新する] を無効にし
プライマリのアドレスとして設定する。

[電子メール アドレス ポリシー] は [組織の構成] → [ハブトランスポート] → [電子メール アドレス ポリシー] で設定

[Exchange → 外部メール送信設定]

送信先によっては MX レコードと送信元の情報が一致していないと受信が拒否される??

デフォルトでは送信コネクタが作成されていないのでインターネット向けの送信コネクタを作成する。

  1. [組織の構成] → [ハブ トランスポート] → [送信コネクタ] タブから送信コネクタを新規作成
  2. 送信コネクタの使用目的は [インターネット]
  3. 種類 [SMTP] / アドレス [*] / すべてのサブドメインを含む [有効] でアドレススペースを作成
    インストール時に発生するコネクタの警告メッセージはこのことを示している
    image
  4. [ネットワーク] タブの [トランスポート サーバーで外部 DNS 参照の設定を使用する] は必要に応じて
  5. OP25B (Outbound Port 25 Blocking) の制限が影響する環境では [メールを次のスマート ホストを経由してルーティングする]で
    スマートホストとしてプロバイダの OP25B の回避方法として説明されているサーバーを指定する。
    OCN だと smtp.vcxxxx.ocn.ne.jp
    so-net だと mail.xxx.so-net.ne.jpFQDN でうまくいかない場合は IP アドレスで指定すると大丈夫なことも

外部の DNS に送信元ドメインのメールアドレスの MX レコードが正常に登録されていないと以下の NDR (Non-Delivery Report) が
送信されることがある。
# メールの送信先によっては NDR が返されないことも。

次の受信者または配布リストへの配信に失敗しました。:

<送信先メールアドレス>
有効な送信者として認識されなかったため、この受信者にメッセージを配信できませんでした。お使いの電子メールクライアントに構成されている送信アドレスが正しいことを確認してからメッセージを再送信するか、システム管理者に次の診断用のテキストを提示してください。

メッセージは次の組織に拒否されました。<送信先メールアドレスの GW>

_____

Microsoft Exchange Server 2007 により送信されました

管理者向けの診断情報:

生成サーバー: <Exchange サーバー名>

<送信先メールアドレス>

<送信先メールアドレスの GW> #554 5.1.8 <送信元メールアドレス>: Sender address rejected: Domain not found ##

元のメッセージ ヘッダー:

Received: from <Exchange サーバー名> ([::1]) by <Exchange サーバー名> ([::1])
with mapi; Sun, 26 Apr 2009 10:49:13 +0900
From: =?iso-2022-jp?xxxxxxxxxxxxx=?=
<送信元メールアドレス>
To: "<送信先メールアドレス>" <送信先メールアドレス>
Date: Sun, 26 Apr 2009 10:48:52 +0900
Subject: test
Thread-Topic: test
Thread-Index: xxxxxxxxxxxxxxxxxx==
Message-ID: <メッセージアドレス>
Accept-Language: ja-JP
Content-Language: ja-JP
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: ja-JP
Content-Type: multipart/alternative;
boundary="<boundary>
MIME-Version: 1.0

?

これで Exchange → 外部にメール送信が可能

[外部メール → Exchang 受信設定]


DNS の A レコードが登録されていない状態では 外部メール → Exchange にメールを送信すると以下の NDR が送信されることがある。

<送信先メールアドレス>: Host or domain name not found.
Name service error for name=<送信先メールアドレス ドメイン名> type=A: Host found
but no data record of requested type

NDR に表示されているとおり DNS でドメイン名の A レコードが解決できていないことが原因。

?

A レコード登録後は以下の NDR が送信されることがある。

<送信先メールアドレス>: host
<送信先メールアドレス ドメイン名>[<A レコード IP アドレス>] said: 530 5.7.1 Client was not authenticated

これは受信コネクタの設定が影響している。

[サーバーの構成] → [ハブ トランスポート] から受信コネクタの設定が確認可能。
デフォルトで作成されている [Default <サーバー名>] の受信コネクタが ポート 25 の受信コネクタとなっているため
このコネクタのプロパティを開く。
[Client <サーバー名>] となっている受信コネクタはポート 587 (サブミッションポート用)
# 受信にもポート 25 (SMTP) を使用するためルーター側の設定は考慮する必要がある。

初期設定では [許可グループ] は以下の設定がされている。
image

[匿名ユーザー] が許可されていないため、外部メールサーバーからのメールで認証エラーとなっている。
[匿名ユーザー] を許可することで 530 5.7.1 の NDR は回避可能。
image

[匿名ユーザー] を設定しても以下の NDR が送信されることがある。

<送信先メールアドレス>: host
<送信先メールアドレス ドメイン名>[<A レコード IP アドレス>] said: 550 5.7.1 Unable to relay

これは受信コネクタの [認証] が影響しているようである。

image

[外部的にセキュリティで保護] を有効にすると回避が可能。

この認証を設定すると以下のダイアログが表示される。
image

メッセージ表示内容通り、[外部的セキュリティで保護] は [基本認証] [Exchange Server 認証] [統合 Windows 認証] と合わせて
設定することはできないため最終的な設定は以下の画像の内容となる。
# 以下の設定だとオープンリレーサーバーになってしまう可能性があるので TLS と 相互認証 TLS だけ有効にしておくに留めたほうがよいかも。
  外部的にセキュリティ保護が有効だと、承認済ドメインによる第三者中継のブロックができない??
image

以下の URL の情報が参考になる。
Allowing application servers to relay off Exchange Server 2007

これでインターネット向けのメールサーバーとして Exchange でメールが受信可能になる。

外部からの踏み台やスパム用として悪用されないようにこの状態をベースにセキュリティ設定を考えていく。

Written by Masayuki.Ozawa

4月 26th, 2009 at 4:03 am

Posted in Exchange

Exchange 2007 に更新プログラムを適用する際の覚書

leave a comment

Exchange 2007 に更新プログラムを適用した後にサービスが起動しない現象についての覚書です。

Exchange 2007 に更新プログラム (RU) を適用しようとした際に環境によっては 2時間以上かかり、
更新プログラム適用後にいくつかのサービスが起動しないという現象が発生。

詳細までは追えていないが Exchange 2007 がインターネットにつながらない場合に発生するようである。
更新プログラムを適用すると一部の .NET アセンブリが更新され http://crl.microsoft.com に証明書を確認しに
行くために現象が発生している??

.NET Framework 2.0 SP1 はを導入していれば以下の方法で回避可能。

  1. [C:WINDOWSmicrosoft.netFramework64v2.0.50727CONFIGmachine.config] をテキストエディタで開く
  2. <generatePublisherEvidence enabled="true"/>
    と記載されている個所を
    <generatePublisherEvidence enabled="false"/>
    に変更

この設定をすることにより、発行者ポリシーを無効にすることができる。

.NET Framework 2.0 Non SP の場合は以下の KB からパッチを入手 / 適用すると上記対応が可能となる。

[FIX]: A .NET Framework 2.0 管理を持つ、Authenticode 署名の開始するには、通常より時間がかかるアプリケーション
<http://support.microsoft.com/kb/936707/>

参考↓
<generatePublisherEvidence> 要素

Exchange 2007 用更新プログラムのロールアップをインストールすると Exchange2007 マネージ コード サービスが開始されない
<http://support.microsoft.com/kb/944752/>
の英語 KB の情報を参考に EXE 個別に構成ファイルを作成することで署名確認を無効にすることも可能かもしれない。

Exchange Server 2007 managed code services do not start after you install an update rollup for Exchange Server 2007
<http://support.microsoft.com/kb/944752/en-us>
# 日本語の KB では対象の EXE が公開されていないため。英語版を参照。

SP1 UR6 の KB にもこの現象は記載されている↓
Microsoft Exchange Server 2007 Service Pack 1 の更新プログラムのロールアップ 6 について

SQL Server 2005 SP1 で SSIS をインストールしている場合は同様の現象が発生
<http://support.microsoft.com/default.aspx/kb/918644>

<http://exchangepedia.com/blog/2009/02/applying-exchange-2007-sp1-update.html>
の内容によると .NET Framework 2.0 SP 2 で解消されている??

Written by Masayuki.Ozawa

4月 25th, 2009 at 12:39 pm

Posted in Exchange

GroupBoardWorkspace 2007 がインストールされた MOSS/WSS に更新プログラムを適用する際の覚書

leave a comment

GroupBoardWorkspace 2007 がインストールされている MOSS / WSS で更新プログラムが適用できない現象の覚書です。

Microsoft Office SharePoint Server 2007 / Windows SharePoint Services 3.0 に GroupBoardWorkspace 2007 を
インストールした環境で更新プログラム (機能追加 /HotFix) をインストールすると構成ウィザードの実行に失敗し、
更新プログラムの適用を完了することができないという現象が発生。

更新プログラムを適用する際は事前に GroupBoardWorkspace 2007 を削除。

詳細は以下の KB ↓
GroupBoard Workspace 2007 がインストールされているコンピュータで SharePoint製品とテクノロジ構成ウィザードが正常に完了しない
http://support.microsoft.com/kb/941678/ja

Written by Masayuki.Ozawa

4月 25th, 2009 at 11:27 am

Posted in SharePoint

2 万ページビューを超えました♪

leave a comment

何気なくアクセス情報を眺めていたら 2 万ページビューを超えていることに気付きました。
Windows Live のブログでは RSS の購読があると 1 投稿に対して 1 アクセス計上されるので単純なページビューになると
このアクセス数の半分以下ぐらいかな~という気もしますが。
まだまだ技術的に未熟なところばかりですが、閲覧してくださっている方がいることを励みに日々勉強していきたいと思います。

Written by Masayuki.Ozawa

4月 23rd, 2009 at 2:53 pm

Posted in その他

[Web サーバー立ち上げ体験日記]固定 IP アドレスと独自ドメイン名でサーバーを公開

leave a comment

<[Web サーバー立ち上げ体験日記]動的 IP アドレスと Dynamic DNS でサーバーを公開

前回投降した内容を固定 IP アドレスと独自ドメイン名で実施するための作業です。

タイトルにもありますようにこちらのパターンでは

  • 固定 IP アドレス
  • 独自ドメイン名

の 2 つが必要になります。

動的 IP アドレスと固定 IP アドレスの違いは名前そのまま外部からの接続に使用する IP が固定化されるということです。
固定 IP アドレスですので DiCE で定期的に IP アドレスを通知する必要はありません。
そのため安定した接続ができそうですね。

Dynamic DNS と独自ドメイン名では自分が好きなドメイン名が取得できるかどうかという違いがあります。
Dynamic DNS の場合はサービス提供元のドメイン名が固定で設定されますが独自ドメイン名の場合は
.com / .net / .jp といった好きなドメイン名を使用することができます。

固定 IP アドレスと独自ドメイン名の取得例を以下にまとめてみました。

[固定 IP アドレス]

固定 IP アドレスのサービスを提供しているところから割り当ててもらうのが一般的かと思います。
プロバイダによっては固定 IP アドレスのサービスをしているところもあるようですね。

私の場合はインターネットに B フレッツを使用していますので以下のサービスを利用することができます。

提供元

URL

価格

i-revo ゲーム専用コース

http://access.i-revo.jp/web/isp/campaign/mgo/index.jsp

月額 525 円

ASAHI ネット 固定 IP アドレスオプション

https://asahi-net.jp/service/fixedip/

月額 840 円

B フレッツの場合は同時接続セッション数が 2 セッションとなっていますので通常使用しているプロバイダの接続設定とは別に
固定 IP アドレスで使用する接続を設定することが可能です。
Bフレッツファミリー
# 参考として B フレッツファミリーのリンクを記載しておきます。B フレッツの場合ビジネス以外は 2 セッションみたいですね。

ルーター側の設定としては以下のような設定になります。
# 接続設定を 2 つ設定し、同時接続セッション数が 2 になっています
image?

設定方法は使用しているルーターによって異なると思いますのでここでは記載しませんが、最初にプロバイダの情報を
登録した際の設定をもう一度別の接続として設定することになると思います。

この設定をすることによりルーターが 2 つの IP を持つことができるようになります。
Web サーバーからインターネットに出る場合は動的 IP ではなく固定 IP を使用して外に出るようにするためには
また別の設定をする必要があります。

こちらもルーターによって設定方法が異なると思いますが、LAN 側の IP アドレスによって使用する接続先を
変更する設定ができると思います。
この設定をするとルーターは下図のような設定になります。

image

どちらの接続を使用しているかはコマンドプロンプトで以下のコマンドを実行してください。

tracert microsoft.com

通常のプロバイダの接続を使用する端末 (クライアント PC) と固定 IP の接続を使用する端末 (Web サーバー) で
コマンドを実行してみて tracert の結果が違っていれば別の接続設定を使用してインターネットに出ていることになります。

続いては独自ドメイン名の取得です。

[独自ドメイン名]

独自ドメイン名を簡単に取得できるサービスとしては以下のものが有名かと思います。

提供元

URL

価格

お名前.com

http://www.onamae.com/

年額 3,440 円 ~

VALUE DOMAIN

https://www.value-domain.com/

年額 990 円 ~

ムームードメイン

http://muumuu-domain.com

年額 950 円 ~

ドメイン名の情報は WHOIS 等で調べることができます。以下のようなサイトがあります。
Whois Gateway ドメイン検索

企業のサイトでは上記のようなサービスを使用していることは少ないかと思いますが個人サイトでは使用していることがありますので、
よく参照しているサイトと同じサービス提供元を使用してみようという考えてで良いかもしれません。

独自ドメイン名を取得するとそのドメイン名に IP を関連付ける必要があります。
このような登録を行える組織をレジストラというのですが大抵はサービスを提供しているところがレジストラとしての
機能を持っているはずですので独自ドメイン名を取得したら取得したところでドメイン名と IP アドレスの関連付けができます。動的 IP アドレスの設定と同様に DNS への反映にはしばらく時間がかかりますが、ある程度時間がたったら以下のコマンドで
自分が意図している内容が登録されているか確認します。

nslookup <ドメイン名>

以下のような結果が取得でき、回答のIP アドレスが固定 IP アドレスになっていれば登録完了です。

>nslookup engineer-memo.spaces.live.com
サーバー:
Address:? 172.0.0.1

権限のない回答:
名前:??? blu.pod1.services.spaces.live.com.nsatc.net
Address:? 65.55.102.120
Aliases:? engineer-memo.spaces.live.com

?

これで外部公開の準備は完了です。

IIS 7.0 虎の巻にも書かれていますが、Netcraft 社のサイトで接続ができることを確認します。
Netcraft
# 普通にブラウザを開いて URL にアクセスでも確認ができますが、家庭外のネットワークから確認したほうが確実です。

ドメイン名と固定 IP が DNS に登録されていて接続ができないのであればおそらくルーター側の問題かと思います。
ルーターに以下のような設定がされているかを確認してみて下さい。

  • 固定 IP アドレスのポート 80 にアクセスがあった場合は Web サーバーの IP アドレスにフォワードする
  • 固定 IP アドレスのポート 80 に対しての外部アクセスを許可する

サーバー側のファイアウォールでポート 80 が許可されているかも確認してみるとよいかもしれないです。
# IIS をインストールすると自動で許可されているはずですが。

image

設定完了後はネットワークは以下のような構成になっていると思います。

[設定完了後のネットワーク構成]

image?

固定 IP + 独自ドメインで公開する場合は定期的に IP を通知する必要はありませんので DiCE のようなソフトの導入は不要です。

他にも 固定 IP + Dynamic DNS という組み合わせでも公開することが可能です。
# MyDNS を使用して一度試してみました。

公開に関しての投稿はこれぐらいで。
次からはReporting Services の初期設定やコンテンツについてまとめていきたいと思います。

>[Web サーバー立ち上げ体験日記]Community Server 2008.5 SP1 のインストール その 1

Written by Masayuki.Ozawa

4月 22nd, 2009 at 2:54 pm

[Web サーバー立ち上げ体験日記]動的 IP アドレスと Dynamic DNS でサーバーを公開

leave a comment

<[Web サーバー立ち上げ体験日記]SQL Server のデータを Reporting Serivces で表示のイメージ

ぼちぼちサーバーを公開するための投稿をしてみようかと
まずは動的 IP アドレスでと Dynamic DNS でサーバーを公開する方法についてまとめてみたいと思います。

通常の家庭のネットワークは以下のような構成になっていると思います。
# リモートデスクトップの時に使用した図を変更しました。
?
[一般的なネットワーク]
image

インターネットからの接続はプロバイダから割り当てられている [動的 IP] になります。
動的とついているようにこの IP は定期的に変化します。
# プロバイダによって変更されるタイミングは違うようですね。

このような環境でサーバーを公開する際に使用するのが Dynamic DNS になります。
IIS7.0 虎の巻にも書かれている内容ですね。

[Dynamic DNS による DNS 名の取得]

Dynamic DNS を使用するとインターネットからドメイン名 (engineer-memo.spaces.live.com のような名前) を使用して
動的 IP に対して接続できるようになります。

以下のような流れで接続がされます。

インターネット → Dynamic DNS で取得したドメイン名 → プロバイダの動的 IP → Web サーバー

国内では以下のような Dynamic DNS サービスが提供されています。
# 以下のサービスは無償て利用できます。

サービス提供元

URL

私的 Dynamic DNS

http://www.mydns.jp/

Dynamic DO!.jp

http://ddo.jp/

ieServer.Net

http://ieserver.net/

CyberGate

http://cybergate.planex.co.jp/ddns/

これらのサービスの提供元から DNS 名を取得します。

取得した DNS 名を使用すればインターネットからの接続名を固定することができます。
ただし、接続名を固定できても動的 IP を使用していることは変わりませんので、DNS 名と動的 IP アドレスの
関連付けをする必要があります。

[DNS名と動的 IP の関連付け]

インターネットからの接続口は Dynamic DNS で取得できましたが動的 IP と DNS 名を定期的に関連付けないと
外部からの接続を固定することができません。Dynamic DNS のサービス提供元の URL に定期的にログインすることにより現在の動的 IP と取得した DNS 名を
関連付けることができますが、動的 IP はいつ変更されるかわかりませんし自宅からサービス提供元の URL に
ログインして変更しないといけません。

定期的に変更される動的 IP と DNS 名を関連付ける時に便利なソフトが [DiCE] になります。
DiCE はフリーソフトとして公開されており、以下の URL から入手することができます。
DiCE Dynamic DNS Client
# 64ビットの Windows Web Server 2008 でも正常に動作しています。

このソフトをサーバーで起動しておくと定期的なタイミングでサービス提供元にログインし現在の動的 IP を通知、
動的 IP が変更されたタイミングで IP を通知といった設定をすることができます。

DiCE は以下の手順で設定することができます。

  1. ダウンロードしたファイルを実行します。
  2. [次へ] をクリックします。
    image
  3. [次へ] をクリックします。
    # 私は 64 ビットの環境を使用しているので [Program Files (x86)] にインストールしています。
    image
  4. [標準] を選択し、[次へ] をクリックします。
    image
  5. [インストール] をクリックしてインストールを開始します。
    image
  6. [完了] をクリックします。
    image

これで DiCE のインストールは完了です。
続いて DiCE を設定します。

  1. DiCE を起動します。
  2. [イベント] → [追加] をクリックします。
    image
  3. 使用している Dynamic DNS の情報を入力し、[保存] をクリックします。
    [サービス] は使用している Dynamic DNS のサービス提供元を選択します。

    [ホスト名] は Dynamic DNS で取得したドメイン名からドメイン部を省いたものを入力します。
    # engineer-memo.spaces.live.com であれば engineer-memo.spaces がホスト名になります。

    [ドメイン名] は取得したドメイン名のドメイン部をを入力します。
    # engineer-memo.spaces.live.com であれば spaces.live.com がドメイン名になります。

    [ユーザー名] [パスワード] はドメイン名を取得した際に作成したユーザー情報になります。

    [IP アドレス] は空白で問題ありません。
    # 動的 IP アドレスのため

    [スケジュール] は [周期的] で [1時間毎] か [IP アドレス変化時] が良いかと思います。
    周期的に更新していれば DiCE を起動していれば設定しているタイミングで情報が更新されますので。
    image

  4. 保存したイベントを右クリック → [今すぐ実行] をクリックして Dynamic DNS に IP アドレスを通知します。
  5. ステータスバーに以下のような表示がされればDNS 名が 動的 IP の内容で更新されています。
    image
  6. DNS の更新には少し時間がかかりますので、しばらく待ってからコマンドプロンプトで以下のコマンドを実行します。

    nslookup <ドメイン名>

    以下のような結果が取得でき、回答のIP アドレスが DiCE に表示された IP アドレスになっていれば正常に
    DNS の更新がされています。
    # DiCE の右上またはステータスバーに IP が表示されています。

    >nslookup engineer-memo.spaces.live.com
    サーバー:
    Address:? 172.0.0.1

    権限のない回答:
    名前:??? blu.pod1.services.spaces.live.com.nsatc.net
    Address:? 65.55.102.120
    Aliases:? engineer-memo.spaces.live.com

これで DNS 名と動的 IP の関連付けは完了です。
無償版の DiCE はサービスとして登録はできないのでサーバーを起動したタイミングで手動で起動しておく必要があります。
スタートメニューのスタートアップに登録するかシステム構成のスタートアップに登録しておくとログイン時に自動的に
起動されるので便利だと思います。

?

[スタートメニューのスタートアップ]
image

  1. [スタート] → [スタートアップ] を右クリック → [エクスプローラ] をクリック
    image
  2. 開いたエクスプローラに [スタート] → [Sarad Software] → [DiCE DynamicDNS Client] をコピーします。
    image
    image
  3. スタートアップに [Dice Dynamic DNS Client] が登録されます。
    image?

これでスタートアップに登録完了です。

[システム構成のスタートアップ]
image

  1. ファイル名を指定して実行から [regedit.exe] を実行します。
  2. [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRum] を開きます。
    image
  3. [新規作成] → [文字列] をクリックします。
    ?image
  4. [新しい値 #1] で [F2] をクリックして、名前を設定します。
    # 名前はスタートアップに表示するための任意のラベルになります。
    image image
  5. 設定した名前をダブルクリックして [値のデータ] に [dice.exe] のフルパスを指定します。
    image

これでシステム構成のスタートアップに登録完了です。

どちらのスタートアップの登録状況もファイル名を指定して実行 → [msconfig] を実行して [スタートアップ] から
確認することができます。
場所が [HKLM] で始まっているものがレジストリに登録したものです。
パス指定になっているのはスタートメニューに登録したものになります。
スタートメニューに登録したものに関しては作業をしたユーザーでログインしないと有効ではありませんが、
レジストリに登録したものは全ユーザーに対して適用されるといった違いがある程度ですのでどちらで登録しても
問題はありません。
image?

これで一度ログオフしてログインすると DiCE が起動してくると思います。
この状態では最大化された状態で DiCE が起動してきますので DiCE の [環境設定] → [オプション] から
[最小化で起動する] を有効にしておいたほうが良いかもしれません。
image?
最小化で起動するにすると通知領域に最小化された状態で起動します。
image

DiCE は常に起動した状態にしておく必要がありますのでサーバーを起動したら一度ログインし、ログインした後は
[ログオフ] はせずに作業を終了する場合は [コンピュータのロック] でログインした状態を維持するのが良いかと思います。
# タスクスケジューラで [コンピュータの起動時] をトリガとして DiCE を起動してもよいかも。

リモートデスクトップについて考える際にも記載しましたがルーター側のファイアウォールの設定があるかと思いますので、
ポート 80 に対してファイアウォールの設定を変更する必要があるかと思います。

[設定完了後のイメージ図]

image

ざっくりとですがこれで動的 IP アドレスでサーバーを公開する手順は完了です。
次は固定 IP と独自 DNS でサーバーを公開する手順をまとめてみたいと思います。

>[Web サーバー立ち上げ体験日記]固定 IP アドレスと独自ドメイン名でサーバーを公開

Written by Masayuki.Ozawa

4月 21st, 2009 at 3:35 pm

[Web サーバー立ち上げ体験日記]SQL Server のデータを Reporting Serivces で表示のイメージ

leave a comment

<[Web サーバー立ち上げ体験日記]IIS のアクセスログを SQL Server に格納

手順は次回まとめようと思っていますが、まずはこんなことを考えていましたという投稿を。

SQL Server 2008 With Advanced Services ではローカルのデータを使用して Reporing Serivces を使用することができます。

また、レポートビルダー 2.0 も無償でダウンロードできますので IIS のアクセスログを SQL Server のテーブルに格納しておけば
以下のようなアクセスログのレポートが簡単に作成できます。

image

ODBC ログで直接 SQL Server に格納するのではなく、テキストのログファイルを LogParser を使用して SQL Server に
格納するようにすれば、安定したデータベースへのログ格納ができるかも。

ログ管理はもう少し考えないと駄目ですね。

スキルチャージプログラムの連絡期限も一カ月を切っていますのでぼちぼちコンテンツのほうも考えていかなくては。

>[Web サーバー立ち上げ体験日記]動的 IP アドレスと Dynamic DNS でサーバーを公開

Written by Masayuki.Ozawa

4月 20th, 2009 at 2:20 pm

[Web サーバー立ち上げ体験日記]IIS のアクセスログを SQL Server に格納

leave a comment

<[Web サーバー立ち上げ体験日記]SQL Server 2008 SP1 + CU1 のインストール

IIS のアクセスログは ODBC ログを使用することによって SQL Server のデータベースに格納することができます。

設定をするにあたり、以下のサイトを参考にさせていただきました。
# 私もこういった情報を提供できるように精進したいと思います。
IIS7 – post #57 – How to setup ODBC Logging in IIS 7.0
How to configure IIS 7.0 for ODBC logging?
【IIS7】 そろそろいいことばかりでなく、現実的なことも重要か

手順としては

  1. 役割サービスの追加
  2. SQL Server の設定
  3. ODBC の設定
  4. IIS の設定

になります。

[機能の追加]

ODBC ログを使用するために、IIS に [ODBC ログ] の役割サービスを追加します。

  1. サーバーマネージャ を起動します。
  2. [役割] の [役割サービスの追加] をクリックします。
    image
  3. [状態と診断] の [カスタムログ] [ODBC ログ] を有効にし、[次へ] をクリックします。
    ?image
  4. [インストール] をクリックします。
  5. インストールが完了したら [閉じる] をクリックします。

[ODBC ログ] をインストールすることにより、[C:WindowsSystem32inetsrvlogtemp.sql] が追加され、ODBC ログの
Class ID がレジストリに追加されるようですね。
image?
ODBC ログはカスタム ログとして実装されているのでカスタムログの役割サービスも必要になります。
# カスタムログの一種として実装されているイメージでしょうか。

[SQL Server の設定]

ODBC ログの記録用のデータベースとテーブルを SQL Server 上に作成する必要があります。
また、情報を見たところ SQL Server 認証でないとログを保存できなさそうですので Windows 認証から SQL Server 認証に
変更する必要があります。

  1. SQL Server Enterprise Manager を起動します。
  2. サーバー名を右クリックして [プロパティ] をクリックします。
  3. [セキュリティ] をクリックし、[SQL Server 認証モードと Windows 認証モード] を選択し、[OK] をクリックします。
    image
  4. サーバー名を右クリックして [再起動] をクリックします。
  5. [データベース] を右クリックして [新しいデータベース] をクリックします。
  6. 新しいデータベースを作成します。
    # 今まで気にしていなかったのですが SQL Server 2008 Express の標準 (model データベース) の復旧モデルは [単純] なんですね。
  7. [セキュリティ] を右クリックして [新規作成] → [新しいログイン] をクリックします。
  8. [SQL Server 認証] のログインを作成します。
    image?

    作成するユーザーは [ユーザー マッピング] で作成したデータベースのユーザーとして設定しておきます。
    image

  9. 作成したデータベースにユーザーが追加されていますので右クリックをして [プロパティ] をクリックします。
    image
  10. [データベース ロールのメンバシップ] として [db_datawriter] を設定しておきます。
    image
  11. 作成したデータベースに対して [C:WindowsSystem32inetsrvlogtemp.sql] を実行して ODBC ログ用の
    テーブルを作成します。
    image

[ODBC の設定]

作成したデータベースを使用する ODBC を作成します。

  1. [管理ツール] → [データソース (ODBC)] をクリックします。
  2. [システム DSN] タブの [追加] をクリックします。
  3. ドライバは [SQL Server] を選択し、[完了] をクリックします。
    image
  4. [データソース名]、[サーバー] を入力し、[次へ] をクリックします。
    image?
  5. [ユーザーが入力する SQL Server 用のログイン ID とパスワードを使う] を選択し、作成した SQL Server 認証の
    ユーザ情報を入力し、[次へ] をクリックします。
    image
  6. 既定のデータベースを ODBC ログ記録用のデータベースに設定し、[次へ] をクリックします。
    image
  7. [完了] をクリックします。
  8. [OK] をクリックして ODBC を作成します。

[IIS の設定]

ODBC ログの設定は GUI から行うことはできません。
IIS サービスマネージャでも以下のような画面が表示されます。
image?
[appcmd.exe] を使用するか、[applicationHost.config] を直接修正することによって設定します。
参考にさせていただいた URL の情報にコマンドが載っていますので今回はそれを使って設定してみたいと思います。

  1. コマンドプロンプトで以下のコマンドを実行し、ログの記録方法を [ODBC ログ] に設定します。
    # <サイト名> は ODBC ログを設定するサイト名を入力してください。

    cd %systemroot%system32inetsrv
    appcmd set site /site.name:"<サイト名>" /logFile.customLogPluginClsid:"{FF16065B-DE82-11CF-BC0A-00AA006111E0}"
    appcmd set site /site.name:"<サイト名>" /logFile.logFormat:"Custom"

  2. コマンドプロンプトで以下のコマンドを実行し、ODBC ログに使用する ODBC の情報を設定します。
    # 一部改行されている個所がありますが appcmd は一行で入力してください。また <> の個所は各情報を入力します。

    cd %systemroot%system32inetsrv
    appcmd set config "Default Web Site" /section:odbcLogging /dataSource:"<ODBC 名>" /commit:appHost
    appcmd set config "Default Web Site" /section:odbcLogging /tableName:"<ODBC ログ テーブル名>" /commit:appHost
    appcmd set config "Default Web Site" /section:odbcLogging /userName:"<SQL Server 認証ユーザー名>" /commit:appHost
    appcmd set config "Default Web Site" /section:odbcLogging /password:"<SQL Server 認証ユーザーのパスワード>" /commit:appHost

以上で ODBC ログの設定は完了です。
テーブルを検索したところきちんとレコードが格納されていました。

image

ただし、SQL Server に接続できないと [500] のエラーになってしまうようです…。
image

実運用で使うには少し厳しそうですね。
あと取得項目として [Referer] がないのも気になります。インターネット公開サイトでは欲しいですよねこの項目は。

カスタムログとして自作すると [500] のエラーも回避できるようになるのでしょうか??
# 取得項目は増やせると思いますが。

ODBC ログの設定はできたので、せっかくですから Reporting Service を使ってアクセスログを表示することにチャレンジしたいと思います。
# アクセスログを Reporting Serivce で表示したかったのでSQL Server Express に With Advanced Services を使っています。

>[Web サーバー立ち上げ体験日記]SQL Server のデータを Reporting Serivces で表示のイメージ

Written by Masayuki.Ozawa

4月 19th, 2009 at 3:47 pm

[Web サーバー立ち上げ体験日記]SQL Server 2008 SP1 + CU1 のインストール

leave a comment

<[Web サーバー立ち上げ体験日記]SQL Server 2008 Express のインストール

SQL Server 2008 の最新のバージョンは SP1 + CU1 ですので先ほどインストールした SQL Server 2008 Express を
最新のバージョンにアップデートしたいと思います。

SQL Server 2008 SP1 , CU1 のダウンロードは以下の URL から↓
SQL Server 2008 Service Pack 1
SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 1

[SQL Server 2008 Service Pack 1 のインストール]

  1. ダウンロードしたセットアップを実行します。
  2. [次へ] をクリックします。
    image
  3. [使用許諾契約書に同意する] を有効にし、[次へ] をクリックします。
    image
  4. すべてのコンポーネントが選択された状態にし、[次へ] をクリックします。
    ?image
  5. 確認が終了したら [次へ] をクリックします。
    image
  6. [更新] をクリックして SP1 を適用します。
    image image
  7. [次へ] をクリックします。
    image
  8. [閉じる]? をクリックしてインストールを完了します。
    ?image

続いて CU1 のインストールです。
# SP1 と手順は同じです。

[Cumulatie Update 1 のインストール]

  1. ダウンロードしたセットアップを実行します。
  2. [次へ] をクリックします。
    image
  3. [使用許諾契約書に同意する] を有効にし、[次へ] をクリックします。
    image
  4. すべてのコンポーネントが選択された状態にし、[次へ] をクリックします。
    image
  5. 確認が終了したら [次へ] をクリックします。
    image
  6. [更新] をクリックして CU1 を適用します。
    image image
  7. [次へ] をクリックします。
    ?image
  8. [閉じる]? をクリックしてインストールを完了します。
    image

これで SQL Server 2008 の最新のアップデートが適用された状態になります。
SQL Server Management Studio で以下のような SQL を実行してバージョンが [10.0.2710.0] となっていれば
アップデート完了です。
image

ついでに SQL Server 2008 の Books Online? (BOL) の最新版をインストールしておくと便利かと思います。
Microsoft SQL Server 2008 オンライン ブック (2009 年 1 月)

SQL Server 2008 Express のインストール直後の状態では、接続方法は [共有メモリ] のみ許可されていますので、
ローカルサーバーでのみ利用するのであれば [TCP/IP] を有効にする必要はないと思います。
# ポート 1433 / 1434 を開く必要もありませんので。
image?
次は勉強を兼ねて、インストールした SQL Server に IIS のログを出力する手順をまとめてみたいと思います。

>[Web サーバー立ち上げ体験日記]IIS のアクセスログを SQL Server に格納

Written by Masayuki.Ozawa

4月 19th, 2009 at 9:14 am

[Web サーバー立ち上げ体験日記]SQL Server 2008 Express のインストール

leave a comment

<[Web サーバー立ち上げ体験日記]IIS のデフォルトサイトの設定変更

サイトのバックエンドでは大抵情報を格納するためのデータベースサーバーが必要になります。

私は SQL Server が一番使いやすくので SQL Server 2008 の Express をインストールしておきたいと思います。
# WISP (Windows + IIS + SQL Server +PHP) か WISA (Windows + IIS + SQL Server + ASP.NET) を使う予定ですので。

今回は
MicrosoftR SQL ServerR 2008 Express with Advanced Services
使用したいと思います。

SQL Server 2008 Express との違いは

  • SQL Server 2008 Management Studio Basic。使いやすいグラフィカル管理ツールで、SQL Server 2008 Express を容易に管理できます。
  • SQL Server テーブルのプレーン文字ベースのデータに対するフルテキスト クエリの実行。フルテキスト クエリには、語、句、または複数の形式の語句を含めることができます。
  • ローカル リレーショナル データでの SQL Server Reporting Services レポートの実行。

になります。
Management? Studio / Fulltext Search / Reporting Services のサブセットが入っている感じでしょうか。

インストールすためには

が必要になります。
Windows Power Shell 1.0 はサーバーマネージャの [機能の追加] でインストールすることができますが他のものについては
ダウンロードしてインストールする必要があります。

以降の手順は前提モジュールのインストールが終了した状態からになります。

[SQL Server 2008 Express with Advanced Services のインストール]

  1. 事前に [Users グループ] のローカルアカウントを作成しておきます。
    セットアップでは作成したアカウントをサービスアカウントとして設定します。
  2. ダウンロードしたセットアップを実行します。
  3. [インストール] をクリックします。
    image
  4. [SQL Server の新規スタンドアロン インストールまたは既存のインストールへの機能の追加] をクリックします。
    image
  5. [次へ] をクリックします。
    image
  6. [使用許諾契約書に同意する] を有効にし、[次へ] をクリックします。
    image
  7. [インストール] をクリックします。
    image
  8. Windows ファイアウォールで [警告] が発生しますがこれは無視して [次へ] をクリックします。
    # 今回の SQL Server はローカルでのみアクセスを許可する設定にしますのでファイアウォールで特定のポートの許可もしません。
    image
  9. 必要な機能を選択し、[次へ] をクリックします。
    私は [データベース エンジン サービス] と [Reporting Services] と [管理ツール – 基本] をインストールしています。
    image
  10. インスタンス名を入力し [次へ] をクリックします。
    SQL Server Express の既定のインスタンス名 [SQLEXPRESS] は有名ですので私はインスタンス名を変更しています。
    image
  11. [次へ] をクリックします。
    image
  12. サーバーの構成を入力し、 [次へ] をクリックします。

    サービスのアカウントは作成しておいた [Users グループ] のアカウントを設定しています。
    [SYSTEM] は権限が強すぎるので公開用の SQL Server を構築する場合は控えたほうが良いかと思います。
    また、[SQL Server Browser] は外部に公開しないのであればサービスは起動する必要がありませんので [無効] にしておきます。
    # SQL Server を動的ポート構成にしない限りは [無効] で問題ありません。

    image
    照合順序はお好みで。
    SQL Server 2008 の日本語の最新の照合順序は [Japanese_XJIS_100] です。

    ?image

  13. データベース エンジンの構成を入力し、[次へ] をクリックします。

    [認証 モード] は導入するアプリケーションに依存すると思いますがまずはデフォルトのままで。
    [SQL Server 管理者の設定] については、SQL Server の管理権限 ([sysadmin 権限]) を持つするユーザーを設定します。
    ここで設定したユーザーは SQL Server に対してフルコントロールを持ちます。
    [Administrator] 以外のアカウントも設定できますので、サーバー管理者と SQL Server 管理者を分けたい場合は
    別のユーザーを設定します。
    image?

    デフォルトではすべてのシステムデータベースが [C ドライブ] に作成されます。
    C はシステムドライブのため、データベースは配置したくありません。
    IIS のコンテンツディレクトリ同様、私は別のドライブに全データベースを格納するように設定しています。
    image?

    [FILESTREAM] は使用しませんので無効にしたままにしています。
    image

  14. Reporting Services の構成は後で実施しますのでひとまず [レポート サーバーを構成せずにインストールする] を選択し、
    [次へ] をクリックします。
    image
  15. エラーと使用状況レポートは任意で設定して [次へ] をクリックします。
    # 今回はモニターですのでしたほうがいいのかな~と少し思っていますが…。
    image
  16. [次へ] をクリックします。
    image?
  17. [インストール] をクリックしてインストールを開始します。
    image image
  18. [次へ] をクリックします。
    image
  19. [閉じる] をクリックしてインストールを完了します。
    ?image

これで SQL Server 2008 Express のインストールは終了ですが、現時点の最新バージョンは SP1 + CU1 です。
次は SP1 と CU1 のインストールを行いたいと思います。

>[Web サーバー立ち上げ体験日記]SQL Server 2008 SP1 + CU1 のインストール

Written by Masayuki.Ozawa

4月 19th, 2009 at 8:49 am