Mac: Mac OS X Server, Snow Leopard, SSL証明書の有効期限切れでサーバーが停止

昨日、2011年1月9日、ウチのブログが夜9時ごろから11時過ぎまで3時間程度ダウンしてしまいました。原因はSSL通信の為にWebやメールサービスに設定していた証明書の有効期限が切れてしまった為。

ちょうど1年前の2010年1月9日にこのサーバーを構築、設定したのですが、その際に有効期限を1年間に設定していた為、稼働開始から1年となった昨日、期限切れを迎えてしまいました。
インターネットへの公開用Webページやブログサイトは暗号化する必要は無いのですが、管理用のVPNやメンバー用の一部Webページはセキュリティを考慮してSSLで通信を保護しており、その他目に設定していた証明書が無効になった為にWebサービス(Apache)がエラーを出力して停止していました。たとえ一部のサイトでのみ証明書を使う設定になっていても、その有効な証明書が見つからない場合Apache全体が正常に動作せず、SSL通信を要求しない他のサイトも公開されない状態になってしまいます。

実際に期限がきれた時刻は深夜(早朝)の1時ごろで、その後も正常に動作していたのであまり気にしていなかったのですが、休日出勤の後で10.6.6アップデートをリモートから適用したところ全く応答がなくなってしまいました。前述の通り、リモートからの管理にVPNを用いている為接続出来なくなってしまい手も足も出せない状態に陥ってしまったのです。

幸い、サーバーが設置されている実家に連絡した所、父親がLANに接続された端末からvncクライアントでサーバーの画面を操作する事に成功。電話やSkypeで試行錯誤しながらも新しい証明書の作成、信頼設定と、サーバー環境設定及びWebサーバーに読み込ませる証明書の設定を変更してどうにか復旧に成功。

結果、今もこの様に皆さんにブログをご覧頂いたり、投稿をする事が出来ています。有難うございます。

過去にもFreeBSDのサーバーを管理した経験が有り、WebやメールサーバーをSSLの暗号化設定を含めて行った事がありましたが、Mac OS X Serverで同様のシチュエーションに遭遇するのが初めてだった為かなり戸惑いました。幸いサーバー管理アプリを使って出力されているエラーログを参照する事で原因の特定が出来たので良かったわけですが….。

正直なところ様々なサーバーに対してそれぞれどの証明書を使うか設定しなければならない為、今でもいくつかのサービスからエラーが出力されており、今度の週末には実家に完全復旧をしなければと思っています。その際に今回のトラブルシューティングについてまとめ、BlueDiamond
Web.で紹介してみようと思います。

Mac: rsyncによる2点間のファイルコピー (rsync, vpn, afp, applescript使用)

年末年始に今まで自宅に設置していた MacMini (Serverではなくデスクトップマシン) を実家に移設したのですが、Eye-Fiを使っているコンパクトデジカメで写真を撮影しながら「あ、Eye-Fiのファイル転送先設定が実家に移設したMacMiniのままだ…」という事に今更気がつきました。

最も簡単な解決方法は自宅に残っているMacBook ProかMacBook AirにEye-Fi CenterとEye-Fi Helperをインストールして転送先を変更すれば良いのですが、もう少し難しく解決してみようと思い、VPN接続で実家のネットワークに接続しrsyncコマンドを使って自宅のLANに接続されているAirMac Extremeに繋がっている外付けHDDへファイルを転送する方法を試してみました。

条件としては次の通り。

  • 自宅はCATVでインターネットへ常時接続。
  • 実家はFTTHでインターネットへ常時接続。
  • VPN接続は自宅のMacBook Pro (MBP)から実家のMac mini server (MacMiniとは別のMac OS X Server搭載のサーバー)間で行う。Mac mini serverはVPN接続クライアントと実家のLAN内に設置しているMacMini間でルーティングを行う。
  • Eye-Fiのファイルは実家のMacMini上で共有されているフォルダに保存されている。
  • これらのファイルを自宅のAirMac Extremeに接続されたHDDへコピーする。

Applescriptに作業させたい内容は次の通り。

  1. 予め[システム環境設定] – [ネットワーク] で設定しておいたVPN接続先に自動的に接続する。
  2. 実家のMacMiniの共有フォルダにafpで接続(マウント)する。
  3. 自宅のAirMac Extremeに接続のHDDにafpで接続(マウント)する。
  4. rsyncコマンドを走らせ、MacMini側の変更をAirMac Extreme側へコピーする。

ということで、エラー処理などを全く考慮していませんが紹介しちゃいます。

tell application “System Events”
tell current location of network preferences
set VPNservice to service “<<VPN接続名>>”  –事前に設定しておいたVPN接続先を指定
set isConnected to connected of current configuration of VPNservice –接続済みかどうかを確認
if isConnected = false then –接続済みでなければ
if exists VPNservice then connect VPNservice –接続する
delay 30 –接続が完了するまで30秒程度掛かった事があるので長めに待機
end if
set isConnected to connected of current configuration of VPNservice –接続済みかどうかを再度確認
if isConnected then –接続済みであれば
tell application “Finder”
mount volume “afp://192.168.0.100/Share/” as user name “<<User Name>>” with password “<<Password>>–MacMiniの共有フォルダをマウント
mount volume “afp://10.0.3.1/Temp/” as user name “<<User Name>>” with password “<<Password>>–AirMac ExtremeのHDDをマウント
set SyncCommand to “rsync -avz –exclude=.DS_Store /Volumes/Share/Eye-Fi /Volumes/Temp/” –rsyncのコマンドを定義
do shell script SyncCommand –rsyncのコマンドを実行
end tell
end if
end tell
end tell
前述の通り全くエラー処理はしていませんのであしからず。目的は達成できていると思っています。

ポイントは、afpでマウントした共有フォルダは /Volumes 以下にディレクトリとして見えるという事を利用して、同期元と同期先の2つのネットワーク上の共有フォルダをあたかもローカルフォルダの様に扱っています。rsyncコマンドはssh転送にも対応しているのでそれを使っても良いのですが、事前に鍵の生成や転送をするのが面倒だったのでまずは簡単に実現できる方法で試してみました。その反面、VPNや共有フォルダがネットワークの不調などで切断されると途中でファイル転送が中断されてしまう場合があります。

また、rsyncのオプションとして ‘–exclude=.DS_Store’ を指定しました。.DS_Storeが含まれたディレクトリの同期を行うと.DS_Storeで始まるファイル/ディレクトリが大量に転送される場合があるので除外しました。

エラー発生時の処理やtellコマンドとend tellコマンドの位置も調整しなければなりませんし、ファイル転送終了後に切断も出来ていない状態なのでまだまだ改善の余地がありますが、同じ様な事をお考えの方の参考になれば幸いです。より良い方法があれば是非共有して頂ければ助かります。

#想定していない動きをする事も考えられますので、流用される場合は自己責任でお願いします。意味の分からない場合は試さない方が安全だと思います。

Mac: 無停電電源装置 (UPS) OMRON BY50FW を導入しました!!

随分悩んだ結果購入に踏み切った無停電電源装置。先日こちらのエントリーで紹介した正弦波出力タイプのUPS、オムロン BY50FWを設置して運用を開始しました。実際の設置作業は2010年12月30日に行い、大晦日の日に動作テストを行っていました。

箱は緩衝材の関係で少し大きめでしたが、中身を出してみると本体は想定通り薄型で出力容量の割にはコンパクト。縦置きが出来る様にスタンドも付属しています。

早速、一時的にサーバーをシャットダウンして設置してみました。

同時に自宅で運用していたMac mini (Mac OS X, Leopard)とfriioのセットも当ブログを運用しているMac mini serverが設置されている実家へ移設し、一緒にUPS保護下で運用する事にしました。

UPSは壁際に縦置きで設置。BY50FWはFANを搭載していないモデルなのでホコリや塵を吸い込んでしまう心配はほぼ無いと考え、床に近い高さでも問題ないと判断しました。次にメタルラックの一番下にアダプターや電源ケーブル類をまとめ、中央にFTTHのモデムやWiFiルーター、friioを設置。最後にMac mini server、Mac miniと外付けHDDドライブを一番上の棚に設置。少しメタルラックのサイズが小さいため、ケーブルが飛び出たりルーター類がまっすぐ設置出来ていませんが、ひとまずこのような状態で運用を再開してみました。

オムロンのBY50FWにはMac OS X, Mac OS X ServerそしてWindows等の各種OSに対応したマネジメントソフトウェアが付属しており、停電時にUSBケーブルでUPSと接続したMac mini server自身とネットワーク経由でその他のマシンを制御する事が出来ます。当然その場合にはその他のマシンもUPSで電源がバックアップされており、ネットワーク機器(ルーターやスイッチングハブ)も忘れず同じUPSで電源バックアップを行っておく必要がありますが。

大晦日の日中に設定と実験を行い、若干失敗はありましたが無事に動作する事を確認できました。これで突然の落雷や変電設備の障害等による停電時にもサーバー類を保護出来る体制が整いました。

後日 BlueDiamond Web.物欲番長Blog に更に詳しく掲載してみようと思いますので良かったらご覧ください。

Mac: Mac OS X Server 10.6 (Snow Leopard Server) を Windows からリモート操作

しばらく前から、当ブログやWeb.サイトの運用に使っているMac Mini Server (Mac OS X Server, 10.6, Snow Leopard Server)をWindows上のVNCから操作したいと思っており、やっと実現できましたので書いてみます。

このサーバーは、インターネットへの接続が太いウチの実家に設置しているのですが、スペースを節約する為、ディスプレイ、キーボード、マウス等の入出力機器は全く接続していません。

日頃の管理は自宅のMacからVPNで接続し、Snow Leopard Serverに付属してくる「サーバ管理」を使っています。デスクトップへアクセスする必要がある場合は「画面共有」でサーバーを操作しています。

ところが、実家にはMacが無い為、ウチが直ぐに管理できない時にシャットダウンや再起動をする必要がある場合、不都合がありました。という事で、WindowsのVNCクライアントを使って「画面共有」と同じ事をしようと思い、色々試してみました。早速「TightVNC」をダウンロード、クライアントをインストールして試したのですが、”セキュリティ云々”なエラーメッセージが表示されて接続できませんでした。Mac OS X Serverの設定を見直したところ、接続、操作が可能になりましたので記録をかねて説明してみます。

Mac OS X Server側の設定

システム環境設定 – 共有を開きます。

「リモートマネジメント」が有効になっている場合は「画面共有」を同時に有効化出来ませんが、「リモートマネジメント」に画面をリモートから操作する機能が含まれているので、Macからは画面共有でデスクトップの操作が可能です。ただし、この「リモートマネジメント」の一部設定を変更しておかないとWindows TightVNCからは接続できない様です。

右側にある「コンピュータ設定…」をクリックします。

すると設定項目が表示されますので、「VNC利用者が画面を操作することを許可」にチェックを入れ、不正操作を防ぐ為にパスワードを設定しておきます。

後はOKをクリック後、システム環境設定を終了して終わりです。

Windows側

TightVNCを用いました。こちらのサイトからダウンロードできます。クライアントのみ必要で、VNCサーバーが必要ない場合はインストール中の選択画面でVNC Serverのチェックを外します。

インストールが終わったら早速TightVNCを起動して接続先のMac OS X ServerマシンのIPアドレスを入力、Connectをクリックします。

すると、接続に必要なパスワードの入力を求められますので、Snow Leopard Serverのシステム環境設定で設定したパスワードを入力します。

パスワードが一致するとMac OS X Serverのデスクトップ画面が表示され、操作が可能になります。Macの画面共有の用に、表示の縮尺などは接続時のOptions…で設定できるので、色々変えると使いやすい環境が構築できると思います。

ちなみに、Mac OS X ServerのVNCサーバーは、ユーザーのログイン時とログアウト時に一旦セッションが切れます。Macの画面共有は自動的に再接続してくれますが、TightVNCの場合は”接続が切れました”と表示されて閉じてしまいます。なので、Mac OS X Serverへのログイン後はもう一度接続する必要があります。

ソフトウェアアップデート: Mac OS X セキュリティアップデート 2010-005

今日2010年8月25日にAppleからMac OS X 10.5.8とMac OS X 10.6.4向けのセキュリティアップデート 2010-005 バージョン1.0がリリースされています。サーバーも対象になっていました。

セキュリティの強化する為のアップデートですので、特に理由が無い限り適用しておいた方が良さそうです。

適用はソフトウェアップデートから。OSの再起動が必要です。

Mac: Mac OS X – Snow Leopard – Version 10.6.4 released

今日(2010年6月16日)、AppleからSnow LeopardとMac OS X Server向けの新たなアップデートがリリースされています。しばらく前からデベロッパー向けには評価版等の配布がされていたバージョン 10.6.4 。

ダウンロードサイズは315.5 MB(サーバー版は619.8MB)、ソフトウェアアップデートからインストール出来ます。適用には再起動が必要となりますし、インストールに時間がかかるのでラップトップユーザはACアダプターを接続した方が無難だと思います。

ちょうど昨日新しいMac miniがリリースされた事もありますので、新ハードウェア対応も合わせて行われているものと思われます。なお、このアップデートを適用するとSafariはバージョン 5 にアップグレードします。

変更内容は以下の通り:

10.6.4 アップデートは、Mac OS X Snow Leopard をお使いのすべてのユーザに推奨されます。このアップデートには、Safari 5 およびお使いの Mac の安定性、互換性、およびセキュリティを強化するオペレーティングシステムの全般的な修正が含まれており、以下の問題の修正も含まれています:

  • キーボードやトラックパッドが反応しなくなる原因となる問題を解決
  • Adobe Creative Suite 3 の一部のアプリケーションが起動しなくなる原因となる可能性がある問題を解決
  • SMB ファイルサーバ上のファイルのコピー、名称変更、および削除時に起きる問題を解決
  • VPN 接続の信頼性を向上
  • DVD プレーヤーで、標準品質デインターレースを使用した再生時に起きる問題を解決
  • iPhoto または Aperture で、フルスクリーン表示での写真編集時に起きる問題を解決
  • 一部の点字ディスプレイとの互換性を向上

このアップデートについて詳しくは、次の Web サイトをご覧ください:http://support.apple.com/kb/HT4150?viewlocale=ja_JP

このアップデートのセキュリティ内容については、次の Web サイトをご覧ください:http://support.apple.com/kb/HT1222?viewlocale=ja_JP

Snow Leopardを64 bitカーネルで動かす!

ちょっと時代遅れの話題ですが…

Mac OS X 10.6、つまりSnow Leopardが発売されて、遂にMac OS Xにも64ビット化の波が訪れたと思ったのですが、土台のカーネルは32 bitで動いているケースがほとんど。

Snow Leopardをインストールしてすぐ、最初から64 bitカーネルで動作するのはEarly 2008か、それより新しいXserveサーバーと MacBook Proのみ。それ以外のMacBook、MacBook Pro、 MacBook Air、iMac、等のワークステーションクラスのMacはほとんどがデフォルトでは32 bitカーネルで起動する様になっています。

これは周辺機器の互換性も考慮した為にAppleがその様に設定している様で、確かに突然様々な周辺機器が使えなくなってしまったり、そもそもMacが64 bitに対応していない場合も考慮すると正しい考え方に思います。

しかし、せっかく新しいMacを持っているなら64 bitカーネルで動作させたくなります。ウチのMacBook Proも動くはずなのでちょっと試してみました。

説明してみます。

今はどのカーネルで動作しているのか?

システムプロファイラの左側のツリーで「ソフトウェア」をクリックし、「システムソフトウェアの概要」を見ると分かります。”64ビットカーネルと拡張機能”が「いいえ」となっている場合は、32 bitカーネルで起動・動作しています。

システムプロファイラはメニューバーの「アップルロゴ」-「このMacについて」で表示されるウィンドウで「詳しい情報…」をクリックすると起動出来ます。

64ビット 又は 32ビット カーネルで起動するには(一時的に)

まずMacをシャットダウンします。そして…

  • 電源ボタンを押して起動している間キーボードの 6 と 4 のキーを押し続けると、64 bitカーネルで起動します。

または…

  • 電源ボタンを押して起動している間キーボードの 3 と 2 のキーを押し続けると、32 bitカーネルで起動します。

この方法の場合は、起動時に必ずそれらのキーを押し続けないと適用されません。また、Macが64 bitカーネルをサポートしていない場合はこの方法を用いても32 bitカーネルで起動します。

64 bitカーネルで動作しているかどうかは、システムプロファイラの例の箇所が「はい」になっている事で確認出来ます。

永続的に起動時のカーネルを変更するには

難しく言うと、 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist を編集します。左が32 bitカーネル起動、右が64 bitカーネル起動です。Kernel Flags Keyに “arch=x84_64” というValueが設定されていると、デフォルトで64 bitカーネルで起動する様になります。

しかし、このファイルを直接編集するのは少し敷居が高いので、これを簡単に出来るアプリケーション 32- or 64-bit Kernel Startup Mode Selector (Link) を使ってみました。フリーでダウンロード出来ますし、寄付を呼び掛けている様ですのでご協力出来る方は是非。

ダウンロードして起動すると次の様な画面が表示されます。

中央下部に表示されているSupported?が緑色のチェック(このスクリーンショットの様に)であれば、このMacは64 bitカーネルでの動作がサポートされています。恒久的に64 bitカーネルで起動したい場合は、このアイコンの左側にある「start in 64bit mode」をクリックして、(求められたら)システム管理者のパスワードを入力します。そしてMacを再起動すると、設定したカーネルで起動するはずです。32 bitカーネルに戻したい場合もこのアプリケーションで設定を変えることができます。

このアイコンは4種類あり、それぞれ意味合いが異なります。

1番目: 64 bitカーネルでは動作しない

2番目: 64 bitカーネルで動作する

3番目: Appleが公開している64 bitカーネル動作サポート機種ではないが、動く。

4番目: 技術的には64 bitカーネルで動作するが、Appleによってそれを有効に出来ない。

気になる方は試してみてください。