GNU/Linux >> Linux の 問題 >  >> Linux

Linux で Samba をプライマリ ドメイン コントローラとしてセットアップする方法

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 がサーバー間の通信に必要とするポートをブロックしていないことを確認してください。


Linux
  1. LinuxでSambaを介してネットワーク共有を作成する方法

  2. Linux で Samba ドメイン コントローラの構成をバックアップする方法

  3. Linux サブシステムでフォントを設定するには?

  1. LinuxでパスワードなしのSSHを設定する方法

  2. Linux でリバース SSH トンネルをセットアップする方法

  3. Linux でパスワードなしの SSH ログインをセットアップする方法

  1. KubernetesでNGINXIngressControllerをセットアップする方法

  2. AmazonAWSでLinuxサーバーをセットアップする方法

  3. Linuxでパスワードなしの「sudo」をセットアップするには?