Microsoft社による Windows Server 2003 のサポートが2015年夏に終了します。生徒のアカウントをはじめ,生徒実習室のコンピュータやデータの管理等で利用していた学校では,サポート終了後の管理についてさまざまな方法を検討されていると思います。そこで,古いサーバの有効活用の一つとして,フリーソフトウェアのLinuxディストリビューションであるCentOSとフリーソフトウェアSambaを用いたサーバの構築について紹介します。このSambaは,Windowsネットワークを実装したファイルサーバ構築のための無料ソフトウェアとして古くから知られています。しかし,「Active Directory機能が利用できない」,「グループポリシーを配布できない」など制約が多くありました。
しかし,2012年12月のSambaの大幅なバージョンアップによって,Active Directoryの機能が利用できるようになり,Windowsクライアントの管理が可能になりました。また,今まで,多くのソフトウェアが連携して実現していた機能がSambaに集約され,インストールが簡単になりました。さらに,Windows端末からドメイン管理などを行うこともできるため大変利用しやすくなりました。
ここでは,バージョンアップされたSamba4とCentOS6.5を用いたサーバ構築をします。なお,ドメイン管理の知識やグループポリシーの設定等は理解している前提で話を進めます。
あらかじめ,サーバを構築するコンピュータを用意しておきます。
はじめに,OSのインストールメディア(DVD)を作成します。インターネット接続可能なパソコンから,CentOSを頒布しているサイト(「The CentOS Project」:http://www.centos.org)の上部メニューにある「GET CENTOS」をクリックし,下部にある「Older Versions」の「then click here ≫」をクリックするとダウンロード画面が表示されます。利用するパソコンのCPUに合わせて,「i386」版(32ビット用)か「x86_64」版(64ビット用)を選んでください(miniは簡易版になるので選ばないでください)。該当のファイルをダウンロードし,ISOファイルとしてDVDを作成します。
あらかじめ用意したコンピュータをインストールメディアから起動すると,「Welcome to CentOS 6.5!」の画面が表示されます(図1)。
図1 起動画面
インストールを開始しますので,そのままEnterキーを押すと,ディスクチェックの画面に移ります(図2)。チェックを行う場合は「OK」を,次に進む場合は「Skip」を選んでクリックします(マウスが使えない場合は,キーボードの[Tab]キーで選択して[Enter]キーを押します)。
図2 ディスクチェック
GUIのインストール画面に切り替わります(図3)。「Next」をクリックします。
図3 インストール画面
言語の指定を行います(図4)。画面をスクロールし,「Japanese(日本語)」を選んで,「Next」をクリックします。
図4 言語の選択
キーボードの設定を行います(図5)。「日本語」が選択されていることを確認し「次(N)」をクリックします。
図5 キーボードの選択
ストレージデバイスの設定を行います(図6)。通常は「基本ストレージデバイス」を選択し,「次(N)」をクリックします。
図6 ストレージデバイスの選択
接続されているハードディスクの内容を消去してよいか確認されます(図7)。問題がなければ「はい。含まれていません。どのようなデータがあっても破棄してください。(Y)」を選んでください。
図7 ストレージデバイスの警告
続いて,ホスト名を指定します(図8)。今回は「centos.home.local」とし,「次(N)」をクリックします。
図8 ホスト名の指定
タイムゾーンの指定は,「アジア/東京」になっていることを確認して「次(N)」をクリックします(図9)。
図9 タイムゾーンの指定
「root」ユーザのパスワード設定を行います(図10)。このrootはWindowsでいうAdministratorと同じです。複雑なパスワードにしてください。もし,脆弱なパスワードを指定すると,警告画面が表示されます。「とにかく使用する(U)」を選択すれば,簡単なパスワードのままで続行できますがお薦めできません。
図10 rootパスワードの指定
ここでは,インストールのタイプを指定します(図11)。今回は,新規にインストールしますので「すべての領域を使用する」を選択してください。また,「パーティションのレイアウトをレビューまたは修正する(V)」にチェックを入れ,「次(N)」をクリックします。
図11 インストールタイプの指定
つづいてパーティションの指定になります(図12)。画面では,ハードディスクドライブが1台のコンピュータの画面が表示されています。複数のハードディスクドライブが接続されている場合は,表示が異なります。
ここでは,「/share」ディレクトリを作成していきます。「/share」ディレクトリには,配布フォルダ,提出フォルダ,個人フォルダを作ります。
図12 パーティションの指定1
まず,デバイス名が「lv_root」を選択し,「編集」をクリックすると「論理ボリュームを編集」画面が表示されるので,「/share」ディレクトリに必要なサイズを差し引いたサイズを入力し,「OK」をクリックします(図13)。
図13 パーティションの指定
「空き」という項目が追加されます(図14)。「空き」を選択し,「作成(C)」をクリックします。
図14 パーティションの指定3
「ストレージを作成」画面が表示されます(図15)。「LVM論理ボリューム」を選び,「vg_centos」になったことを確認し「作成する(R)」をクリックします。
図15 パーティションの指定4
「論理ボリュームを作成」画面が表示されます(図16)。「マウントポイント」に「/share」を入力します。論理ボリューム名(L)は適宜変更し(今回はlv_shareにしました),「OK」をクリックします。
図16 パーティションの指定5
元の画面に戻りますので,入力した内容に誤りがなければ「次(N)」をクリックします。「ストレージ構成をディスクに書き込み中」画面が出ますので,「変更をディスクに書き込み(W)」をクリックします(図17)。
図17 最終確認
しばらく待つと,「ブートローダーの指定」,「ソフトウェアの追加」を行う画面に切り替わります。どちらもそのまま「次(N)」をクリックしてください。ファイルのコピーが始まります。すべてのコピーが終了すると,完了画面が表示されます(図18)。「再起動(T)」をクリックして,再起動させます。
なお,インストール完了後,DVDがドライブから出てきたら取り出しておきます(DVDがドライブに入ったまま再起動が進むと,再びインストーラが動き出してしまいます)。
図18 完了画面
再起動すると,インストールの最終段階になります。
「ようこそ」,「ライセンス情報」画面は,内容を確認し「進む(F)」をクリックします。
「ユーザーの作成」画面(図19)では,通常利用するユーザを作成します。rootユーザはさまざまな権限をもつので,日常の業務では利用せず,この画面で作成する一般ユーザを利用することをお勧めします。ここでも脆弱なパスワードの場合は,警告が表示されます。
図19 ユーザーの作成
「日付と時刻」画面は,内容を確認し「進む(F)」をクリックします。
「Kdump」画面では,エラーが表示される場合があります(図20)。これは,Kdumpを自動有効化するにはメモリが不足している場合に表示されます。致命的なエラーではありません。警告画面の「OK」をクリックし,「進む(F)」をクリックします。
図20 Kdumpのエラー
「Kdump」画面では特に指定せず,「終了(F)」をクリックします。
これで,インストールは完了です。
ここからは,CentOSの初期設定を行います。通常利用であれば,先ほど作成した一般ユーザでログインすべきですが,rootユーザの権限が各所で必要になるため,最初からrootユーザでログインした状態で作業を進めます。
コンピュータにネットワークケーブルを接続し,再起動してrootユーザでログインします。コンピュータが起動したら自動的にネットワークへ接続する設定をします。パネル(CentOSではデスクトップ画面のことを「パネル」といいます)上部の右側にあるネットワークアイコンを右クリックし,「接続を編集する...」をクリックします(図21)。
図21 ネットワーク接続
ネットワーク接続の画面が表示されます(図22)。NICが複数接続されている場合は,「System eth」の数字が幾つか表示されます。通常は0番を選択し,「編集」をクリックします。DHCP環境であれば,「自動接続する(A)」のチェックマークを入れ,「適用...」をクリックして,ウィンドウを閉じます(図23)。図24のように,ネットワークの「方法」の初期値は「自動(DHCP)」になっているので,DHCP環境であればIPアドレスが自動的に割り当てられます。
DHCP環境でなければ,固定IP等を設定する必要があります。「自動接続する(A)」のチェックマークをいれた後,「IPv4のセッティング」タブの「方法」を「手動」に変更します。「追加(A)」ボタンをクリックし,「アドレス」と「DNSサーバー(D)」の欄に,以下の表に示すような値を入力して「適用...」をクリックし,ウィンドウを閉じます(図25)。
もう一度,ネットワークアイコンを右クリックし,「ネットワークを有効にする(N)」のチェックマークを入れることで,ネットワークの利用が可能になります。
図22 ネットワークの設定1
図23 ネットワークの設定2
図24 ネットワークの設定3
図25 ネットワークの設定4
アドレス | このコンピュータに設定するIPアドレス |
ネットマスク | (通常は)24(または255.255.255.0) |
ゲートウェイ | ネットワークの出口となる機器のIPアドレス |
DNSサーバー(D) | DNSをサービスしているサーバのIPアドレス |
Proxy環境下では,Proxyの設定が必要になります。Proxyの有無や設定などはネットワーク管理者にお尋ねください。
Proxyの設定は,パネル上部の「システム」−「設定」−「ネットワークのプロキシ」を選びます。Windowsの場合の設定画面とほぼ同様です。必要な設定を行ってください。(図26)。
図26 Proxy設定
ディレクトリを開く動作を指定します。標準では,ディレクトリを開くと新しいウィンドウが開きますが,Windowsと同様に同じウィンドウ内で開くことも可能です。
パネル上部の「システム」−「設定」−「ファイル管理」をクリックします。「動作」タブを選び,「常にブラウザ・ウィンドウで開く(B)」にチェックマークを入れ,「閉じる(C)」をクリックします。(図27)。
図27 ファイル管理の設定
本来はセキュリティの強度が落ちるため解除はしませんが,セキュリティにより各種設定時のトラブルの原因究明が難しくなりますので,ここでは一旦解除します。
パネル上部の「アプリケーション」−「システムツール」−「端末」をクリックして,端末画面を表示させます。DOS画面のようなCUI環境です(以降,この画面を「端末画面」と称し,「端末画面を開く」という場合はこの操作をします)。
ここに次のコマンドを入力し,Enterキーを押します(アンダーライン部のみ入力)(図28)。
図28 セキュリティ解除1
※なお,端末画面を閉じたい場合は,「exit」と入力するか,[Ctrl]キーと[D]キーを同時に押してください。
※実際に運用する際には,セキュリティの設定を元に戻してください。上記コマンドのstopをstartに,offをonに直して入力します。
次に,ファイルの書き換えを行います。パネル上の「コンピュータ」をダブルクリックして開き,「ファイルシステム」−「etc」−「selinux」にある「config」をテキストエディタ(標準装備されているgedit等)で開きます。
「SELINUX=enforcing」を「SELINUX=disabled」に書き換え,上書き保存します(図29)。
図29 セキュリティ解除2
Active Directoryでは,サーバとクライアントの時刻同期が必要になります。サーバ自身を日本標準時に合わせることで,LAN内の各コンピュータの時刻が統一されます。
まず,パネル上から「コンピュータ」をダブルクリックして開き,「ファイルシステム」−「etc」にある「ntp.conf」をテキストエディタで開きます。
以下の4行を探し,すべて削除します。
server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst |
削除した行と同じ場所に以下の1行を追加し,上書き保存します。
server ntp.nict.jp |
続いて,端末画面を表示させ,次のコマンドを入力します(アンダーライン部のみ)。
[root@centos ~]# service ntpd start
ntpd を起動中: [ OK ]
[root@centos ~]# chkconfig ntpd on
しばらく(数分)してから,次のコマンドを入力します。
[root@centos ~]# ntpq -p
入力後に表示された行の先頭に「*」が表示されていれば,外部サーバとの同期が行われています。確認したら,端末画面を閉じます。
CentOSを標準でインストールすると,Samba3がインストールされます。新しいバージョンと同時に利用すると不具合が生じる可能性があるため,削除します。
ソフトウェアの削除を行うには,パネル上部の「システム」−「管理」−「ソフトウェアの追加/削除」を選択します。表示されたウィンドウの左上のテキストボックスに「samba」と入力し,「検索(n)」をクリックします(図30)。
図30 インストールされているソフトウェアの検索
検索された結果が右側のボックスに表示されますので,すべての項目のチェックマークを外し,右下の「適用(A)」をクリックします。さらに,削除の必要な追加パッケージの一覧が表示されます(図31)ので「削除」をクリックします。
同様に「sssd-common」を検索し,削除を行います。
図31 ソフトウェアの削除
削除が完了すると,元の画面に戻ります。Sambaを利用する上で,ファイルアクセス権の設定のためファイルシステムの変更が必要です。この書き換えは,パネル上の「コンピュータ」をダブルクリックして開き,「ファイルシステム」−「etc」にある「fstab」をテキストエディタ等で開きます。
「/dev/mapper/vg_centos-lv_share/share」の行を探し,「defaults」の後に,「,user_attr,acl,barrier=1」を追記します(図32)。
図32 fstabの編集
ここでシステムを再起動させます。
端末画面を表示させ,次のコマンドを入力していきます(アンダーライン部のみ)。
[root@centos ~]# yum install epel-release
コマンドを実行すると確認メッセージが表示されるので,「y」と入力します。
次にブラウザを起動させ,「EL6.wing.repo」を提供しているサイト(http://wing-repo.net/wing/6/)を開きます。表示されている「EL6.wing.repo」をダウンロードします。保存先のディレクトリは,「ファイル・システム」−「etc」−「yum.repos.d」です。
ダウンロードしたファイルをテキストエディタ等で開き,[wing]セクションにある「enabled=0」を「enabled=1」に書き換え,上書きします(図33)。
図33 EL6.wing.repoの編集
これで, Sambaをインストールする準備が整いました。
Sambaの最新情報は,「The CentOS Project」(http://www.samba.org/)と「SambaWiki」(https://wiki.samba.org/)を参考にしてください。今回は,Samba4.1.14を利用します。
「SambaWiki」によると,Samba4でActiveDirectory等のさまざまな機能を利用するためには,Samba4以外に次のソフトウェアが必要になります。
perl | setroubleshoot-server | libxml2-devel |
gcc | libaio-devel | libacl-devel |
libacl-devel | setroubleshoot-plugins | libsepol-devel |
libblkid-devel | policycoreutils-python | libattr-devel |
gnutls-devel | libsemanage-python | keyutils-libs-devel |
readline-devel | setools-libs-python | cyrus-sasl-devel |
python-devel | setools-libs | cups-devel |
gdb | popt-devel | bind-utils |
pkgconfig | libpcap-devel | libxslt |
krb5-workstation | sqlite-devel | docbook-style-xsl |
zlib-devel | libidn-devel |
Sambaをインストールする前に,上記32個のソフトウェアをインストールします。
端末画面を開き,次のようにコマンドを入力します(アンダーライン部のみ)。
[root@centos ~]# yum install perl (←追加ソフトウェア)
perlに続き,その他31本のソフトウェアを順次インストールしていきます。次のように,空白で区切って,まとめて行っても構いません。
[root@centos ~]# yum install gcc libacl-devel libblkid-devel gnutls-devel readline-devel
さらに,インストールの途中でソフトウェアの追加を求められることがありますが,「yes」と答えてください。
次に,Samba4本体のインストールを行います。先ほどの端末画面に,引き続き
[root@centos ~]# yum install samba41 samba41-client ldb-tools
と入力します。最後に「complete」が表示されれば,インストールの終了です。
ソフトウェアの更新を行います。Windows Updateと同じようなものと考えてください。
まず,更新できないパッケージを除外リストに書き込みます。
パネル上から「コンピュータ」をダブルクリックして開き,「ファイルシステム」−「etc」にある「yum.conf」をテキストエディタ等で開きます。最後の行の下に「exclude=sssd-common*」を追加し,上書き保存して終了します。
パネル上部の「システム」−「管理」−「ソフトウェア更新」と選択していきます。rootユーザで実行しているため,確認画面が表示されますので,「とにかく続ける(A)」をクリックします。「ソフトウェア更新」画面が表示されますので,「更新をインストール(I)」をクリックします(図34)。
図34 ソフトウェアの更新
「パッケージのソースを信頼しますか。」画面が表示されますので,「はい(Y)」をクリックします。
更新が終了すると,「選択されたすべての更新がインストールされました」と表示されますので,「OK(O)」をクリックします。
この作業を,「新しい更新はありません。」と表示されるまで繰り返し行います。途中で再起動が必要な場合がありますので,その際は再起動をします。
以上で,Sambaサーバとして動き出しますが,通常ではサーバのIPアドレスは固定して運用します。また,DNSサーバの設定も必要となるので,ここでそれらの設定を行います。
アドレス | このコンピュータに設定するIPアドレス |
ネットマスク | (通常は)24(または255.255.255.0) |
ゲートウェイ | ネットワークの出口となる機器のIPアドレス |
DNSサーバー(D) | このコンピュータのIPアドレス |
※3(1)で固定IPを設定した場合も,DNSの設定は変更してください。
設定方法は「3(1)ネットワークの接続」(※DHCP環境ではない場合)を参照(こちらをクリック)してください。
それではSambaの初期設定を行います。
設定項目をあらかじめ決めておきます。それぞれの環境に合わせ,読み替えてください。
ドメイン名 | home.local |
利用DNS | Samba内蔵 |
DNSフォワード先 | (ネットワークワーク内で初めからあるDNSサーバのIPアドレス)例:192.168.200.254 * |
Administratorパスワード | 大文字・小文字・記号・数字のうち3種類を使い,8文字以上 |
ドメインレベル | 2008R2相当 |
* ブロードバンドルータ等
端末画面を開き,次のコマンドを入力します(アンダーライン部のみ)。
対話形式で質問に答えていきます(ほとんど初期設定のままで問題ありません)。
[root@centos ~]# samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2 (←2008とR2の間にアンダースコアがあります)
Realm [HOME.LOCAL]:(そのままEnterキーを押す)
Domain [HOME]:(そのままEnterキーを押す)
Server Role (dc, member, standalone) [DC]:(そのままEnterキーを押す)
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:(そのままEnterキーを押す)
DNS forwarder IP address (write 'none' to disable forwarding) [***.***.***.***]:(ネットワークワーク内で初めからあるDNSサーバのIPアドレス)例:192.168.200.254
Administrator password:(設定項目で考えたパスワードを入力する)
Retype password:(確認のため同じパスワードを入力する)
しばらくコンピュータ内で設定作業が行われ,最後に「DOMAIN SID」などが表示されれば終了です。
続いて,kerberosの設定ファイルをコピーします。
[root@centos ~]# cp /var/lib/samba/private/krb5.conf /etc
cp: `/etc/krb5.conf`を上書きしてもよろしいですか(yes/no)?y
Sambaのサービスを開始し,起動時に自動的に開始する設定を行います。
[root@centos ~]# service samba start
Starting samba: [ OK ]
[root@centos ~]# chkconfig samba on
正しくインストール,設定ができたか,動作確認を行います。
smbclientを使用して,内部からの接続を確認します。端末画面を表示させ,次の1行を入力し,実行させます。図35のように表示されることを確認します。
[root@centos ~]# smbclient -L localhost -U%
図35 動作確認の画面
続いて,kerberos認証の動作を確認します。次の1行目と2行目を続けて入力します。3行目のように表示されれば,動作確認は完了です。
[root@centos ~]# kinit administrator@HOME.LOCAL
Password for administrator@HOME.LOCAL:パスワードを入力します(表示はされません)
Warning: Your password will expire in 41 days on (日付と時間が表示されます)
これで,最低限の動作確認は完了しました。続いて,ネットワーク接続の認められたクライアントとなるWindowsパソコンをドメインに参加させます。
Windows Serverで作成するドメインと同様の方法なので,参加方法は割愛しますが,DNSの設定をSambaをインストールしたサーバのIPアドレスに変更しないと名前解決ができないので注意してください。
ほとんどのグループポリシーはWindows端末で制御可能ですが,パスワードポリシーはCentOS/Samba上で設定を行います。端末画面を表示させ,次の1行目を入力します。2行目以降が表示されれば設定完了です。
[root@centos ~]# samba-tool domain passwordsettings set --complexity=off --min-pwd-length=0 --max-pwd-age=0
Password complexity deactivated!
Minimum password length changed!
Maximum password age changed!
All changes applied successfully!
パスワードの複雑さの解除,パスワード長の制限解除,パスワード期間の解除など,コンピュータ実習室など生徒が利用する環境にあわせて変更してください。
ドメインに参加したクライアントパソコンのOSがWindowsの場合,Microsoftリモートサーバー管理ツール(RSAT)をインストールして,サーバを管理することができます。Microsoft社のWebサイトからダウンロードしてください。RSATはインストールしただけでは,利用できません。「リモートサーバー管理ツール」を有効にする必要があります。「コントロールパネル(カテゴリ表示)」−「プログラム」−「Windowsの機能の有効化または無効化」を開き,「リモートサーバー管理ツール」にチェックマークを入れます。不要な機能は適宜チェックを外して削除してください。
図36 管理ツールのインストール
スタートメニューに「管理ツール」が表示されれば準備完了です。これで,通常のWindows Serverと同様に,しかもクライアントパソコンからGUI環境で操作ができるようになりました。
共有フォルダの設定をサーバのCentOS/Samba上で行います。
今回は,「/share」ディレクトリを使用します。
「/share」ディレクトリのアクセス権を変更します。端末画面を開き,次のコマンドを入力します。
[root@centos ~]# chmod 777 /share
これで,全ユーザにアクセス権が与えられました。
次に,「share」ディレクトリ内に「配布」・「提出」・「個人」ディレクトリを作成します。
パネル上の「コンピュータ」をダブルクリックして開き,「ファイルシステム」−「etc」−「samba」にある「smb.conf」をテキストエディタ等で開きます。
共有フォルダ用に次の行を増やします。
[共有フォルダ]
path = /share
read only = No
browseable = No
[配布]
path = /share/配布
read only = No
[提出]
path = /share/提出
read only = No
[個人]
path = /share/個人
read only = No
上書き保存をして,Sambaを再起動させます。
端末画面を開き,次のコマンドを入力します。
[root@centos ~]# service samba restart
Shutting down samba: [ OK ]
Starting samba: [ OK ]
これで,WindowsOSの端末から共有フォルダが利用できるようになります。
Windows端末でセキュリティ設定を行うことができます。「share」は隠し共有にしてありますが,Windowsのように「$」をつける必要はありません。
Windows Serverとほぼ同じ機能をもつ,CentOS/Sambaサーバが完成しました。生徒のアカウント管理やデータの管理などが,CentOS/Sambaサーバでもできるようになります。しかも,管理のほとんどは,CentOS/Sambaサーバで運用していることを意識することなく,Windowsの端末で行うことができます。
今回は,フリーのOSとソフトウェアを用いて,Active Directoryサーバ,ファイルサーバを構築しました。ただし,Active Directoryサーバが1台ではトラブルが起きたときに,ネットワークにログインできなくなります。余裕があれば,ActiveDirectoryサーバの追加を検討するとよいでしょう。
なお,3(4)で解除したセキュリティの復元も忘れずに行ってください。
The CentOS Project http://www.centos.org
The official SAMBA site http://www.samba.org/
UnixPower on Networking http://www.unix-power.net/
IT Pro http://itpro.nikkeibp.co.jp/
Microsoft,Windows,Windows Server 2003,Windows Server 2008 は米国 Microsoft Corporation の米国及び各国における商標または登録商標です。
その他,本コンテンツに掲載されているすべてのブランド名と製品名,商標及び登録商標はそれぞれの帰属者の所有物です。本コンテンツでは©,®,TM などは明記してありません。