2011年8月28日日曜日

このコンピューターのハードウェアで動作するように Windows を構成できませんでした

Windows 7 ベースまたは Windows Server 2008 R2 ベースのコンピューターでインストール エラーを「Windows セットアップ Windows コンピューターのハードウェアを構成できませんでした」

これに引っかかったのでメモ。
  • HDD が AFT (Advanced Format Technology)
  • Intel チップセットで RAID 構成
  • Windows 7 の SP なしディスクでインストール
この条件で Windows 7 をインストールすると、最終段階で「このコンピューターのハードウェアで動作するように Windows を構成できませんでした」となってしまう。Intel RST の F6 ドライバを読み込ませれば OK。なにもしなくても HDD は認識するので分かりにくい。

Windows 7 および Windows Server 2008 R2 と Advanced Format Disk の互換性を向上させる更新プログラムを入手できます

この更新は Windows Update で出てきた。オプションだったかどうかは失念。

2011年1月11日火曜日

ひかり電話の無線LANオプション

実家のBフレッツ(ひかり電話)で無線LANカードのオプションが契約されてた。NTTのロゴが入ったPCカードが2枚あるので何となくおかしいと思い、利用明細を出してみたら怪しげな600円が。


ひかり電話 料金表
ルーター利用料の無線LANタイプに注目。

ルーターに付けるのとノート用って意味だったんだろうけど、それが稼働状態でもなくて箱のまま。



父親は自分で設定なんかできる人じゃないので、回線工事の時に業者おまかせのはず。あと実家には無線が使える機器はないので使いようがない。ただカード置いてくってなかなかなもんだなと。

116でその料金が無線LANオプションであることを確認し、解約処理。当時の代理店での契約のいきさつを調べてくれと依頼したものの、そんなはっきりした記録は見つからず。このテの営業がいかにどうしようもないかということがよく分かる。

今の無線ルーターって5000円もあれば買えちゃうので、無線LANレンタルはルーターにつけてる分だけでも1年半で元が取れる計算。自分で契約してる人は、見直してみることをオススメ。あと最初は2枚借りてたけど、PCを買い換えたら無線LAN内蔵になって余ってるとかいうケースもありそう。

そういえば、以前にはDELL PCの修理でメモリを間違って交換されてたこともあった。DELLの保証は、増設した分はもちろん対象外だけど、それに起因する故障でなければ問題なくサポートしてくれる。

うちのはこういう構成。
標準:256MB x 2
増設:512MB x 2

これで標準の1枚がエラーしてたらしく、増設の方の1枚と交換されたという。デュアルチャンネルを片方だけ換えるってのもおかしいけど、しかもそれバッファローのロゴ入りで。

念のためと思ってケース開けてみて、それはどうやったら間違えるんだとあきれた。ちゃんと仕事してくれよと。

これはDELLサポートから修理業者にいって、増設メモリの調達できたモノの関係で、1GB x 2 にというオチ(笑)

2010年8月18日水曜日

ENMA, dkim-milter, milter manager で DKIM

目的

MTA で SPF 検証 と DKIM 署名・検証を行う。

※ほかに DNS で DKIM 署名とポリシーの設定が必要。

環境


OS FreeBSD 8.1-RELEASE
MTA Postfix 2.7.1

インストールするもの

  • dkim-milter
    DKIM の署名と検証を行う。検証は ENMA でできるので、署名機能だけ使用。
  • ENMA
    SPF, Sender ID, DKIM の検証を行う。
  • milter manager
    Postfix での milter はそれぞれのメールの条件で有効にしたり無効にしたりといった制御ができないので、それを行うためのデーモン。Postfix からは milter manager だけを参照し、プロキシのように動作する。
もともと SPF/DKIM の検証が優先だったため、このような構成となった。

すべて ports からインストールしたものとする。

dkim-milter 2.8.3 (mail/dkim-milter)

署名の鍵を作成

# mkdir /var/db/dkim
# dkim-genkey -d <domain name> -D /var/db/dkim -s <selector name>
# chown -R mailnull:mail /var/db/dkim/


selector name はなんでもいい。どの鍵で署名したかが分かるようにするぐらいの意味。

/etc/rc.conf
milterdkim_enable="YES"
milterdkim_flags="-b s"


-b で署名と検証のどちらを有効にするかを指定できる。デフォルトは両方とも有効。

/usr/local/etc/mail/dkim-filter.conf
Domain <domain name>
SubDomains Yes
KeyFile /var/db/dkim/<selector name>.private
InternalHosts /usr/local/etc/mail/internal.conf
Selector <selector name>
Socket local:/var/run/milterdkim/dkim-milter.sock
Canonicalization relaxed/simple


Canonicalization をこのように指定しないと、dkim-milter で署名したメールを ENMA で検証したときに fail していた。ほか詳細は dkim-filter.conf.sample を参照。

/usr/local/etc/mail/internal.conf
127.0.0.1
192.168.1.1/24


この IP アドレスから来て From が dkim-filter.conf の Domain パラメータと一致するメールに DKIM の署名をする。

ENMA 1.1.0 (mail/enma)


/etc/rc.conf
milterenma_enable="YES"


/usr/local/etc/enma.conf
milter.postfix: true

enma.conf.sample をコピーし、上記のところだけ変更する。

milter.socket を unix socket にしたら milter manager から呼ばれなくなるので、これは変更しない。おそらく socket のオーナーが root:wheel になるため。ソースでは socket を作ってから setuid/gid していた。

milter manager 1.4.2 (mail/milter-manager)


/etc/rc.conf
miltermanager_enable="YES"
/usr/local/etc/milter-manager/milter-manager.local.conf
define_milter("milter-dkim") do |milter|
  milter.connection_spec = "unix:/var/run/milterdkim/dkim-milter.sock"
end

dkim-milter の connection_spec は自動認識できなかったので、設定を手書き。

/usr/local/etc/postfix/main.cf
smtpd_milters = unix:/var/run/milter-manager/milter-manager.sock
milter_default_action = accept # milter がこけたら通すように


↓こんな結果になれば OK
% /usr/local/sbin/milter-manager --show-config
package.platform = "freebsd"
package.options = nil

security.privilege_mode = false
security.effective_user = "mailnull"
security.effective_group = nil

manager.connection_spec = "unix:/var/run/milter-manager/milter-manager.sock"
manager.unix_socket_mode = 0660
manager.unix_socket_group = nil
manager.remove_unix_socket_on_create = true
manager.remove_unix_socket_on_close = true
manager.daemon = false
manager.pid_file = nil
manager.maintenance_interval = 100
manager.suspend_time_on_unacceptable = 5
manager.max_connections = 0
manager.max_file_descriptors = 0
manager.custom_configuration_directory = nil

controller.connection_spec = "unix:/var/run/milter-manager/milter-manager-controller.sock"
controller.unix_socket_mode = 0660
controller.unix_socket_group = nil
controller.remove_unix_socket_on_create = true
controller.remove_unix_socket_on_close = true

define_applicable_condition("S25R") do |condition|
  condition.description = "Selective SMTP Rejection"
end

define_applicable_condition("Remote Network") do |condition|
  condition.description = "Apply milter only if connected from remote network"
end

define_applicable_condition("Sendmail Compatible") do |condition|
  condition.description = "Make a milter depends on Sendmail workable with Postfix"
end

define_applicable_condition("Authenticated") do |condition|
  condition.description = "Apply a milter only when sender is authorized"
end

define_applicable_condition("Unauthenticated") do |condition|
  condition.description = "Apply a milter only when sender is not authorized"
end

define_milter("milter-enma") do |milter|
  milter.connection_spec = "inet:10025@127.0.0.1"
  milter.description = nil
  milter.enabled = true
  milter.fallback_status = "accept"
  milter.evaluation_mode = false
  milter.applicable_conditions = ["Remote Network", "Unauthenticated"]
  milter.command = "/usr/local/etc/rc.d/milter-enma"
  milter.command_options = "start"
  milter.user_name = nil
  milter.connection_timeout = 300.0
  milter.writing_timeout = 10.0
  milter.reading_timeout = 10.0
  milter.end_of_message_timeout = 300.0
end

define_milter("milter-dkim") do |milter|
  milter.connection_spec = "unix:/var/run/milterdkim/dkim-milter.sock"
  milter.description = nil
  milter.enabled = true
  milter.fallback_status = "accept"
  milter.evaluation_mode = false
  milter.applicable_conditions = []
  milter.command = "/usr/local/etc/rc.d/milter-dkim"
  milter.command_options = "start"
  milter.user_name = nil
  milter.connection_timeout = 300.0
  milter.writing_timeout = 10.0
  milter.reading_timeout = 10.0
  milter.end_of_message_timeout = 300.0
end

2010年8月14日土曜日

VMware ESXi と SATARAID4P-PCI

VMware ESXi で 玄人志向の SATARAID4P-PCI が使えるという話を見たので、試してみた。

確かに認識はしたのだけど、RAID アレイはそれぞれ単独のディスクにしか見えない。考えてみればこんな安価なカードが HW RAID として使えるわけがないのだけど、ネット上にはどう見えるかという話はないので書いておく。

バージョンは VMware ESXi 4.1 ビルド 260247。

2010年2月14日日曜日

squid 3.0 用 REFERER パッチ

squid 2.6 用 REFERER 除去パッチ
に引き続き作成。

https://sites.google.com/site/tkitaxx/files/squid30_referer.diff

ACL で許可されていない場合に、同一ホストであれば通すように変更している。なのでこのパッチは ACL でデフォルト拒否にしておかないと意味がない。

ちなみに 2.6 のパッチは 2.7 にも当たることを確認済み。

2009年12月4日金曜日

Vista/7 でユーザープロファイルの場所を変更する

ユーザープロファイルを D ドライブにしたいとかいうお話。XP では winnt.sif の応答ファイルで割と簡単にできたんだけど。

レジストリエディタで HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList にある ProfilesDirectory を、ユーザプロファイルを作りたい場所(「D:\Users」とか)に変更する。変更したあとに初回ログオンしたユーザーは、こちらのパス以下にプロファイルができる。

と、ここまでは検索すれば出てくるお話。これだけだと Vista/7 でせっかく使い物になるようになった検索機能でひっかかってくれない。

検索インデックスを作成するように、ここで指定したフォルダをコントロールパネルの「インデックスのオプション」に追加する。

ちなみに「インデックスのオプション」はカテゴリ表示のままだとどこにも出てこない。どうなってるんだ…

2009年12月2日水曜日

Vista/7 の Cryptographic Services とプロキシサーバ

Windows Vista や 7 の Internet Explorer で HTTPS のサイトを閲覧したときに、証明書の検証に失敗することがある。

発生条件は以下の通り。
  • ポート 80 のインターネット接続にプロキシサーバが必要なネットワークであること
  • プロキシ設定を手動などログオンユーザーのみにしかしていないこと
  • サイトの証明書の上位チェーンが、デフォルトで Windows が持っていないものであること
原因は、Cryptographic Services がルート証明書をオンデマンドで取りに行くようになったが、これは Network Service のアカウントで動作するので…ということらしい。

Windows 7 での Cryptographic Services の説明
提供される管理サービスは、次の 4 つです。カタログ データベース サービス: Windows ファイルの署名を確認し、新しいプログラムをインストールできるようにします。保護ルート サービス: 信頼されたルート証明機関の証明書をこのコンピューターで追加および削除します。ルート証明書自動更新サービス: Windows Update からルート証明書を取得し、SSL のようなシナリオを有効にします。キー サービス: 証明書用にこのコンピューターを登録します。このサービスが停止している場合は、これらの管理サービスは正常に機能しません。このサービスが無効の場合は、明示的にこれに依存しているサービスは開始できません。
XP だとルート証明書の更新は Windows Update 経由なので、この問題は起きない。もちろんほかのブラウザでも問題なし。

解決方法は、WPAD を使うとか、グループポリシーでプロキシ設定をコンピュータごとにするとか。