Ubuntu Weekly Topics

2009年7月31日号 サーバーの電力効率・initramfsの高速化・UWN#152・Firefoxとkernel,bindのアップデート

この記事を読むのに必要な時間:およそ 4 分

9.10関連

サーバーの電力効率

近年のデータセンター運用では,「サーバーに電力を供給する→その分の電力が熱に変わる→熱を冷却するために空調を稼働させる→電気代がかかる」という悪循環が発生しがちです。このため,サーバーの電力効率をいかに引き上げ,少ない電力でサーバーを稼働させることができるかが重要な要素になっています。こうした取り組みは主にUbuntu Server Teamが行っているのですが,Server Teamのメイン開発者の一人(兼byobuの作者)であるDustin Kirklandさんが,9.04~10.04までのUbuntuにおける,消費電力への取り組みをまとめています。

9.10・10.04はまだリリースされていませんが,9.04でサポートされるアプリケーションの中にCondorとmpich2注1が含まれていること(これはほぼ確定),10.04でIntel AtomプロセッサやARMプロセッサ採用マシン用のUbuntu Serverのリリースが行われるであろうこと(こちらは「おそらく」というか,Dustinが「こうなるといいな」と思っているレベル)が見て取れます。

AtomやARMへの対応については大規模データセンター(クラウド)環境だけでなく,「家庭内サーバ」(Home Server)用途へも援用が可能なものとなるはずですが,ゲートウェイやログインノードなどのプロセッサ性能を必要としないマシンへの転用を含め,さまざまな形で利用できることが期待できます。

注1
Condor・mpich2のいずれも並列クラスタ,とくにマルチユーザーHPC環境でよく使われるソフトウェアです。

initramfsの高速化アプローチ

Ubuntu 9.10~10.04の2リリースを費やして,9.04で行われたものよりもさらに高速なブートが実現される予定となっています注2)。

このブート時間の短縮の一環として,initramfsの不要な機能の除去がScott James Remnantさんの手によって開始されています。Ubuntuの方針は,『initramfsの役割は,「ルートファイルシステム(/)をマウントする」ことだけなので,可能な限りinitramfsからは追い出す』ことです注3)。

このアプローチでinitramfsの削減(不要な機能の追い出し)にチャレンジした結果,ひとまず4秒から2.5秒への短縮に成功したようです注4)。Scottのチャレンジとしては2秒の削減だったようなので,「あと0.4秒ほどは処理の並列化で稼げそうなので試してる」そうです。

これにより,少なくとも9.10のブート時間は2秒ほど短縮されることが確定しました。

なお,ルートファイルシステムをカーネル起動時に直接マウントできればinitramfsは不要になり,この4秒を丸ごとなくすことも可能ですが,「initramfsはストレージ回りとファイルシステムドライバをカーネルに組み込んでしまえば要らないってことは分かってる。(中略)でも,Ubuntuではできるだけ色んなハードウェアでそのまま動かせるようにしないといけないから,initramfsは必要なんだよ("we *do* need the initramfs for the default case because we have to support the widest possible hardware configuration out of the box.")」と,Scottがしっかり釘を刺していますので,initramfsを使わないアプローチは取られないはずです。

注2
10.04で「標準的な環境」で10秒での起動が目標となっています。9.10では具体的な数字での目標設定はされていませんが,「10.04までの過程のひとつ」としてリリースされる予定です。
注3
Ubuntuでは2005~2008年頃までの歴史的経緯により,initramfsが極端に多機能化かつ肥大し,ブート時間を長くする原因となっていました。9.04でかなりの部分がinitramfsから除去されたため,劇的に高速しています。
注4
initramfs部分だけの話で,ブート全体が4秒から2.5秒に短縮されたわけではありません。

Ubuntu Weekly Newsletter #152

Ubuntu Weekly Newsletter #152がリリースされています。

その他のニュース

注5
一部,HTTPパイプラインの過剰に増やす・IPv6を無効化するといった,完全にはお勧めできないTipsも含まれています。

今週のセキュリティアップデート

Linuxカーネルならびにpythonのセキュリティアップデートが行われています。ほとんどのユーザーがアップデートするべきですが,特に,RealtekのGigabit Ethernetチップが搭載されたマザーボード・ネットワークカードを利用されている方で,同一ネットワーク内でJumboFrameを利用する可能性のある方にとってはほぼ必須のアップデートとなっています。いずれも再起動が必要になりますので,一度に適用し,あわせて再起動するのが良いでしょう。なお,9.04にはABIの変更もかかっていますので,適用する際は注意が必要です。

同時に,Firefoxのアップデータもリリースされています。こちらも可能な限り早期に適用してください。適用後にFirefoxの再起動が必要です。カーネル等とあわせて適用すると手間が少なく済むでしょう。

また,DNSサーバを運用している場合,bindのアップデートに注意してください。きわめて容易にbindのプロセスを落とすことが可能な脆弱性が存在します。放置していると,気付かない間に攻撃を受け,DNSサーバが機能停止している,といった重大な問題が生じる可能性があります。できるだけ早期にアップデートを行うことを,強く推奨します。

usn-798-1:Firefox・Xulrunnerのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000937.html
  • Ubuntu 8.04 LTS・8.10・9.04用のアップデータがリリースされています。Firefox 3.0.12に相当するアップデートです。CVE-2009-2462, CVE-2009-2463, CVE-2009-2464, CVE-2009-2465, CVE-2009-2466, CVE-2009-2467, CVE-2009-2469, CVE-2009-2472を修正します。
  • アップデート内容は,mozilla-japan.orgのセキュリティアドバイザリを確認してください。
  • 対処方法:アップデータを適用した上で,Firefox(またはXulrunnerを利用するアプリケーション)を再起動してください。
  • 備考:6.06LTSで利用されているFirefox 1.5にも同質の問題が存在する可能性がありますが,6.06LTSのデスクトップ向けパッケージはすでにEOLしているため,アップデータは提供されません。デスクトップ環境として6.06 LTSを利用している場合,8.04 LTSへのアップグレードまたは9.04の新規インストールを行ってください。
usn-806-1:Pythonのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000938.html
  • 6.06 LTS・8.04 LTS・8.10用のアップデータがリリースされています。CVE-2008-4864, CVE-2008-5031を修正します。
  • CVE-2008-4864はpythonパッケージに含まれるimageopモジュールの問題で,imageop.cropの引数に不当な値を与えると,整数オーバーフローが発生し,バッファオーバーフローを発生させるものです。これにより,攻撃者による任意のコードの実行,またはDoS(アプリケーションのクラッシュ)を発生させられると考えられます。この問題は8.04 LTSにのみ影響します。
  • CVE-2008-5031はpythonパッケージに含まれるstringobject・unicodeobjectの問題で,expandtabsに不正な値を与えることで整数オーバーフローが発生し,バッファオーバーフローを発生させるものです。これにより,攻撃者による任意のコードの実行,またはDoS(アプリケーションのクラッシュ)を発生させられると考えられます。
  • 対処方法:アップデータを適用した上で,システムを再起動してください。UbuntuではPythonは多くのシステムコンポーネント内で利用されており,厳密な適用のためには再起動が必要となります。
  • 備考1:9.04・9.10開発版はすでにアップデートされたパッケージが導入されています。
  • 備考2:CVE-2008-4864, CVE-2008-5031ともに,詳細情報としてCESA-2008-008を参照してください。
usn-807-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000939.html
  • 現在サポートされている全てのUbuntu(6.06 LTS・8.04 LTS・8.10・9.04)向けのアップデータがリリースされています。CVE-2009-1389, CVE-2009-1895, CVE-2009-2287, CVE-2009-2406,CVE-2009-2407を修正します。
  • CVE-2009-1895は,setuid/setgidされたバイナリの実行時,権限のマスク指定がREAD_IMPLIES_EXEC|ADDR_NO_RANDOMIZEになってしまっている問題です。このことにより,(カーネルのNULLポインタ参照からの保護機構を回避した)NULLポインタ参照を利用したexploitの実行・mmap_min_addrによるmmap可能なアドレス制限の回避(による不正なライブラリのロード+コードの実行)が可能になり,結果としてroot権限で不正なコードを実行される可能性が生じます。6.06 LTSはこの問題の影響を受けません。
  • CVE-2009-2287はKVMの脆弱性で,KVM内のマシンからkvm_arch_vcpu_ioctl_set_sregsを用いてCR3レジスタに不正な値を投入することが可能なため,NULLポインタ参照が発生し,システムがクラッシュする問題です。
  • CVE-2009-2406CVE-2009-2407はいずれもeCryptfsのバッファ長チェックの問題で,悪意ある加工を施したeCryptfsファイルを読み込ませることで,システムのクラッシュ,あるいは権限の昇格を発生させることが可能なものです。6.06 LTSには(eCryptfsが搭載されていないので)影響しません。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:9.048.10については,このセキュリティアップデートの直後により新しいカーネルパッケージのリリースが準備されています。厳密な運用を行っている場合,アップデートされるパッケージに注意してください。
  • 注意:9.04でのアップデートは,ABIの変更を伴います。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるので,通常はそのままアップデートを適用しても問題ありません。もしも自分でコンパイルしたカーネルモジュールを利用している・独自のカーネルモジュールパッケージを利用している場合,それらのモジュールの再コンパイルまたはアップデートが必要です。
  • CVE-2009-1389は,Realtek RTL8169 Gigabit Ethernetチップのドライバの問題により,JumboFrame対応と謳っているにも関わらず,MTUサイズが1500を超えるパケットを受け取るとが発生し,カーネルがクラッシュする問題です。ping -S 1501などでクラッシュするため,セキュリティ上の問題だけでなく,JumboFrameの実利用においても致命的と考えられます。
usn-808-1:bindのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000940.html
  • 現在サポートされている全てのUbuntu(6.06 LTS・8.04 LTS・8.10・9.04)用のアップデータがリリースされています。CVE-2009-0696を修正します。攻撃コードがすでに存在します。
  • CVE-2009-0696は,不正なdnsupdateパケットを受け取った場合に,bindのプロセスがクラッシュする問題です。これによりDNSサーバの動作を阻害することが可能です。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。適用時にbindが再起動されますので,高い可用性が求められるホストではアップデートタイミングに注意してください。
  • 備考1:この脆弱性は,dnsupdateパケットを受け付けるようにbindが設定されているか否かに関係なく影響します。
  • 備考2:アップデータの適用が困難である場合,Debian bug#538975のコメント#19にあるiptablesないしそれに相当するパケットフィルタを行うことで,問題の一時的な回避が可能です。ただし,dnsupdateパケットを受け付けられなくなりますので,動的な更新が必要なサービスの正常な維持にはアップデートが必須です。

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。

コメント

コメントの記入