2017年05月19日

【備忘録】Windows Server 2016 Essentialsを既存ADドメインに導入する

Windows Server 2012 R2 EssentialはFSMO役割を持つ唯一のドメインコントローラとして導入することしかできなかったが、Windows Server 2016 Essentialでは既存のADドメインに追加できるようになった。
その手順を簡単にまとめておく。

(1) インストール後、再起動してAdministratorでログオンすると「Windows Server Essentialsの構成」ウィンドウが表示されるが、無視してコントロールパネルを開く。ネットワークとインターネット→ネットワークの状態とタスクの表示と進み、「イーサネット」をクリック。
「プロパティ」ボタンをクリックし、「インターネットプロトコルバージョン4(TCP/IPv4)」を選択してから「プロパティ」ボタンをクリックする。
表示される画面で、スタティックIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNS関連の設定を行う。
設定が終わったら、ダイアログを閉じる。

(2) コントロールパネルから、システムとセキュリティ→システムへ進み、「設定の変更」をクリック。
「変更」をクリックして表示される画面でコンピューター名とドメイン名を入力し、「完了」をクリックするとドメイン管理者のユーザー名とパスワードが要求されるので、適切に入力する。ダイアログを閉じると再起動が要求されるので「今すぐ再起動」をクリック。

(3) 再起動後、Administratorでログオンすると再び「Windows Server Essentialsの構成」ウィンドウが表示されるが、無視してコントロールパネルを開く。
ユーザーアカウントから「アカウントの種類の変更」をクリックし、「追加」ボタンをクリック。
ドメイン管理者(Domain AdminsとEnterprise Adminsグループに所属していることが必要)のユーザー名とドメインを入力し、「次へ」ボタンをクリック。(追記:ドメインコントローラーへの昇格を予定している場合にはSchema Adminsのメンバーシップも必要なので、ここで追加しておくのが良いでしょう)
「管理者」を選択して「完了」ボタンをクリック。

(4) これでやっと、「Windows Server Essentialsの構成」が実行できる状態になった。
「次へ」をクリックすると管理者のユーザー名とパスワードが要求されるので、(3) で入力したユーザー名と対応するパスワードを入力し、「構成」ボタンをクリックする。

なお私が最初に試した際にはエラーとなってしまったが、「再試行」ボタンをクリックしたら正常に終了したので、あまり気にしないことにした。
それと関係あるかどうかわからないが、なぜかWindows Updateサービスが無効になっていた(Windows Updateを実行するとエラーコード0x80070422が表示される)ので手作業で有効にし開始する必要があった。

(追記)
ドメインコントローラーへの昇格を行う場合には、さらに下記の手順が必要となる。

Windows Server 2016 Essentialsでは証明機関がデフォルトでインストールされているが、この状態ではドメインコントローラーへの昇格ができないので、まずこれを削除する。
サーバーマネージャーを開き、「管理」→「役割の削除」を選択。
「次へ」ボタンをクリックし、「Active Directory証明書サービス」をオフにする。
「次へ」、「削除」をクリックする。
再起動が要求されるので再起動する。

再起動したら再びサーバーマネージャーを開き、「管理」→「役割の追加」を選択。
「次へ」ボタンをクリックし、「Active Directoryドメインコントローラー」を選択。
「次へ」をクリック。DNSも自動的に選択される。
「インストール」をクリック。
DNSを適切に構成し、黄色いフラグをクリックするとドメインコントローラーの構成画面が表示される。
適切にオプションを選んで進む。再起動が要求されるので再起動する。

フォレストの機能レベルがWindows Server 2003以降でないとドメインコントローラーのレプリケーションができないので、機能レベルをあらかじめ上げておく。

またFRS(ファイルレプリケーションシステム)は廃止される予定なので、今のうちにDFSRに移行しておくのが吉。
参考URL:
https://blogs.technet.microsoft.com/jpntsblog/2009/12/04/frs-dfsr-sysvol/
posted by ぽそこし at 20:00| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2017年05月17日

【備忘録】DELL PowerEdge T130にCentOS 7をインストールし、QEMU/KVM上の仮想マシンにWindows Server 2016 Essentialsをインストールする

題名の通りなんですが、主に自分のために備忘録として残しておきます。
もしかすると他の人の役に立つかもしれませんし…。
当然いろいろとインターネットを検索したわけですが、意外に同じことをやっている人は少ないようです。
また最近のLinuxディストリビューションはinitがsystemdになったりネットワーク関連の設定方法が大きく変わったりしているので、古い記事はあまりあてになりません。
そんなわけで、ご参考になれば。

ハードウェアはこんな感じのスペックで、DELLから新規購入しました。
CPU: Intel Xeon E3-1220 v5 3.0GHz
Memory: 8GB
Storage: Enterprise SATA 1TB 7200rpm x 2, Hardware RAID 1 (PERC H330 RAID Controller)
Network: Onboard GbE Dual Port (BCM5720)
メモリーは16GBくらいにしておけばよかったかも。

OSはCentOS 7にしました。

私はかなり強固なDebian派なんですが、DELLのマシンはRAIDコントローラーとオンボードEthernetコントローラーが特殊なのでDebianではかなり苦労するという事前情報があり、泣く泣くあきらめました。
まあ最近はディストリビューションによる違いもだいぶ少なくなっているそうですし…。
CentOSは、DELLで正式にサポートされているRHELのクローンという位置づけなので、たぶん大丈夫でしょう。

電源を入れ、F10を押してLifecycle Controllerに入り、OSの導入画面で「Any Other Operating Systems」を選択してCentOS 7のDVDを挿入すると、OSのインストールが始まります。
ベース環境としては「仮想化ホスト」を選択。アドオンは「仮想化ツール」を選択。
無事にインストールが終了し、再起動後、懸念していたRAIDやEthernetも認識された状態でCentOSが立ち上がりました。
コマンドプロンプトが表示されたら、rootでログイン。
とりあえず、パッケージを最新の状態に更新。
# yum update
グラフィカル環境を使いたいので、X11とGNOMEデスクトップをインストール。
# yum groupinstall x11
# yum groupinstall gnome-desktop
仮想化関係のツールをインストール。
# yum install virt-manager
# yum install virt-installer
# yum install virt-viewer
仮想マシンのパフォーマンスを最適化したいので、仮想ディスクはファイルではなく論理ボリュームにマッピングします。そのための論理ボリュームを作成。
# lvcreate -L 64G -n vm1 vg0
仮想マシンは外部との通信が自由にできるようにしたいので、ブリッジを作成します。こんな感じ。
# nmcli connection add type bridge ifname br0 con-name br0
# nmcli connection modify br0 ipv4.method manual ipv4.addresses "192.168.1.7/24"
# nmcli connection modify br0 ipv4.gateway "192.168.1.254"
# nmcli connection modify br0 ipv4.dns "192.168.1.254"
# nmcli connection modify br0 ipv4.dns-search "mydomain.jp"
# nmcli connection modify br0 stp FALSE
# nmcli connection add type bridge-slave ifname em1 con-name em1-br0 master br0
# nmcli connection delete em1
ここで一度リブート。

ログインプロンプトが表示されたら、一般ユーザでログインします。そして
$ systemctl start graphical.target
とするとGNOMEデスクトップが立ち上がります。
(起動時にgdmが表示されるようにするには
$ sudo ln -sf /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target
とする)

おっといけない、忘れるところだった。
さっき作成したbr0という名前のブリッジを、QEMUに認識してもらう必要があります。
そのため
$ sudoedit /etc/qemu-kvm/bridge.conf
として、このファイルの末尾に以下の行を追加します。
allow br0
これでネットワークの準備は完了。

先ほども書いたようにパフォーマンスを最適化したいので、仮想マシンのディスクやネットワークにはVirtIOドライバを使います。しかしWindowsのインストールメディアにはVirtIOドライバが含まれていないので(当然ですね)どこかからドライバを持ってくる必要があります。
実はRHELにはvirtio-winというパッケージが用意されているらしいのですが、CentOSにはありません(まあ、これも当然ですね、OSSではなくなってしまいますから…)。
Linux KVMプロジェクトにはWindows VirtIO Driversのソースがありますが、ディジタル署名されていないと64bitのWindowsのドライバとしては使えません。これは個人ユーザにとってはかなりの難題です。
ところが、なぜかFedoraでは公式パッケージには含まれていないものの、ディジタル署名済みのドライバが配布されているので、これを使います。
まず.repoファイルをインストール。
$ sudo wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
そしてvirtio-winパッケージをインストール。
$ sudo yum install virtio-win
これで、/usr/share/virtio-win/ディレクトリにVirtIOドライバのISOイメージとVFDイメージが入りました。

さて、いよいよ仮想マシンのインストールです。
仮想化マシンマネージャを使えばGUIでインストールできるのですが、どうも仮想ディスクの論理ボリュームへのマッピングがサポートされていないようなので、virt-installコマンドを使ってCLIでインストールします。
いろいろと試行錯誤したのですが、最終的に以下のようにしてうまく行きました。(行が途切れて表示されているかもしれませんが、これ全体を1行のコマンドとして入力します)
$ sudo virt-install \
--name vm1 \
--vcpus=1 \
--ram 2048 \
--os-variant=win2k12r2 \
--disk path=/dev/vg0/vm1,bus=virtio \
--network bridge=br0,model=virtio \
--graphics spice \
--disk path=/usr/share/virtio-win/virtio-win_amd64.vfd,device=floppy \
--cdrom ~/Downloads/ja_windows_server_2016_essentials_x64_dvd_9720931.iso
virt-installのマニュアルを見れば意味は大体わかると思うのですが、いくつか補足説明しておきます。
まず--os-variantですが、
$ osinfo-query os
としてもWindows Server 2016に相当するエントリが表示されなかったので、最も近いであろうと思われるWindows Server 2012 R2を指定しました。
--network bridge=br0,model=virtioは、先ほど作成したブリッジbr0にネットワークを接続する、という意味です。
--disk path=/usr/share/virtio-win/virtio-win_amd64.vfd,device=floppyは、先ほどインストールしたWindows用virtioドライバの入ったVFDイメージをフロッピーディスクとしてマウントしています。最初はISOイメージをCDROMとしてマウントしようと試みたのですが、どうやらvirt-installはCDROMを1ドライブしか認識してくれないみたいだったので、フロッピーを使うことにしました。

すべてうまく行っていれば、仮想マシンビューアが立ち上がり、Windows Server 2016 Essentialsのインストール画面が表示されるはずです。
ハードディスクの選択の画面で「ディスクがない」と警告が出ますが、あわてず騒がず「ドライバーの読み込み」をクリックすれば、VFDイメージに含まれるドライバの一覧が表示されます。ここから、Windows Server 2016用のEthernetとSCSIのドライバを選択し(Ctrlを押しながらクリックすると複数選択できます)、「次へ」をクリックすると無事インストールが進行するはずです。

ここまで来てしまえば、あとは通常の実マシンへのWindows Serverのインストールと同じ手順ですね。
うまく行きますように!
posted by ぽそこし at 17:00| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2016年06月18日

【備忘録】Windows Server 2008 R2でシステムパーティションの空き容量を増やす

うちは未だにWindows Server 2008 R2を使っているのですが、一昨日あたりから自動バックアップが失敗していることに気づきました。調べてみると、システムパーティション(Cドライブ)の容量が不足しているためシャドウコピーの作成が失敗しているようです。200MBくらいしか空きがない状態でした。

ここでクライアントマシンであれば、ゴミ箱を空にするとか「ディスクのクリーンアップ」をするとか、いろいろと手はあるのですが、サーバーマシンだと基本的にゴミ箱には何も入っていませんし、ディスクのクリーンアップツールはデフォルトではインストールされていません。オプション機能パックとかいうものをインストールすれば使えるようになるらしいのですが、ディスク容量がひっ迫しているのに新しいソフトをインストールするのも矛盾しているような気がします。

なんとか空き容量をねん出する方法がないかなーと思って検索してみたら、下記のブログがヒットしました。(ありがとうございます!)
くま同盟コンピュータLab「Windows Server 2008 R2でCドライブの空きを増やすもう一つの方法」

ここに書いてある通り、「dism.exe /online /Cleanup-Image /spsuperseded」というコマンドを入力すると、3GBほどの容量のねん出に成功しました!

20160618DISM2.png

ただ、めちゃくちゃ時間がかかったのと、このコマンド自体が一時ファイルを作るらしく、実行中に逆に空き容量が減って行ってしまうので、異常終了してしまうのではないかと気が気ではありませんでした…(結果的には、うまく行きましたけど)。

どのくらい時間がかかったかというと、プログレスパーが100%になるまでに30分以上、そこからコマンド終了まで45分くらいかかりました。(プログレスバーの意味ないじゃん!>マイクロソフト)
おかげで、今日のその後の予定が全部潰れてしまいました…。(-_-;)

これだけ苦労しても3GBしか空かないのですから、最初からシステムパーティションに大きめの容量を割り当てるに越したことはありませんね。
このマシンのインストール時には余裕を持ったつもりでシステムパーティションには32GBを割り当てていたのですが、今後は64GBくらい割り当てておくことにしよう…。
posted by ぽそこし at 19:00| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2013年12月04日

【備忘録】robocopyコマンドの盲点

Windows上でファイルをコピーするとタイムスタンプが保存されますが、フォルダーをコピーするとタイムスタンプがコピーした日時になってしまうのが普通でした(空のフォルダーの場合には、条件によってタイムスタンプが保存される場合もあるようです)。

つい先日、robocopyというコマンド(Robust Copy「堅牢なコピー」という意味らしいです)を使って「/DCOPY:T」というスイッチを付けると、タイムスタンプを保ったままフォルダをコピーしてくれるという情報を耳にしました。
実際に試してみると、確かにそうなっているみたいです。
このコマンド、私の使っているWindows 7やWindows Server 2008 R2では標準でインストールされていました。

でも…。
「/MOVE」スイッチ(ファイルをコピーではなく移動する)を付けるとダメみたいなんですね。
ちょっと考えてみたんですが、「/MOVE」スイッチを付けると、コピーが成功したファイルやフォルダは消されてしまうので、消されたファイルなりフォルダが入っていた親フォルダの変更日時が変わってしまうから、ということみたいです。
でも、バカですよね。はっきり言って。
せっかくフォルダのタイムスタンプを保持するスイッチがあるんだから、親ディレクトリのタイムスタンプを覚えておいて後で書き戻すとか、そのくらいやってくれても罰は当たらないと思うんですが。
まあ、マイクロソフトを信じた私が一番バカだったのかもしれません。

ちなみに(ご存知の方も多いかと思いますが)Unix系のOSで同じことをするには、ソースディレクトリへ移動して
find -depth -print0 | cpio -0pvdm target-directory

みたいなことをします。
いちおう解説しておくと、findの-print0とcpioの-0オプションは、空白を含むファイル名でも取り扱えるようにするため。
findの-depthオプションは、深さ優先探索をするというオプションで、親ディレクトリのほうが後に処理されることになるため、ファイルのパーミッションの問題などがなくなります。
まあ、tarを使っても同じようなことはできますが、cpioのほうが汎用的だと思います。
posted by ぽそこし at 22:30| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2013年12月02日

【備忘録】Windows Server Backupの古いバックアップを消す方法

きょう、うちのファイルサーバ(Windows 2008 Server R2)のコンソールを開いてみたら、数日前からバックアップが失敗しているではありませんか!
原因は、保存先ハードディスクの容量不足とのこと。
1TBの外付けハードディスクをバックアップ専用で接続しているのに…。

Windows Server Backupって、容量が足りなくなったときに自動で古いやつから削除してくれないの〜、とぼやきながら古いバックアップを消す方法を調べたんですが、かなりてこずりました。
結局、このマイクロソフト日本語TechNetフォーラムから、このTechNetの英語ブログにたどり着き、何とか古いほうからバックアップを削除して、空き容量を確保することができました。

手順を簡単に説明すると(英語のブログに書いてあるまんまですが)
(1) コマンドプロンプトを「管理者として実行」して、
(2) DiskShadow.exeを実行し、
(3) DiskShadowのプロンプトから
Delete shadows OLDEST (バックアップストレージのドライブ文字)
とする。
なお私のようにバックアップに専用ハードディスクを用意している場合、そこにはドライブ文字が割り当てられないので、
Mountvol
コマンドを実行して「マウントポイントなし」と表示されるドライブのGUID(\\?\Volume{7fc1871b-2e1f-11dd-a339-001e4fb7af35}のような文字列)を、ドライブ文字の部分に入力する。
(4) これを何回か繰り返すと、最も古いバックアップから順番に消去することができる。
ということでした。

まあ、でもじきにまた容量が足りなくなってしまうので、根本的な解決策はバックアップ用ハードディスクを買い足すことなんですが…。
この年末でお金のない時期に、ねえ。
(弱り目に祟り目と言うか、UPSのバッテリ警告アラームもその直後に鳴りだすし…)

ちょうどいい機会なので、自宅サーバの全体的な構成を含めて考え直すことにしますか。
posted by ぽそこし at 21:00| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2013年10月25日

nginx + mailman でメーリングリスト

今までメーリングリストの運営にはfmlを使ってきたのですが、以前の記事でも書いたとおり、FHSに準拠していないためDebianの公式パッケージから外れているという問題があり、それでもパッチを当ててだましだまし使ってきたのですが、最近のperlの更新に追随できなくなっていろいろと問題が出てきたため、思い切ってmailmanに乗り換えることにしました。

で、mailmanはwebベースの管理が前提のようなのでwebサーバを立てる必要があり、apacheでもよかったのですが最近話題のnginxにしてみようと思ってやってみたところ、意外とnginxの情報が少なくて苦労しました。
ここここを参考に何とか動かすことができたので、似たようなことを考えている人の参考になればと思い、自分へのメモを兼ねてここに書いておくことにします。

まずDebianのmailmanにはいろいろと問題があり、aptitude installしただけではうまく動きません。私の場合、以下の手順が必要でした。

# aptitude install mailman
# dpkg-reconfigure mailman
(ここでlanguage to supportにenとjaを指定し、default languageにjaを指定する。インストール時に同じことをやってもなぜか反映されないので、明示的にdpkg-reconfigureする必要がある)
# vi /etc/mailman/mm_cfg.py
(DEFAULT_EMAIL_HOSTとDEFAULT_URL_HOSTを必要に応じて書き換え)
# newlist mailman
# vi /etc/aliases
(newlist mailman実行時に表示されたエイリアスを追加)
# newaliases
# /etc/init.d/mailman start

それからfmlからの移行はここを見ながらやりましたが、Debianの場合にはcheck_perms -fはやらないほうがいいみたいです。
これをやってしまうとファイルやディレクトリのパーミッションが(mailmanは正しいと思っている)おかしなことになってしまい、後でwebインタフェースがうまく動かない原因となるようです。(addgroup www-data listとすればうまく行くかも)
<追記>
Debianのデフォルトのパーミッションだと、保存書庫への追加がうまく行かないみたいです。
# addgroup www-data list
# addgroup list www-data
としてから、check_perms -f とすれば、うまく行くことを確認しました。
</追記>

あと、nginxでCGIを使うにはfcgiwrapというパッケージが必要となるようです。

# aptitude install nginx
# aptitude install fcgiwrap

あとはここを参考にnginxの設定をすればwebインタフェースが動くはずですが、cgi-bin/mailman/listinfoやcgi-bin/mailman/adminは表示されても、その先(cgi-bin/mailman/listinfo/MLやcgi-bin/mailman/admin/ML)が表示されません。
困ったなと思ってWebを検索してみたところ、このサイトが見つかりました。要はfcgiwrapは古いnginxのふるまいを回避するためにPATH_INFOをいじってしまうらしいんですね。fcgiwrapの1.02以上を使えば大丈夫、とのことらしいんですが、残念ながら私の使っているDebianのoldstable(squeeze)に入っているfcgiwrapは1.01なのです…。
さっさとstable(wheezy)にアップグレードしろ、という話なのでしょうけど、現用のサーバのアップグレードは大仕事なので、なかなか踏み切れません。
幸い、wheezyのfcgiwrapのパッケージ情報を調べたところ、squeezeでも依存関係は満たしているようなので、以下のような内容の/etc/apt/preferencesファイルを作成することによって、無事wheezyに入っているfcgiwrap-1.03をインストールして、webインタフェースが使えるようになりました!

/etc/apt/preferences:
Package: fcgiwrap
Pin: release n=wheezy
Pin-Priority: 600

Package: *
Pin: release n=wheezy
Pin-Priority: 80

あ、もちろん/etc/apt/sources.listも書き換えて、wheezyのリリース情報を取ってくるようにしないといけないですね。
posted by ぽそこし at 00:21| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2013年09月13日

Google Translator Toolkitに勝手に翻訳メモリを書き換えられた!

Googleが公開している数多くのツールの中に、Google Translator Toolkitというものがあります。
もちろん機密性のある文書の翻訳に使うことはできませんが、公開されている文書の翻訳には便利なので私も時々使っていました。

ところが先日、翻訳途中の文書を開いてみると、翻訳メモリの内容が勝手に書き換えられていることがわかりました。

翻訳メモリとは、原文と翻訳文とを対比したデータベースです。
いわゆる「翻訳ツール」というもの(Google Translator Toolkitもその一種です)では、この翻訳メモリを使って、以前翻訳したことのある文章が出てくるとその翻訳文を提示してくれます。全く同じでなくても、例えば70%一致したものを提示してくれたりもするので、それを適当に修正すれば翻訳文ができ上がるわけです。技術文書のように、似たような文章が何度も出てくるような場合には、非常に便利な機能です。

つまり、翻訳メモリには私が今まで行った翻訳作業のノウハウが、すべて詰まっているわけです。
それが勝手に書き換えられていた……どれだけ私が怒りを感じているか、想像していただけますか?

具体的に私が気が付いた点としては、私は「protocol」という英単語をほぼ必ず「プロトコル」と訳すのですが、これが全部「プロトコール」に書き換わっていたのです。
外務省のお役人ならともかく、ネットワーク技術に関する文書で「プロトコール」なんて訳語を使うわけがありません。

もちろん、Googleには抗議のメッセージを投げましたが、全く音沙汰がありません。
無視して、そんなことはなかったことにするつもりなのでしょう。

Googleへの不信感は最近とみに高まっていましたが、この件で決定的となりました。
ユーザから預かったデータを、勝手に書き換えて知らんぷりしているのです。
何が「Don't be evil」だ。ふざけるな!
posted by ぽそこし at 18:50| Comment(2) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2013年01月18日

英語配列のUSBキーボードを使う(付:右AltでIME切り替え)

私は英語配列のキーボードしか使えないのですが、困ったことにPCにキーボードを接続すると誤って日本語配列だと認識されてしまうことがあります。
対策として、PS/2キーボードであれば、レジストリエディタでキー
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters

LayerDriver JPN
OverrideKeyboardIdentifier
OverrideKeyboardSubtype
OverrideDeyboardType
の値を書き換えるという方法があったのですが、最近主流のUSBキーボードではうまく行かないことが多いようです。

まさに私も数日前からこの問題に悩んで、いろいろと試行錯誤していたのですが、このブログ記事を参考にして試してみたところ、うまく行きました!
どなたかは存じませんが、ありがとうございます。_(..)_

ただ、上記ブログの記事とは多少異なる点もありましたので、それらを中心に書いておきます。
ちなみに私の環境は、Windows 7 (64bit)です。

・私の場合、HIDキーボードデバイスのプロパティには「デバイス インスタンス ID」という項目はなく、代わりに「デバイス インスタンス パス」という項目があったので、それを使いました。内容は同じのようです。
・HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID配下のレジストリのキーの名前ですが、同じVIDやPIDでも「VID_046D&PID_C505&MI_01&Col02」のように、最後にMIとかColとかついているキーがいくつかありました。これらのうち最初のもの(私の場合「VID_046D&PID_C505&MI_00」)を選択するとよいようです。
・サブキー「Device Parameters」にはすでにKeyboardSubTypeOverrideとKeyboardTypeOverrideという名前があり、それぞれ値が2と7になっていました。これらはPS/2キーボードの場合のOverrideKeyboardSubtypeとOverrideDeyboardTypeに対応するようです。
・というわけで、KeyboardSubTypeOverrideのみ0に書き換えてリブートすると、見事にキーボードが英語配列となりました!

めでたし、めでたし。
言わずもがなですが、レジストリを吹っ飛ばすと大変なことになるので、必ずバックアップを取って、自己責任で行ってくださいね。

長くなったので、本文はここまでとします。
「右AltでIME切り替え」を読みたい方は、「続きを読む」をクリックしてください。

続きを読む
posted by ぽそこし at 16:24| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2012年08月14日

【備忘録】DebianとYAMAHA RTX1100の間でIPsec tunnelがつながった

ふー。だいぶ苦労しましたが、IPsec tunnelがつながりました。
構成は、イニシエータがYAMAHA RTX1100 Rev.8.03.90、レスポンダがDebian 6 amd64(さくらのVPS 2G)。
レスポンダ側のIKEサーバーは、racoonです。
はい、「え、いまさらracoonというかKAME?」「IKEv1しかサポートしてないじゃん!」などという声が上がるのは十分承知しております。
最初、openswanで設定しようとがんばっていたんですが、これがなかなか一筋縄ではいかないんです。何と言っても設定項目が膨大だし、ドキュメントもfreeswan時代のものがほとんどで資料が少ないんです。
どうしたものかなー、と思って検索してみたら、英語ですがこういうブログ記事が見つかったわけです。要は、racoonのほうが簡単に設定できるよ、と。
Debianにはracoonのパッケージもありますし、それに実はRTX1100ではIKEv1しかサポートしてないし、認証はPre-Shared Keyしかサポートしていないという事実がわかったので、なんだそれならracoonでも十分じゃん!となったわけです。あと、私のIPsecの知識が10年前で止まっているのでIKEv1のほうが馴染み深かった、という理由もあります(爆)。
イニシエータ側のIPアドレスが不定なので、Pre-Shared Keyを使うということはつまりアグレッシブモードを使うことになるわけで、これにはセキュリティリスクがあるという話も承知しておりますが、ま、XAUTHを使って二重に認証を行えば問題ないだろうと判断しました。
一応、セキュリティには配慮して、暗号化はAES、ハッシュはSHA-1、DHグループはmodp1024を使う方針で、レスポンダ側のracoon.confは以下のようになりました。

/etc/racoon/racoon.conf:
path pre_shared_key "/etc/racoon/psk.txt";
# path certificate "/etc/racoon/certs";

remote anonymous {
exchange_mode main,aggressive;
my_identifier address XX.XX.XX.XX;
peers_identifier fqdn "fully.qualified.domain";
dpd_delay 20;
ike_frag on;
nat_traversal on;
passive on;
initial_contact off;
generate_policy on;
lifetime time 24 hour;
mode_cfg on;
verify_cert off;
proposal {
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method xauth_psk_server;
dh_group modp1024;
}
}

sainfo anonymous {
lifetime time 12 hour;
encryption_algorithm aes;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}

mode_cfg {
network4 192.168.2.0;
netmask4 255.255.255.0;
dns4 XX.XX.XX.XX;
auth_source pam;
}

あとはエラーログを見ながらトライアル&エラーでイニシエータをいじったところ、以下のような設定で無事つながったようです。

YAMAHA RTX1100側の設定(IPsecに関連する部分のみ):
tunnel select 1
ipsec tunnel 101
ipsec sa policy 101 1 esp aes-cbc sha-hmac
ipsec ike encryption 1 aes-cbc
ipsec ike group 1 modp1024
ipsec ike hash 1 sha
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on dpd 20 5
ipsec ike local address 1 192.168.0.254
ipsec ike local name 1 fully.qualified.domain fqdn
ipsec ike pre-shared-key 1 *
ipsec ike remote address 1 XXX.XXX.XXX.XXX
ipsec ike xauth myname 1 user passwd
tunnel enable 1

んで最後に、
ipsec auto refresh on
でIKEが起動します。

いやあ、めでたしめでたし。
まだちょっとルーティングとかDNSとかNATトラバーサルの設定が詰めきれてないんですが、それはまあ難易度はたいしたことないので、おいおいやってくということで。

純粋なIPsec tunnel(IPsec/L2TPではなく)を張ったという話はあまり検索しても出てこないようなので、参考になれば幸いです(L2TPはオーバーヘッドが大きいので、個人的には嫌いなのよね…)。

それにしてもXAUTHのInternet DraftがRFCにもならずに消滅していると知ったのは衝撃的だったなあ。
ほとんどのIPsecの実装にはXAUTHが含まれているというのに、これでいいんだろうか?

続きを読む
posted by ぽそこし at 00:40| Comment(3) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2012年08月12日

さくらのVPS

7月いっぱい初期費用無料キャンペーンをやっていたさくらインターネットのVPS 2Gサービスに期限ぎりぎりに申し込みをしたんですが、なかなか時間が取れず、この週末にやっとセットアップをしています。
やったことは、以下のとおり。

・OSの再インストール(debian 6 amd64)
だってCentOSよりDebianのほうが慣れてるんだもの…。
あと、lvmを使ってパーティショニングをやり直したかった、というのも理由のひとつです。
マニュアルとは初期設定が異なっていたので、ちょっと戸惑いましたが、まあLinuxのインストールに慣れている人なら問題ないでしょう。

・セキュリティの強化
インストール直後のsshdの設定が「PermitRootLogin yes」という凶悪なものだったので、まずそれを修正。
Debianの初期設定はnoだったはずなんだけどなあ…。
あとはhardenを入れたり(portmapとnfs-commonをアンインストール)、fail2banを入れたり。
iptablesの設定をしたところ、近所の仮想ホストからudp port 138 (netbios) のブロードキャストやigmp queryのマルチキャストが飛んできていることが判明。実害は(たぶん)ないのですが、念のためサポートに止めてもらうよう連絡しました。

あとはメールの設定なんだけど、2週間のお試し期間内にはsmtpポートが閉じられちゃってるらしいので、お試し期間が明けてからかなあ…。

それからIPsecトンネルも張りたいんだけど、openswanパッケージをインストールしただけで止まっちゃってます。もはやKAMEが標準だった時代は過去のものなのね。
posted by ぽそこし at 23:26| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2012年01月24日

Symbianスマートフォンを使い倒す

何をいまさら…と思われるでしょうが、最近NokiaのSymbianスマートフォンを愛用しています。

いや、約2年前にiPhone 3GSを入手してずっと使ってきているんですが、最近いろいろとストレスを感じるようになってしまったんです。一番いらだつのが、アプリを使っていると突然落ちること。ツイッターでツイートを書き終わって投稿する直前とか、会心の写真を撮影した直後にこれが起こると、かなり頭にきます。まあ4Sにアップグレードしろということなんでしょうが、たかが2年前の最新機種でまだ月月割も終わっていないのに新機種に乗り換えるのもちょっともったいないと思いませんか? 「実質無料」と言っても、フルに割引を受けるには分割払い料金以上にソフトバンクのサービスを利用しないといけないんですよ。日本で普通に手に入るiPhoneはテザリングもできないし、SIMロックがかかっているのでJBしない限りSIMを差し替えて海外で使うという、ごく当たり前の使い方さえできないのに。
また特に地方へ行くと、ソフトバンクのカバレッジがかなり悪いのも頭の痛いところです。
そういうこともあって、バックアップ機としてSIMロックフリーのスマートフォンがほしくなってきたわけです。
まあ普通ならAndroidなんでしょうけど、IDEOSという機種を入手して使ってみたところ、あまりに電池が持たないことに愕然としました。テザリングしていると1日持たないんですよ! これではちょっと使いものにならないでしょう。
で、マイナー好きの私は、いまや風前の灯となっているSymbianのエントリー機を買ってみたんですが、これが意外に使えることがわかったんです。

あ、皆様ご存知のとおり、現在Nokiaは日本からほぼ完全に撤退しているので、キャリアにサポートされている現行機種はありません。技適が…という話もあるので、以下の話は海外在住の友人から、日本でも海外で使っているのと同じ機種の携帯を使いたいんだけど…という相談に対する回答だと思ってください。(^_^;)

以上の経緯を理解した上で、Symbian機のカスタマイズの方法を知りたいという物好きな方は、以下の「続きを読む」をクリックしてください。

続きを読む
posted by ぽそこし at 22:47| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2011年12月07日

[備忘録]SCSIハードディスクのホットスワップ

うちのメインLinux サーバーは、SCSIハードディスクでソフトウェアRAIDを組んであります。
SCSIといってもいまどきのSAS (Seriral Attached SCSI) ではなく、昔ながらのパラレルSCSIです。
このうちsdbが、今までも時々リードリトライを起こしていたのですが、先日ついにunrecoverable read errorを起こして、自動的にRAIDドライブからはずされてしまいました。
当然、予備のハードディスクと交換するわけですが、普通はサーバーの電源を落として交換しますよね。
実はうちのサーバーのハードディスクはホットスワップ対応のFCコネクタで、それ用のケージに入っています。
そういうわけでホットスワップに挑戦してみたところ、ハード的な交換はうまく行ったのですが、コマンドを打ち間違えて一時はちょっと大変な状況に陥ってしまいました。f(^_^;)
まあ何とか復旧したのでその顛末と、正しい(と思われる)手順を今後の参考のために以下に記録しておきますので、興味のある方は「続きを読む」をクリックして、お読みください。

興味のない方(ほとんどだと思いますが)は、ここでさようなら〜。

続きを読む
ラベル:Linux
posted by ぽそこし at 21:34| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2011年11月26日

ASAHIネットのWiMAX契約しちゃいました

まず最初に断っておきますが、私はASAHIネットの回し者ではありません。(笑)

ただ、固定IPが一番安いのがASAHIネットとBフレッツの組み合わせなので、使っているというだけです。
それ以外のオプションサービスとかはほとんど契約していなかったのですが、先日ASAHIネットから電話がかかってきました。
「WiMAXを契約すると、固定IP料金がタダになる」というのです。

実は私も、ASAHIネットのホームページを見て、そのことは知っていました。
ただ、台風が来たくらいで大規模障害を起こすようなWiMAXをメイン回線にするのはほとんど自殺行為だと思って、あまり興味を持っていなかったわけです。
ところが電話で説明を聞いてみると、今の契約にWiMAXを付け加えるだけでも、フレッツのほうの固定IP料金がタダになるとのこと。それを聞いて、がぜん興味がわいてきました。

旅行や外出時を考えると、モバイル回線は必要です。
私は今年の夏まではイーモバイルを、その後は日本通信(b-mobile)のFairというサービスを使っていました。(他にイオン限定プランの100kbps/月額980円というのも契約してるけど、これは非常用)
Fairは、120日か1GBのどちらかに達するまで、8350円(追加チャージの場合)で速度制限なしの回線が使えるというサービスです。(他にも、30日/1GBで3480円というプランも最近できたようです)
頻繁に外出する人なら1GBくらいすぐに行ってしまうでしょうが、私は仕事がら家にいることが多いので、このサービスでも何とかなっていました。ただ、データ量の残りを気にしながら通信するというのも、ちょっと面倒です。また、なんとなく応答性が悪いのも気になっていました。たぶんDoCoMoから日本通信に回線を卸売りする段階で、帯域制限をかけてるんでしょうね。

計算してみると、ASAHIモバイルWiMAXの定額プランは、月額3590円。固定IP料金の840円がタダになると考えれば、実質2750円になります(まあ、ここらへんは考え方次第ですが)。
この料金は日本通信の1GB定額プランより安いですし、Fairと比べても違いは数百円です。
残りデータ量を気にしなくてすみますし、WiMAXのカバーエリアもだいぶ広がったようですから、十分乗り換える価値はあるでしょう。
しかもWiMAX-WiFiルーターはタダで提供してくれるというので、契約しちゃいました。
ルーターが届くのに1週間程度かかるということでしたが、実際には3日後に届いたので、さっそく使い始めています。

今のところ、なかなか快適です。通信速度にはまったく不満はありません。
ただし、やはり屋内だと電波が多少拾いづらいようですが、まあこれは想定内。
ルーターの電池は7時間くらいしか持たないのですが、今まで使っていた日本通信のIDEOSというWiFiアクセスポイント機能を持ったAndroidフォンも電池は1日持たなかったので、それほど不満はありません。

というわけで、ASAHIネットで固定IPを使っている人は少ないでしょうが、そういう人はWiMAXを考えてみてもいいのでは?という話でした。
posted by ぽそこし at 20:17| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2011年10月10日

iPhoneのi.softbank.jpメールアドレスの変更

iPhoneのi.softbank.jpのメールアドレスを単純な文字列にしていたら、いつの間にかスパムメールが毎日のように来るようになってしまいました。
幸い、どこにも登録していないアドレスなので、変えてしまおうと思ったのですがやり方を忘れてしまいました。(^_^;)ゞ
人に聞いたり、試行錯誤したりして何とかできましたので、ここにまとめておきます。

「設定」→「電話」→「ソフトバンクモバイルサービス」→「My SoftBank」
とすると、Webブラウザが立ち上がり、ソフトバンクモバイルのホームページが表示される。
My SoftBank「ログインはこちら」をタップ。
携帯電話番号とパスワード(8〜16桁)を入力して、「ログイン」をタップ。
「メール設定(Eメール(i))」をタップ。
「メールアドレス変更」をタップ。
新しいメールアドレスを入力し、「確認」をタップ。

その後、一括設定プロファイルをダウンロードされるためのURLを記載したSMSが届きます。
このURLはWiFiからはアクセスできず、3Gネットワークからアクセスする必要があるそうです。
ですので、WiFiを使っている場合にはここで設定→WiFiをオフにしてから、上記SMSのURLをタップしてプロファイルをダウンロードし、「インストール」をタップしてインストールします。
その後、メールを開いてアカウントの下のi.softbank.jpのアドレスが更新されていることを確認し、ここをタップして正常にメールの送受信ができるかどうか試してみます。
posted by ぽそこし at 00:13| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2011年10月08日

McAfeeオールアクセスを試してみました

ウィルス対策製品として、今までずっとSymantecのNortonシリーズを使ってきたのですが、最近発売されたMcAfeeオールアクセスというセキュリティ製品がなかなかよさそうだったので、ちょうど今使っているNortonが1年間の期限を迎えることもあり、購入してみました。

McAfeeオールアクセスの特徴は、
・インストールする端末数に制限がない(他の個人向け製品はたいてい3台まで)
・PC、Mac、スマートフォン、タブレットなど多種類の端末に対応している
・Symbian(Nokiaの独自モバイル向けOS)に対応している(個人的にはこれが重要、日本ではマイナーなので対応しているセキュリティ製品があまりない)
ということです。その代わり、通常のセキュリティ製品に比べてちょっと値段が高くなっています(と言っても1万円弱)。
私が通常使うパソコンは2台程度なのですが、マシン自体はたくさん持っていますし、仕事上検証のために追加でWindows OSをインストールして使う場合もあるので、端末数に制限がないのは助かります。
Macは持っていないのですが、仕事上の必要性は日に日に増していますし、たぶん次に買うマシンはMacになると思っているので、その場合でもセキュリティ製品を買い増す必要がないのもうれしいです。
また、最近AndroidやSymbian端末を購入し、これらのセキュリティについても考えなきゃなー、と思っていたところだったので、ちょうどいいと思いました。

で、インストールして2日ほど使ってみた感想ですが…
結論から言うと、あまりお勧めしません。

不満に思った点としては、
・iPhoneやiPadなどのApple製品に対応していない(これはApple側のポリシーによるもので、調べれば事前に分かったことなのですが)
・SMS(ショートメッセージ)が使えない環境ではインストールできない
などがあげられます。

2点目については、説明が必要でしょう。
私はAndroid機とSymbian機については、b-mobile(日本通信)のデータ専用プランを使っています。このb-mobile Fairイオン専用プランなどでは通話ができず、SMSも使えません。
ところが、McAfeeオールアクセスのスマートフォンへのインストール後、認証のために電話番号を入力してSMSを送信する必要があるのです。これをスキップすることはできません。また、ここで入力した電話番号は端末IDとしても使われます。

McAfeeのサポートに連絡してみたところ、
「現行のスマートフォン向け製品は
SMS対応機種であることがご利用の条件となりますので
データ専用プランでお使いの場合は、インストール・初期登録が
行えません。」
という回答でした。
それならそうと、購入前に分かるようにしておいてほしかったと思います。
(追記:一応「動作環境」の下のほうにはその旨記載があるようですが、分かりにくい…)

一応、SIMを通話可能なDoCoMoのものと差し替えて、インストールすることはできました。
その後、一度電源を落としてSIMを差し替えるとPINの入力が要求され、その後「安全なSIMを追加登録しました」というメッセージが出るので、一応使えてはいるようです。
しかし、上記のように電話番号は端末IDとしても使われるので、同じ通話可能なSIMを複数の端末で使いまわすことはできないと思われます。

通信料金を節約するために、スマートフォンやタブレットでb-mobileなどのデータ専用プランを使っている人は私以外にも多いと思うので、SMSを使わなくてもインストールできるようにしてもらえれば、非常にありがたいのですが…。
posted by ぽそこし at 19:58| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2011年06月25日

[備忘録] Debian Squeezeにfmlをインストール

先日、自宅のメールサーバのディスクが壊れたので新規マシンにDebian Squeezeをスクラッチインストールしました。だいたい元の環境は取り戻せたのですが、ひとつだけ使えなくなってしまったサービスがあります。メーリングリストです。

前のマシンでは、昔インストールしたfmlをずっと使い続けていたのですが、fmlはFHS (File Hierarchy Standard) に対応していない(作者の深町さんなりのお考えあってのことだとは思うのですが)などの問題があり、Debianパッケージとしてはもう提供されていないのです。
いろいろと代替メーリングリストサーバプログラムを調査してみたのですが、どうもfmlと同等の機能を提供できるものはなさそうなので、Debianパッケージとなっていないfmlをインストールすることにしました。

最初に、インストール先のディレクトリを決めておかなくてはなりません。今回は、なるべくFHSに近づけるため、本体は/opt/fmlにインストールし、スプールディレクトリは/var/opt/fmlを使うことにします(完全にFHSに準拠することはできません;そのためには、例えば設定ファイルは/etc/opt/fmlの下におく必要があります)。

まず、fmlのグループとユーザを作成します。

% sudo addgroup --system fml
% sudo adduser --system --home /opt/fml --ingroup fml

これで/opt/fmlは作成されるので、次にスプールディレクトリを作成します。

% sudo mkdir /var/opt/fml
% chown fml.fml /var/opt/fml

fmlのソースを取得して展開します。stableバージョンとしては4.0.4が出ているのですが、Debianメーリングリストの運用には4.0.3が使われていることもあり、こちらを使用することにします。

% ftp ftp.fml.org
ftp> get /pub/fml/release/fml-4.0.3.tar.bz2
ftp> quit
% tar xfj fml-4.0.3.tar.bz2

Debian-users:55112の武藤さんのメッセージ中のパッチ(Debian.patchというファイル名で保存されていると仮定します)を当てます。

% cd fml-4.0.3/src
% patch <Debian.patch
% cd ..

ユーザfmlでインストールします。こうすると、MLの設定などはすべてユーザfmlにsudoして行う必要があるので運用はちょっと面倒になりますが、インストールは簡単ですし、予期しない問題も起こりにくいようです。

% sudo chown -R fml.fml .
% sudo -u fml make install
...

最初の質問には、personal(これがデフォルトになっているはずです)と答えます。
次にドメイン名とFQDNを聞かれるので、適宜答えます。
続いてインストールディレクトリを聞かれるので、先に作成した/opt/fmlと/var/opt/fmlを指定します。
後は言語とタイムゾーンを設定し、「インストールしますか?」にyと答えれば、ファイルがコピーされます。

これでインストールは終わりですが、うちの環境ではもうひとつやっておかねばならないことがありました。うちのMTAはIPv4のコネクションのみを受け付けているのですが、fml-4.0.3ではデフォルトでIPv6のコネクションを張りに行くため、この動作をしないよう設定する必要があります。/opt/fml/default_config.phを編集し、$USE_INET6を1から0に変更します。

% sudoedit /opt/fml/default_config.ph

もちろん、MTAがIPv6を受け付けるように設定されている環境では、その必要はありません。

これでfmlがインストールされましたので、実際のメーリングリストを作成して行きます。

% sudo -u fml /opt/fml/makefml newml test_ml

これでtest_mlというメーリングリストが作成されます。MTAと連携させるためには、/var/opt/fml/test_ml/aliasesの内容を/etc/aliasesに追加して、newaliasesコマンドを実行する必要があります。

% sudoedit /etc/aliases
% sudo newaliases

新規のMLならこれで終わりですが、今までのMLのメンバーやシーケンス番号を引き継ぎたいときには、バックアップから以下のファイルを上書きすればOKです。

% cd /srv/archive/var/spool/ml/test_ml # バックアップしてあったMLのスプールディレクトリ
% sudo -u fml cp -ir actives log members seq spool summary /var/opt/fml/test_ml

ヘッダの書き換え設定などはconfig.phというファイルに保存されていますが、サーバのFQDNなどの設定が更新されていると思うので、config.phをそのままコピーするのではなく、makefmlコマンドを使って設定しなおすほうがよいでしょう。

% sudo -u fml /opt/fml/makefml config test_ml

念のため、新旧のconfig.phを比較してみて、基本的な違いがないことを確かめます。

% diff /srv/archive/var/spool/ml/test_ml/config.ph /var/opt/fml/test_ml/config.ph

これで、前の設定を引き継いだメーリングリストが作成できているはずです。
テストメッセージを投げて、確認してみましょう。
posted by ぽそこし at 22:53| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2011年05月22日

IMEの不調

今日は、いきなり寒くなりましたね…。

実は最近、仕事用パソコンのIMEの調子が悪くなってきまして。
単語登録ができなくなったり、登録したはずの単語が全部消えていたり、日本語のひらがなを変換させているのにどういうわけかハングルが変換候補に出てきたりしてたんです。
以前効果のあったIMEの学習のリセットも試してみたんですが、今回は効果ありませんでした。
それでも何とかだましだまし使ってきたのですが、ついに昨日は、「こうか」と入力して変換させても、「高価」が候補として出てこなくなってしまいました。
これでは仕事にも差し支えるので、昨晩ついに対策に踏み切りました。

ためしに新しいユーザを作成してIMEを使ってみると、上記のような症状は起こりません。
前にも同じことがあって、ユーザープロファイルを一度削除して作り直したら復活したことがあったので、今回も同じことをしてみました。

こういう作業をするときの常識ですが、まずフルバックアップを取ります。
別ユーザでログインし、コントロールパネルから「システムの詳細設定」を開き、ユーザープロファイルの設定ボタンをクリックし、該当するユーザを選択して「削除」ボタンをクリックします。
しばらく待ってユーザープロファイルが削除されたら、念のためリブートし、それからプロファイルを削除したユーザーで再度ログオンすると、ユーザープロファイルが新規に作成されます。

うちの場合、「ドキュメント」をファイルサーバ上に置いているので、あとは細かい設定をし直すだけで元通り使えるようになりましたが、普通の方はローカルに「ドキュメント」フォルダを置いていると思うので、先ほどのバックアップからリストアする必要があるでしょう。

今のところ、快調に動いています。
心なしか、仕事の効率も上がったような気がしています。
posted by ぽそこし at 21:03| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2011年04月12日

近所の状況

今日は風が強いですが天気はよかったので、ちょっと近所の様子を見てきました。

image-20110412113226.png

こちらは、うちの母が仲良くしていた方のお家です。大谷石の塀が、すっかり倒れてしまっています。こちらに一人で住んでいたおばあさんは、山形の娘さんのところへ行ってしまったそうです。
posted by ぽそこし at 11:33| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2010年09月09日

iPhoneからのメールが文字化け?

昨日のことですが、外出中にメールの返信をする必要があったため、iPhoneから自宅のIMAPメールサーバーにアクセスして返事を出しました。
ところが今日になって、先方から「文字化けして読めない」との電話が。幸い、今回は電話でも済む用事だったので大事には至りませんでしたが、無用なトラブルを避ける意味でも原因を解明しておく必要がありそうです。

まず最初に思いついたのが、charset=CP932問題。これについては過去記事にも書きましたが、Mac上のApple Mailで「〜」などの文字を使うとcharset=CP932という規格外のcharsetが指定されるので、普通のMUAでは読むことができないというもの。(ちなみにSnow Leopardでは既に対処されているそうです。)
これについては、iPhoneから実際に「〜」を含むメールを出してみて確認しましたが、charset=CP932とはなっていなかったので、この問題ではないようです。

次に思ったのが、charsetやContent-Transfer-Encodingが実際の値と食い違っているのではないか、ということ。実際にiPhoneからメールを出して確認してみたところ、charset=iso-2022-jpの場合には問題なし。
ところがcharset=utf-8の場合には、実際の文字コード自体は正しいのですが、Content-Transfer-Encoding: 7bitとなっていて、これが問題を引き起こしているようです。当然ながらutf-8は8ビットコードなので、7bitで送るにはbase64エンコードするか、quoted-printableにしなくてはいけないはずなのに、Content-Transfer-Encoding: 7bitを指定して、なおかつ生の8ビットコードをそのまま送っているのです。
ちょっと気の利いたMUAなら自動判別して正しく表示してくれるのですが、今回文字化けだと電話してきた先方はOutlook Expressを使っているらしいので、そうなってしまったということのようです。

もちろん、Outlook Expressなど使うな、というのが最も正しい解決法なのですが、取引先なのであまり強いことも言えず…。

iOS 4.1で直ってるといいけどなあ。
posted by ぽそこし at 23:24| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする