Samba wird von Systemadministratoren verwendet, um das Problem der Interoperabilität in einer gemischten Umgebung zu überwinden, in der Sie sowohl Linux als auch Windows haben. Es bietet eine gemeinsame Plattform für Windows und Linux, um einen gemeinsamen Freigabebereich zu haben.
Domänencontroller ist ein Dienst, der zur zentralen Verwaltung von Benutzern, Gruppen oder beliebigen Objekten im Netzwerk verwendet wird. Dieser Dienst ermöglicht es uns, die Benutzeranmeldung und zugehörige Daten zu verwalten, zu authentifizieren und zu sichern.
Dieses Tutorial erklärt, wie wir Samba unter Linux als primären Domänencontroller konfigurieren können.
1. Korrekten Hostnamen einrichten
Stellen Sie sicher, dass Sie den richtigen Hostnamen und die statische IP eingerichtet haben. Wenn Sie eine interne IP-Adresse verwenden und aus dem Internet darauf zugreifen möchten, richten Sie entsprechende NAT-Regeln auf Ihrer Firewall ein.
In diesem Tutorial wird tgs.example.com als Hostname verwendet.
# vi /etc/sysconfig/network HOSTNAME=tgs.example.com
Stellen Sie sicher, dass in der Datei ifcfg-eth0 eine geeignete statische IP-Adresse eingerichtet ist.
# vi /etc/sysconfig/network-script/ifcfg-eth0 IPADDR=192.168.101.1 NETMASK=255.255.255.0
Weisen Sie auch Gateway und DNS entsprechend in Ihrer Datei /etc/sysconfig/network und /etc/resolv.conf zu.
Vergewissern Sie sich, dass Ihre /etc/hosts-Datei einen Eintrag ähnlich dem folgenden enthält.
# vi /etc/hosts 192.168.101.1 tgs.example.com tgs
Stellen Sie außerdem sicher, dass der NTP-Dienst auf diesem Server eingerichtet ist und ordnungsgemäß ausgeführt wird.
2. Installieren Sie Samba von der Quelle
Unter CentOS werden standardmäßig keine Samba-Pakete für den minimalen Installationstyp installiert.
Installieren Sie zuerst die folgenden abhängigen Pakete.
# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 git-core openldap-devel
Laden Sie als Nächstes die Samba-Quelle wie unten gezeigt herunter.
# git clone git://git.samba.org/samba.git sambaserver
Die Dateien werden in das Sambaserver-Verzeichnis heruntergeladen. Installieren Sie den Samba-Server wie unten gezeigt.
cd sambaserver ./configure --enable-debug --enable-selftest make make install
Samba wird am Standardspeicherort /usr/local/samba/bin installiert. In diesem Verzeichnis werden mehrere Samba-Client-Dienstprogramme installiert.
# 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. Domänenbereitstellung einrichten
Um die Domänenbereitstellung zu starten, führen Sie das Samba-Tool wie unten gezeigt aus. Dadurch werden der Standardhostname und der Domänenname aus den Konfigurationsdateien übernommen.
# /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. Starten Sie den Samba-Dienst
Starten Sie den Samba-Dienst wie unten gezeigt.
/usr/local/samba/sbin/samba
Fügen Sie den folgenden Eintrag zur Datei rc.local hinzu, um sicherzustellen, dass der Samba-Dienst beim Systemstart automatisch gestartet wird.
# 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. Überprüfen Sie die Samba-Version
Sie können die Samba-Version mit dem Befehl samba oder smbclient überprüfen, wie unten gezeigt.
# /usr/local/samba/sbin/samba -V Version 4.2.0pre1-GIT-913b2a1 # /usr/local/samba/bin/smbclient -V Version 4.2.0pre1-GIT-913b2a1
Der folgende Befehl zeigt alle derzeit verfügbaren Samba-Freigaben an.
# /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 --------- -------
Vergewissern Sie sich, dass Sie sich mit dem Administrator-Benutzernamen und -Passwort anmelden können.
# /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. Domains verifizieren
Lassen Sie uns nun prüfen, ob die Domain wie erwartet funktioniert. Überprüfen Sie den SRV- und A-Eintrag wie unten gezeigt.
# 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
Verwenden Sie den samba-tool-Befehl, um den Bereichsnamen wie unten gezeigt zu überprüfen.
# /usr/local/samba/bin/samba-tool testparm --suppress-prompt | grep realm realm = EXAMPLE.COM
7. Kerberos konfigurieren
Kopieren Sie die Beispieldatei krb5.conf in das Verzeichnis /etc.
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf
Setzen Sie default_realm auf Ihren Domänennamen. In diesem Fall setzen wir es auf example.com
# cat /etc/krb5.conf [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true
Verwenden Sie den Befehl kinit, um sicherzustellen, dass Kerberos wie unten gezeigt richtig eingerichtet ist.
# kinit [email protected] Password for [email protected]: Warning: Your password will expire in 41 days on Fri Apr 4 15:06:25 2014
Schließlich können Sie das Windows-Remote-Administrator-Tool verwenden, um sich mit dem Samba-Server zu verbinden und ihn als Domänencontroller zu verwenden.
Wenn Sie während des obigen Vorgangs auf Probleme stoßen, stellen Sie sicher, dass Sie das System auf den neuesten Stand bringen, indem Sie alle Pakete aktualisieren. Sie können SELinux auch vorübergehend deaktivieren und das audit.log auf SELinux-bezogene Fehlermeldungen überprüfen. Stellen Sie außerdem sicher, dass Ihre IPTables-Regeln nicht die Ports blockieren, die Samba für die Kommunikation zwischen den Servern benötigt.