Ubuntu15.04とSambaの4.3.0(現時点での最新安定版)を使って、①内蔵DNSサーバーを使う方法②BIND9_FLATFILEを使う方法を改めて投稿します。今回は、内蔵DNSサーバーを使う方法です。こちらの方が取り敢えず簡単です。いずれもコンパイル版を使用しましたが何故か、既に投稿しましたように、DNSサーバーの動作がおかしい。これについては、デスクトップ版では知らないうちに簡易DNSのdnsmasqデーモンが動いており、これが内蔵DNS、フラット版ともに動作を邪魔していました。これについては、次のサイトの記事で指摘されていた通りでした。
http://case-of-t.net/2012/12/25/samba-ad-dc-howto/
内蔵DNSまたはbindがうまく動作してくれない原因は、上の記事の次の部分にあります。
===================================
警告: もし X Windowsが起動している場合、ネットワークマネージャーはおそらく dnsmasqを起動するでしょう、ログをチェックして、このような行がないか確認してください:
Failed to bind to 0.0.0.0:53 TCP - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED
これを無効化する必要があるなら、 /etc/NetworkManager/NetworkManager.conf を好きなエディタでroot権限で開き、dns=dnsmasq の行をコメントアウトしてください、そして network-manager を再起動します。
===================================
なお、こちらの場合も一度Ubuntuを再起動させたほうが良いと思います。Ubuntu 15.04/15.10ベータ版で動作を確認しています。この設定を前提には、SambaによるActive Directory Domain Conroller(AD DC)の構築方法につきましてはこちらの投稿記事こちら(http://www2.it-ishin.com/archives/2013/07/17/84.html)を参照しにしました。
これから、内蔵DNS版による構築の方法について述べます。メリットとしては、メリットとしては作成が極めて容易であること。ただし、/usr/local/samba/privateにdnsのディレクトリはありません。従って、正引きゾーンファイルは無いようです。これについては、samba-toolコマンドを使ってレコードを作成できますので、安心してください。
サーバー版ではこのくだりは必要ないと思いますが、デスクトップ版ではNetworkManagerでネットワーク環境をコントロールするため、dnssmasqが簡易DNSサーバーとしてポート番号53を専有します。したがって、この簡易DNSサーバーが起動しないようにする必要があります。/etc/NetworkManager/NetworkManager.conf を好きなエディタでroot権限で開き、dns=dnsmasq の行をコメントアウトして下さい。Ubuntuを再起動します。
【1】Samba4のコンパイル
Ubuntu15.04でゲットできるSamba4の最新版は4.3.0ですので、この正式版(ソース版)を公式サイトからダウンロードします。コンパイルにあたっては、次のソフトをapt-get installでゲットしておく必要があるようです(ソフトウェアデザイン2013年02月号に高橋元信さんの書かれた「Samba4ファーストインプレッション」による)
python-dev libattr1-dev libacl1-dev python-dev attr krb5-user dnsutils libpopt-dev lib-gnutlsなどなど。ただし、サイト管理者がconfigureしたところ、他のライブラリも必要でした。これは、apt-get または autitudeでインストールできますので、二、三度ネットワークからインストールすれば良いようです。
なお、krb5-userをインストールする際に、Realm名と管理サーバー名を聞かれるので、サイト管理者はIT-ISHIN.COM, it-ishin.comにしました。コンパイルの仕方はホームディレクトリに適当なディレクトリを作って、その中に圧縮ファィルをダウンロードします。そして、次のようにコンパイルすれば良いです。
※Ubuntu 15.04では、./configureに失敗した場合は必要なライブラリを指示してくれますので、その指示に従ってください。
$ tar xzvf samba-4.3.0.tar.gz $ cd samba-4.3.0 $ ./configure $ make $ sudo make install
終わるまで20分程度かかりますので、コーヒーでも飲みましょう。インストール先は標準で/usr/local/sambaとなります。
【2】Active Directory Domain Controller(ADDC)の作成
最もシンプルなやり方で、次のようにすれば良いです。
$ sudo ln -s /usr/local/samba/bin/samba-tool /usr/bin $ sudo mv /usr/bin/smbclient /usr/bin/smbclient3 //必要に応じて $ sudo ln -s /usr/local/samba/bin/smbclient /usr/bin $ sudo samba-tool domain provision
ここで、レルム名を聞かれるので、IT-ISHIN.COMと大文字で入力。DNSについては初期設定で内蔵DNSを使う設定になっていますので、その通りにします。その後、forwadersを聞かれます。ホスト機127.0.0.1で名前解決ができない場合はどうするのよ、という時に、インターネットの正引きを行えるDNSサーバーのIPアドレスを記入します。SOHOまたは宅内の場合は、ルーターのIPアドレスがデフォールト・ゲートウェイとDNSサーバを兼ねていますので、そのアドレスを入れます。サイト管理者−今後は、おいら−とします。
※ただし、この方法はSOHO向けで、中企業から大企業以降はBIND9_DLZを選択する必要があります。この場合は、本格的なイントラネット用のDNSサーバーを構築し、Sambaと結合させる必要があります。
【3】Bind9の起動と動作の確認
※内蔵DNSを使うので、この箇所は不要です。ただし、resolv.confの設定は必要です。最初に、resolv.confのnameserverに自身のホスト、つまり、127.0.0.1を設定します。
michiaki@ubuntu01:~$ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN # domain it-ishin.com nameserver 127.0.0.1 nameserver 192.168.1.2 //ホストのIPアドレス。必ず必要と言うものでもない。 nameserver 192.168.1.1 //宅内のルーターのIPアドレス。これも必須というものではありません。 search flets-east.jp iptvf.jp
次に、/usr/local/samba/sbin/sambaを実行します。次のようになっていれば起動はOKです。
michiaki@ubuntu10:~$ ps ax | grep samba 1497 ? Ss 0:00 /usr/local/samba/sbin/samba 1590 ? S 0:00 /usr/local/samba/sbin/samba 1591 ? S 0:00 /usr/local/samba/sbin/samba 1592 ? Ss 0:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground 1593 ? S 0:00 /usr/local/samba/sbin/samba 1594 ? S 0:00 /usr/local/samba/sbin/samba 1596 ? S 0:00 /usr/local/samba/sbin/samba 1597 ? S 0:00 /usr/local/samba/sbin/samba 1598 ? S 0:01 /usr/local/samba/sbin/samba 1599 ? S 0:00 /usr/local/samba/sbin/samba 1600 ? S 0:00 /usr/local/samba/sbin/samba 1601 ? Ss 0:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground 1602 ? S 0:00 /usr/local/samba/sbin/samba 1603 ? S 0:00 /usr/local/samba/sbin/samba 1604 ? S 0:00 /usr/local/samba/sbin/samba 1610 ? S 0:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground 1612 ? S 0:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground 1619 ? S 0:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground 3322 pts/0 S+ 0:00 grep --color=auto samba
起動確認後、内蔵DNSの動作を次のようにして確認します。なお、デーモンの終了は取り敢えず、sudo killall sambaで。
$ nslookup -type=SRV _ldap._tcp.it-ishin.com. Server: 127.0.0.1 Address: 127.0.0.1#53 _ldap._tcp.it-ishin.com service = 0 100 389 ubuntu10.it-ishin.com. $ host -t SRV _ldap._tcp.it-ishin.com. _ldap._tcp.samba4svr.com has SRV record 0 100 389 it-ishin.com. $ host -t SRV _ldap._tcp.dc._msdcs.it-ishin.com. _ldap._tcp.dc._msdcs.it-ishin.com has SRV record 0 100 389 ubuntu10.it-ishin.com. $ host -t SRV _kerberos._udp.it-ishin.com. _kerberos._udp.samba4svr.com has SRV record 0 100 88 ubuntu.samba4svr.com. $ host -t A ubuntu01.it-ishin.com. ubuntu.it-ishin.com has address 192.168.1.2
ここで、nxdomainなどと言われたら、NetworkManager.confのdnsmasqのところにコメントを加えていないか、または、DNSの設定が間違っています。コメントアウトするか、または、設定を見なおして見ましょう。
【重要】すべに述べましたように、かなりの確率で上記コマンドが正常に実行されない場合があります。これは、デスクトップ環境の場合、dnsmasqという簡易DNSが動作しており、bind9とバッティングしているためです。その場合は、次の設定ファイル/etc/NetworkManager/NetworkManager.confを編集し、その中のdnsmasqをコメントアウトしてください。そして、Ubuntuを再起動してください。
なお、併せてkerberosの動作の確認も必要です。取り敢えず、おまじないです。
$ sudo kinit Administrator@IT-ISHIN.COM Password for Administrator@IT-ISHIN.COM: Warning: Your password will expire in 41 days on Wed Aug 28 02:44:10 2013
Administratorのパスワードはsamba-tool domain provisionで設定したものです。
【4】Samba4のsysvol共有テスト
$ smbclient //ubuntu01/sysvol -Uadministrator Enter administrator's password: Domain=[IT-ISHIN] OS=[Windows 6.1] Server=[Samba 4.3.0] smb: \> ls . D 0 Tue Oct 20 21:04:38 2015 .. D 0 Wed Oct 21 07:42:43 2015 it-ishin.com D 0 Tue Oct 20 21:04:38 2015 278628416 blocks of size 1024. 249456428 blocks available smb: \> quit