Samba4でのActive Directory構築(目次)
| Table of Contents |
はじめに
正式リリース版であるSamba4.0を利用してActive Directoryを構築します。
尚、構築手順は「Samba AD DC HOWTO」を参考にしています。
http://wiki.samba.org/index.php/Samba4/HOWTO
Samba4の新機能
Samba3.xとの大きな違いは以下の通りです。
- ActiveDirectoryのログオンサーバとして動作させる事が可能になった
-
Samba本体にLDAP、Kerberos、DNSが含まれるようになった
環境
|
|
sambaサーバ
-
OS
- CentOS 6.3 (2.6.32-279.14.1.el6.x86_64)
-
パッケージ
- samba-4.0.5.tar.gz
-
その他
- IP: 192.168.11.200
- ドメイン: SAMDOM.OSS-D.NET
- ホスト名(FQDN): serv200.samdom.oss-d.net
windowsクライアント
-
OS
- windows vista sp2
-
その他
- IP: 192.168.11.13
- この端末をAD参加させ、その後で管理ツールをインストールします。
Sambaのインストール
準備
-
Samba4に必要なパッケージをインストールします。
# yum install libacl-devel libblkid-devel gnutls-devel \ readline-devel python-devel gdb pkgconfig krb5-workstation \ zlib-devel setroubleshoot-server \ setroubleshoot-plugins policycoreutils-python \ libsemanage-python setools-libs-python setools-libs \ popt-devel libpcap-devel sqlite-devel libidn-devel \ libxml2-devel libacl-devel libsepol-devel libattr-devel \ keyutils-libs-devel cyrus-sasl-devel
Sambaのダウンロード
-
samba4をダウンロードします。 最新版は
Sambaサイト
からダウンロード可能です。
$ wget http://www.samba.org/samba/ftp/stable/samba-4.0.5.tar.gz
Sambaのインストール
-
問題解決に役立つオプションを追加してconfigureを実行します。
$ tar zxvf samba-4.0.5.tar.gz$ cd samba-4.0.5$ ./configure --enable-debug --enable-selftest$ make# make install
-
Samba4サーバを新規ドメインとして使用するために基本ユーザデータベースのセットアップを行います。
# /usr/local/samba/bin/samba-tool domain provisionRealm: samdom.oss-d.net Domain [samdom]:samdom Server Role (dc, member, standalone) [dc]:dc DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [192.168.11.1]:Administrator password: Retype password:
設定項目 設定値 Realm kerberosのレルム(ドメイン名を入力) Domain ADで利用するドメイン名を指定します。 Server Role サーバの役割を選択します。新規ドメインのためDCを選択します。 DNS backend DNSを設定する。今回は本体に含まれるものを利用する。 DNS forwarder IP address フォワーダとなるDNSを設定する Administrator password 管理者パスワード(英大文字、英小文字、数字、記号の4つから3種類を含めること)
-
上記provisionの実行結果
Server Role: active directory domain controllerHostname: serv200NetBIOS Domain: SAMDOMDNS Domain: samdom.oss-d.netDOMAIN SID: S-1-5-21-**********-**********-***************
-
上記provisionの実行結果
-
Sambaを起動します。
# /usr/local/samba/sbin/samba
-
起動したSambaとSamba-clientのバージョンが4.xであることを確認します。
# /usr/local/samba/sbin/samba -VVersion 4.0.5# /usr/local/samba/bin/smbclient --versionVersion 4.0.5
-
サーバ上で利用可能な共有リストを確認します。
# /usr/local/samba/bin/smbclient -L localhost -U%Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.0.5] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.0.5)Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.0.5] Server Comment --------- ------- Workgroup Master --------- -------
-
「netlogon」と「sysvol」は、Active Directoryの作動に必要となる基本共有です。
-
「netlogon」と「sysvol」は、Active Directoryの作動に必要となる基本共有です。
-
認証テストとして、netlogonへadministratorで接続します。
パスワードはprovisionで設定したものを入力してプロンプトが表示されれば問題ありません。# /usr/local/samba/bin/smbclient //localhost/netlogon -U administrator Enter administrator's password: Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.0.5] smb: \> exit
Sambaの設定
DNSの設定
DNSとして「SAMBA_INTERNAL」を設定した場合
-
smb.confへ下記を設定します。
# vi /usr/local/samba/etc/smb.confdns forwarder = 192.168.11.1
-
resolv.confへ下記を設定します。
# vi /etc/resolv.confdomain samdom.oss-d.netnameserver 127.0.0.1
DNSの動作確認
-
SRVレコードの名前解決ができる事を確認します。
# host -t SRV _ldap._tcp.samdom.oss-d.net._ldap._tcp.samdom.oss-d.net has SRV record 0 100 389 serv200.samdom.oss-d.net.# host -t SRV _kerberos._udp.samdom.oss-d.net._kerberos._udp.samdom.oss-d.net has SRV record 0 100 88 serv200.samdom.oss-d.net.# host -t A serv200.samdom.oss-d.net.serv200.samdom.oss-d.net has address 192.168.11.200
Kerberos認証の動作確認
動作確認なので、この作業はスキップしても構いません。
Kerberosの動作確認
-
動作確認のため、Kerberosクライアントの設定を行います。
# vi /etc/krb5.conf[libdefaults] default_realm = SAMDOM.OSS-D.NET dns_lookup_realm = false dns_lookup_kdc = true
-
provision時に作成されたファイルをベースにして下さい。
# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
Kerberosの動作確認
-
administratorで認証の動作確認を行います。
パスワードはprovisionで設定したものを入力します。# kinit Password for :Warning: Your password will expire in 41 days on Sun Jun 2 14:12:42 2013
-
klistコマンドでチケット内容を表示します。
# klistTicket cache: FILE:/tmp/krb5cc_0Default principal: Valid starting Expires Service principal04/21/13 14:31:50 04/22/13 00:31:50 krbtgt/ renew until 04/22/13 14:31:08
DNSの動的更新
-
動的更新された内容を確認します。
# /usr/local/samba/sbin/samba_dnsupdate --verbose --all-namesIPs: ['192.168.11.200']Calling nsupdate for A samdom.oss-d.net 192.168.11.200Outgoing update query: (省略)
NTPの設定
NTPの設定は必須ではないため今回は省略します。
-
NTPの設定手順は下記が参考になります。
http://wiki.samba.org/index.php/Configure_NTP
ファイル共有の設定
-
共有フォルダ「/data/test」を作成します
# mkdir -m 777 -p /data/test
-
smb.confに共有フォルダの設定を追加します。
# vi /usr/local/samba/etc/smb.conf[test] path = /data/test comment = Test Share read only = no
自動起動の設定
-
下記の通り自動起動ファイルを作成します。
# vi /etc/init.d/samba4
#! /bin/bash # # samba4 Bring up/down samba4 service # # chkconfig: - 90 10 # description: Activates/Deactivates all samba4 interfaces configured to \ # start at boot time. # ### BEGIN INIT INFO # Provides: # Should-Start: # Short-Description: Bring up/down samba4 # Description: Bring up/down samba4 ### END INIT INFO # Source function library. . / etc / init . d / functions if [ - f / etc / sysconfig / samba4 ] ; then . / etc / sysconfig / samba4 fi CWD =$ ( pwd ) prog = " samba4 " start ( ) { # Attach irda device echo - n $ " Starting $prog: " / usr / local / samba / sbin / samba sleep 2 if ps ax | grep - v " grep " | grep - q / samba / sbin / samba ; then success $ " samba4 startup " ; else failure $ " samba4 startup " ; fi echo } stop ( ) { # Stop service. echo - n $ " Shutting down $prog: " killall samba sleep 2 if ps ax | grep - v " grep " | grep - q / samba / sbin / samba ; then failure $ " samba4 shutdown " ; else success $ " samba4 shutdown " ; fi echo } status ( ) { / usr / local / samba / sbin / samba -- show - build } # See how we were called. case " $1 " in start ) start ;; stop ) stop ;; status ) status irattach ;; restart | reload ) stop start ;;*) echo $ " Usage: $0 {start|stop|restart|status} " exit 1 esac exit 0
-
自動起動スクリプトへ実行権限を付与して保存します。
# chmod 0755 /etc/init.d/samba4# ln -s /etc/init.d/samba4 /etc/rc3.d/S80samba4
-
chkconfigコマンドで自動起動をONにします
# chkconfig --add samba4# chkconfig --level 35 samba4 on
Samba Active Directory へのユーザ追加
-
ユーザを追加します。
# /usr/local/samba/bin/samba-tool user add test_userNew Password:Retype Password:User 'test_user' created successfully
-
割り当てられたSIDは下記コマンドで調査できます。
# /usr/local/samba/bin/wbinfo --name-to-sid test_userS-1-5-21-387530356-439494438-163505692-1104 SID_USER (1)
-
割り当てられたユーザIDは下記コマンドで調査できます。
# /usr/local/samba/bin/wbinfo --sid-to-uid S-1-5-21-387530356-439494438-163505692-11043000019
wiondwosクライアントのドメイン参加
Windowsクライアントをドメインに参加させます。
クライアント側での事前準備
-
時刻を合わせます。時刻が5分以上ずれるとKerberos認証に失敗するためです。
-
DNSをsamba4サーバに変更します。
ドメイン参加
-
[スタートメニュー] → [システムとメンテナンス] → [システム] で画面を開き、[設定と変更]を選択します。
-
[コンピュータタブ]から変更ボタンを押します。
-
ドメイン名として「SAMDOM」を入力します。
-
ドメイン参加時の認証は、administratorユーザで実施します。
-
「ドメインへようこそ」と表示されたら再起動します。
-
再起動後、test_userでログオンできれば完了です。
ユーザ名 :test_userパスワード:【ユーザ作成時の設定パスワード】
管理ツールの導入
-
ADの管理方法は大きく2種類あります。今回は1のWindows用の管理ツールを利用します。
1. Windows用の管理ツールを利用する(Windows端末から管理する)2. Samba-toolコマンドで管理する(Sambaサーバ上で直接コマンドを実行する)
Microsoft リモート サーバー管理ツール (RSAT)
-
ドメインユーザでWindowsクライアント(192.168.11.13)へログオンします。
ユーザ名 :test_userパスワード:【ユーザ作成時の設定パスワード】
-
管理ツールをダウンロードしてインストールします。
-
windows vista
http://www.microsoft.com/downloads/details.aspx?FamilyId=9FF6E897-23CE-4A36-B7FC-D52065DE9960&displaylang=ja -
windows7
http://www.microsoft.com/downloads/details.aspx?FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&displaylang=ja
-
windows vista
管理ツールの機能を有効にする
-
下記を選択して設定画面を表示します。
[コントロールパネル] → [プログラム] → [Windowsの機能の有効化または無効化]
-
[リモート サーバー管理ツール]をチェックして機能を有効にします。
管理ツールをスタートメニューに表示させる
-
下記の通りスタートメニューのカスタマイズ画面を開きます。
[スタートメニュー] → [プロパティ] → [カスタマイズ]
-
システム管理ツールの[すべてのプログラム]メニューと[スタート]メニューに表示するを選択します。
管理ツールの起動
-
[スタートメニュー]→[管理ツール]から管理ツールの起動が可能です。
-
[Active Directory ユーザーとコンピュータ]からユーザやコンピュータの追加削除が可能です。
移動ユーザプロファイルの設定
詳細は割愛しますが、移動ユーザプロファイルを有効すると、ドメイン参加済であれば、どの端末にログオンしても自分の個人設定が利用可能です。
smb.confの設定
-
smb.confへ設定を追加します。
# vi /usr/local/samba/etc/smb.conf[profiles] path = /usr/local/samba/var/profiles blowseble = no read only = no
-
ユーザプロファイルの保存先ディレクトリを作成します。
プロファイルはログオンユーザの権限で作成されるため、アクセス権を設定します。# mkdir /usr/local/samba/var/profiles# chmod 1777 /usr/local/samba/var/profiles
プロファイルパスの設定
-
管理ツールから[Active Directory ユーザーとコンピュータ]を起動します。起動時は右クリックで管理者として実行を選択します。
[スタートメニュー] → [管理ツール] → [Active Directory ユーザーとコンピュータ]
-
test_userのプロファイルを変更します。
-
プロファイルパスは「\\serv200.samdom.oss-d.net\profiles\%USERNAME%」を設定します。
-
尚、サーバ名に
環境変数を利用することは推奨されません
-
尚、サーバ名に
環境変数を利用することは推奨されません
移動ユーザープロファイルの動作確認
-
test_userでログオン後にプロファイルの作成を確認します。
# ls /usr/local/samba/var/profiles/test_user.V2
-
vista以降はディレクトリ名に.V2が付きます。
-
vista以降はディレクトリ名に.V2が付きます。
FAQ
adminstratorでの認証に失敗する
-
【Q】adminstratorでの認証に失敗して下記エラーが表示される
the password does not meet the complexity criteria!
-
【A】下記2つの要件を満たすパスワードを設定してください
1. パスワード長が8文字以上2. 3種類以上の文字を含むこと ・英大文字(A-Z) ・英小文字(a-z) ・数字(0-9) ・記号
Kerberos認証の確認で失敗する
-
【Q】Kerberos認証の確認で下記エラーが発生して失敗する
kinit: Cannot find KDC for requested realm while getting initial credentials
- 【A】「/etc/krb5.conf」の設定ファイルを見直して下さい。