Windows Server 2008では新しいインストールオプションとして「Server Core」が選択できるようになりました。これはWindows Serverの「Core(中核) 」のみが提供され、それ以外のプログラムは一切排除された必要最小限のOSのことです。
Windowsといえばお馴染みのGUIが省略され、いわばコマンドプロンプトのみのOSです。管理全てをコマンドラインから行う必要があります(図1) 。
図1 Server Coreの画面
今回はこのServer Coreの管理方法などを中心に見ていきましょう。前半は2008での機能、後半は2008R2での新機能を紹介します。
なぜServer Coreなのか
まずはメリットです。
従来のWindows Serverでは、使っている構成には必要の無いサービスが動いていることも多く、それが原因で攻撃を受けたり、あるいは適切なパッチを当てる手間をかけていることがあったかと思います。
このServer Coreでは、用途に必要な役割・機能だけを選んで構成するため、動いているサービスなども最低限のものに絞ることが可能です。その分、攻撃されるポイントを減らすことが可能となり、また必要なパッチなども減るため管理者のメンテナンスの負荷も軽減されるというメリットもあります。
また、必要なシステム要件も通常インストールのおよそ半分程度で動くとされており(メモリ1Gバイト以上、ハードディスク40Gバイト以上) 、現状のマシンスペックのまま2008を検証することも実現しやすくなります。
ただし、すべてのServer要素がCoreで実現できるわけではなく、また管理作業は基本的にすべてコマンドラインで行うという、少し面倒な作業も発生することになります。
サポートされている役割
DHCPサーバー
DNSサーバー
IIS(ただし.NET Frameworkが提供されないためASP.NETは不可)
Active Directoryドメイン サービス
Active Directoryライトウェイト ディレクトリ サービス
ファイル サービス
Hyper-V(Windows Server仮想化)
印刷サービス
サポートされている機能
BitLockerドライブ暗号化
BITSサーバー拡張
フェールオーバークラスタリング
マルチパスI/O
ネットワーク負荷分散
高品質なWindows オーディオビデオエクスペリエンス
リムーバブル記憶域マネージャ
SNMPサービス
UNIXベースアプリケーション用サブシステム
Telnetクライアント
Windowsインターネットネームサービス (WINS)
Windows Serverバックアップ
上記でおわかりいただけるように、Server CoreをファイルサーバやDHCP/DNSサーバ、ドメインコントローラとして、またWebサーバとして使用することもできます。ただし、.NET Frameworkは利用できないため、ASP.NETが対応外となり、アプリケーションサーバとして使用することはできません。また、同じ理由からPower Shellを使うこともできませんので注意が必要です。
Server Coreを導入する場面としてお勧めするのが、支店などのサーバです。たとえば、BitLockerドライブ暗号化を組み入れたファイルサーバとしてServer Coreを構成したり、同じくBitLockerで暗号化した読取専用のドメインコントローラ(後日紹介予定)を導入するといったことが想定されます。
Server Coreの導入
次に、インストールやその後の作業についてご紹介しましょう。
インストール
まずインストールです。2008のどのエディションでもServer Coreのオプションを選択することができます。ただし、対応しているのはクリーンインストール(新規インストール)のみで、既存のWindows Serverや2008のフルインストールからのアップグレードはできなくなっています。また現時点では、いったんCoreで構成した2008をフルインストールしたServerへアップグレードすることもできないため、最初の段階でCoreと決めた場合にはずっとCoreオプションの状態で使用し続ける必要があります。
インストール作業はフルインストールとほぼ同じく、最小限の設定のみがウィザードで行われ、管理者パスワードやコンピュータ名などはインストール後に行うこととなります。通常であればGUIによる「初期構成タスク」画面で設定ができますが、Coreの場合にはコマンドからこれらを設定する必要があります。
まずは、管理者administratorのパスワード設定です。このコマンドで確認用も含め2回パスワードを入力すると設定完了です。
net user administrator *
次に、コンピュータ名の変更も行います。インストール直後はランダムな英数字で名前が付けられています。「 %computername%」を使用することで、わざわざ現在のコンピュータ名を調べて入力する必要はなくなります。
SV1CORE という名前にセットする例
netdom renamecomputer %computername% /newname:SV1CORE
また必要に応じて、コンピュータを再起動させます。
shutdown /r
図2 コンピュータ名を変更する例
ネットワーク設定
次はネットワークの構成です。既定ではDHCPサーバからアドレスを取得するように構成されているため、固定アドレスを割り当てる場合には設定する必要があります。まずは以下のコマンドで、使用するNICのindex番号を調べておきます。特に複数のNICを使用している場合には注意が必要です。
netsh interface ipv4 show interfaces
その後、このindex番号を使ってアドレスの指定やDNSサーバの設定を行います。
netsh interface ipv4 add address name="ローカルエリア接続" address="192.168.1.200" mask="255.255.255.0" gateway="192.168.1.254"
netsh interface ipv4 add dnsserver name="ローカルエリア接続" 192.168.1.100 index=1
ドメインへの参加もコマンドから行うこととなります。
netdom join %computername% /domain: /userd:administrator /passwordd:*
サービスの追加
次にCoreに各役割を追加していきます。
Coreインストール直後はOSの中核部分のみがインストールされるため、何の役割も持っていないServerとして構成されています。Core専用のコマンド「oclist」や「ocsetup」を使って現状の確認、およびインストールを行います。
「oclist」コマンドは現在の役割と追加のインストール状況を確認することができ、追加の際に必要なパッケージ名(サービス名)を確認することもできます。
図3 oclistの使用例
たとえば、DHCPサーバとしてCoreを利用する場合には、次のコマンドを利用します。
start /w ocsetup DHCPServerCore
まずパッケージ名(DHCPServerCore)は大文字小文字が区別されるので、事前に「oclist」コマンドで調べておく必要があります。また「start /w」を付けることで、インストールが完了するまで待ってくれます(wait) 。
ドメインコントローラとして構成する場合には、このocsetupコマンドは使わずに、従来どおり「dcpromo」を使う必要があるため注意しましょう。またウィザードの使用はできないため、事前に応答ファイル(unattendファイル)を作成しておく必要もあります(フルインストールのドメインコントローラ昇格ウィザード:「dcpromo」で、応答ファイルをエクスポートすることが可能です。「 設定のエクスポート」 ) 。
図4 dcpromo
次に、初期状態では停止しているためインストールしたサービスを開始させる必要があります。再起動後には、サービスが自動で開始されるには以下のコマンドを使います。
sc config dhcpserver start= auto
手動でサービス開始する場合には次のとおりです。
sc start dhcpserver
Server Coreの管理
では最後にCoreの管理についてご紹介します。
Server Coreでの管理方法としては主に2つあります。1つはローカルでの管理で、前述のようにほぼすべてをコマンドラインから行う方法です。ただし、例外としてregeditやnotepadといったGUIツールは提供されています。また一部のコントロールパネル内のアプレットも提供されています(日付と時刻、地域と言語のオプション) 。
control timedate.cpl
control intl.cpl
もう1つはリモートからの管理です。ターミナルサービスや、MMCスナップインを利用して接続することでGUIによるCoreの管理が可能となります。ただし、このリモートからの管理を行うにはいくつか設定をCore側で行う必要があります。インストール直後はフルインストールと同じく、Windowsファイアウォールが既定で有効になっているため、ほとんどの着信トラフィックはブロックされてしまいます。
図5 Server Coreの管理イメージ
以下のコマンドを使用して、インストール時やテスト時など一時的にファイアウォールを無効化にできます。allprofileで設定すると、ドメイン・プライベート・パブリックすべてのネットワークプロファイルで無効化になります。いずれかだけを設定する場合には「currentprofile」として置き換えてください。
netsh advfirewall set allprofile state OFF
また、リモートからMMCスナップインを利用すれば詳細なファイアウォールの管理を行えます。そのためには以下のコマンドを利用します。
netsh advfirewall firewall set rule group="Windows ファイアウォール リモート管理" new enable=yes
同じコマンドを利用すれば、以下に挙げるような他のMMCスナップインを利用するための規則を有効化にできます。
グループ名 MMCスナップイン
Windows ファイアウォール リモート管理 セキュリティが強化されたWindowsファイアウォール
リモート管理 コンピュータの管理
リモート イベントのログ管理 イベントビューア
リモート サービス管理 サービス
ファイルとプリンタの共有 共有フォルダ・信頼性とパフォーマンス
パフォーマンス ログと警告 信頼性とパフォーマンス
また、Vistaやフルインストールの2008から組み込んでいない機能や役割のスナップインを使いたい場合には「リモートサーバ管理ツール(RSAT:Remote Server Administration Tools) 」をインストールすれば可能となります。これは、Server2003での「AdminPack.msi」に代わるものとして提供されています。図6は、Windows VistaにRSATをインストールした結果です。Vista側から各種管理ツールが選択できるのが確認できます。
図6 リモートサーバ管理ツール(RSAT)のメニュー
あわせてServer Coreを利用していて自身が面倒に感じた「スクリーンセーバ」について、無効化にする方法をご紹介しておきましょう。一番安全で確実な方法は、リモートからポリシーを編集することですが、これを行うには前述のFirewallやリモート管理を事前に有効にする手間がかかります。
そこで、regeditコマンドからレジストリで以下のパスを変更すればスクリーンセーバを無効にすることが可能です。既定では「1」( 有効)となっているため、「 0」( 無効)にしてみてください。
HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive
ただし、レジストリを編集することでOSに深刻な問題が発生する事もあり、ご存知の通りサポート対象外ですので、自己責任で行っていただく必要があります。
2008R2のServer Core
続けて、R2でのServer Coreについてです。
R2でのCoreは.NET Frameworkに対応しました。バージョン3.5.1とほぼ同等のコンポーネントが提供されている状態です(GUIに必要なものは除外) 。つまり、Server CoreにIISを入れてASP.NETアプリケーションが動くようになったわけです。さらに嬉しいことに、PowerShell2.0も動きます。インストール方法については後述します。
もう1つ改善されたのは初期設定の方法です。2008では、初期構成タスクで設定できるようなコンピュータ名やIPアドレスなどもコマンド操作が必要でしたが、R2では「Sconfig」という初期設定メニューが用意されています。
図7 sconfigの実行画面
試しに、sconfigを使ってコンピュータ名を変更してみましょう。リスト番号「2」を入力します。すると、末尾に「新しいコンピュータ名を」と求められるので、マシン名を入力します。すると再起動要求画面が出るので指示に従います(図8) 。GUIと非常に近い操作で初期設定ができるので、コマンドを覚えておく必要がなくなり、とても便利になりました。
図8 sconfigでのコンピュータ名の変更
同じ要領で、「 8)ネットワーク設定」では、静的・動的アドレスいずれか、DNSサーバやサブネットマスクの設定が可能です。
PowerShellのインストール
それでは、先ほどすこし触れたPowerShellのインストールをこの「Sconfig」で行ってみましょう。メニューから「4)リモート管理の構成」を選択し、「 2)Windows PowerShell を有効にする」へ進みます。すると再起動要求画面が表示され指示に従います。
図9 PowerShellのインストール
PowerShellを使用する場合には、「 PowerShell」と入力すれば切り替わります。
それでは最後に「Sconfig」によるリモート管理の設定を行います。メニューから「4)リモート管理の構成」を選択し、「 1)MMCリモート管理を許可する」と「3)サーバーマネージャのリモート管理を許可する」を有効にします(図10) 。
図10 リモート管理を有効にする
あとはフルインストールされたマシンのサーバーマネージャなどから「別のコンピュータへ接続」すればCoreマシンをGUIで管理することが可能です。Coreが身近になるありがたい新機能ですね。
次回はActive Directoryについてご紹介したいと思います。