Samba は、Linux と Windows の両方が混在する環境での相互運用性の問題を解決するために、sysadmin によって使用されます。 Windows と Linux の両方に共通の共有スペースを持つ共通のプラットフォームを提供します。
ドメインコントローラーは、ネットワーク内のユーザー、グループ、またはオブジェクトを集中管理するために使用されるサービスです。このサービスにより、ユーザーのログインと関連データを管理、認証、保護することができます。
このチュートリアルでは、Linux で Samba をプライマリ ドメイン コントローラーとして構成する方法について説明します。
1.適切なホスト名を設定
適切なホスト名と静的 IP が設定されていることを確認してください。内部 IP アドレスを使用していて、インターネットからアクセスしたい場合は、ファイアウォールに適切な NAT ルールを設定してください。
このチュートリアルでは、tgs.example.com をホスト名として使用します。
# vi /etc/sysconfig/network HOSTNAME=tgs.example.com
ifcfg-eth0 ファイルに適切な静的 IP アドレスが設定されていることを確認してください。
# vi /etc/sysconfig/network-script/ifcfg-eth0 IPADDR=192.168.101.1 NETMASK=255.255.255.0
また、/etc/sysconfig/network および /etc/resolv.conf ファイルで、それに応じてゲートウェイと dns を割り当てます。
/etc/hosts ファイルに次のようなエントリがあることを確認してください。
# vi /etc/hosts 192.168.101.1 tgs.example.com tgs
また、このサーバーで NTP サービスがセットアップされ、適切に実行されていることを確認してください。
2.ソースから Samba をインストール
CentOS では、既定では、samba パッケージは最小限のインストール タイプではインストールされません。
最初に、次の依存パッケージをインストールします。
# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 git-core openldap-devel
次に、以下に示すように samba ソースをダウンロードします。
# git clone git://git.samba.org/samba.git sambaserver
ファイルは sambaserver ディレクトリにダウンロードされます。以下に示すように、samba サーバーをインストールします。
cd sambaserver ./configure --enable-debug --enable-selftest make make install
Samba はデフォルトの場所 /usr/local/samba/bin にインストールされます。このディレクトリの下にいくつかの Samba クライアント ユーティリティがインストールされていることがわかります。
# cd /usr/local/samba/bin/ # ls cifsdd ldbsearch ntdbrestore regshell smbcquotas tdbbackup dbwrap_tool locktest ntdbtool regtree smbget tdbdump eventlogadm masktest ntlm_auth rpcclient smbpasswd tdbrestore gentest ndrdump oLschema2ldif samba-tool smbspool tdbtool ldbadd net pdbedit sharesec smbstatus testparm ldbdel nmblookup pidl smbcacls smbtar wbinfo ldbedit nmblookup4 profiles smbclient smbta-util ldbmodify ntdbbackup regdiff smbclient4 smbtorture ldbrename ntdbdump regpatch smbcontrol smbtree
3.ドメイン プロビジョニングの設定
ドメインのプロビジョニングを開始するには、以下に示すように samba-tool を実行します。これにより、構成ファイルからデフォルトのホスト名とドメイン名が取得されます。
# /usr/local/samba/bin/samba-tool domain provision Realm [EXAMPLE.COM]: Domain [EXAMPLE]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [125.22.47.125]: 8.8.8.8 Administrator password: Retype password: ... ... Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=example,DC=com Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: tgs NetBIOS Domain: EXAMPLE DNS Domain: example.com DOMAIN SID: S-1-5-21-2869186506-3515775153-2841826798
4. Samba サービスを開始
以下に示すように、samba サービスを開始します。
/usr/local/samba/sbin/samba
次のエントリを rc.local ファイルに追加して、システムの起動時に Samba サービスが自動的に開始されるようにします。
# echo /usr/local/samba/sbin/samba >> /etc/rc.d/rc.local # cat /etc/rc.d/rc.local touch /var/lock/subsys/local /usr/local/samba/sbin/samba
5. Samba のバージョンを確認する
以下に示すように、samba または smbclient コマンドを使用して、samba のバージョンを確認できます。
# /usr/local/samba/sbin/samba -V Version 4.2.0pre1-GIT-913b2a1 # /usr/local/samba/bin/smbclient -V Version 4.2.0pre1-GIT-913b2a1
次のコマンドは、現在利用可能なすべての Samba 共有を表示します。
# /usr/local/samba/bin/smbclient -L localhost -U% Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.2.0pre1-GIT-913b2a1) Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] Server Comment --------- ------- Workgroup Master --------- -------
管理者のユーザー名とパスワードを使用してログインできることを確認してください。
# /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator -c 'ls' Enter administrator's password: Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] . D 0 Fri Feb 21 15:06:15 2014 .. D 0 Fri Feb 21 15:06:28 2014 57901 blocks of size 8388608. 54372 blocks available
6.ドメインを確認
次に、ドメインが期待どおりに機能しているかどうかを確認しましょう。以下に示すように、SRV と A レコードを確認してください。
# host -t SRV _ldap._tcp.example.com _ldap._tcp.example.com has SRV record 0 100 389 tgs.example.com. # host -t SRV _kerberos._udp.example.com _kerberos._udp.example.com has SRV record 0 100 88 tgs.example.com. # host -t A tgs.example.com tgs.example.com has address 192.168.101.1
以下に示すように、samba-tool コマンドを使用してレルム名を確認します。
# /usr/local/samba/bin/samba-tool testparm --suppress-prompt | grep realm realm = EXAMPLE.COM
7.ケルベロスの設定
サンプルの krb5.conf ファイルを /etc ディレクトリにコピーします。
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf
default_realm をドメイン名に設定します。この場合、example.com に設定します
# cat /etc/krb5.conf [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true
以下に示すように、kinit コマンドを使用して、Kerberos が適切に設定されていることを確認してください。
# kinit [email protected] Password for [email protected]: Warning: Your password will expire in 41 days on Fri Apr 4 15:06:25 2014
最後に、Windows リモート管理ツールを使用して Samba サーバーに接続し、それをドメイン コントローラーとして使用できます。
上記のプロセス中に問題が発生した場合は、すべてのパッケージを更新してシステムを最新の状態にしてください。 SELinux を一時的に無効にして、SELinux 関連のエラー メッセージがないか audit.log を確認することもできます。また、IPTables ルールが、Samba がサーバー間の通信に必要とするポートをブロックしていないことを確認してください。