GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer Samba en tant que contrôleur de domaine principal sous Linux

Samba est utilisé par sysadmin pour surmonter le problème d'interopérabilité dans un environnement mixte où vous avez à la fois Linux et Windows. Il fournit une plate-forme commune pour Windows et Linux afin d'avoir un espace de partage commun.

Le contrôleur de domaine est un service utilisé pour l'administration centralisée des utilisateurs, des groupes ou de tout objet du réseau. Ce service nous permet de gérer, d'authentifier et de sécuriser la connexion des utilisateurs et les données associées.

Ce tutoriel explique comment nous pouvons configurer Samba sur Linux en tant que contrôleur de domaine principal.

1. Configurer le nom d'hôte approprié

Assurez-vous d'avoir configuré le nom d'hôte et l'adresse IP statique appropriés. Si vous utilisez une adresse IP interne et si vous souhaitez y accéder depuis Internet, configurez les règles NAT appropriées sur votre pare-feu.

Dans ce didacticiel, nous utiliserons tgs.example.com comme nom d'hôte.

# vi /etc/sysconfig/network 
HOSTNAME=tgs.example.com

Assurez-vous qu'il dispose d'une configuration d'adresse IP statique appropriée dans le fichier ifcfg-eth0.

# vi /etc/sysconfig/network-script/ifcfg-eth0
IPADDR=192.168.101.1
NETMASK=255.255.255.0

Attribuez également la passerelle et le DNS en conséquence dans vos fichiers /etc/sysconfig/network et /etc/resolv.conf.

Vérifiez que votre fichier /etc/hosts contient une entrée similaire à la suivante.

# vi /etc/hosts
192.168.101.1	tgs.example.com	tgs

Assurez-vous également que le service NTP est configuré et fonctionne correctement sur ce serveur.

2. Installer Samba à partir de la source

Sur CentOS, les packages samba par défaut ne seront pas installés pour le type d'installation minimale.

Tout d'abord, installez les packages dépendants suivants.

# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 git-core openldap-devel 

Ensuite, téléchargez la source samba comme indiqué ci-dessous.

# git clone git://git.samba.org/samba.git sambaserver

Les fichiers seront téléchargés dans le répertoire sambaserver. Installez le serveur samba comme indiqué ci-dessous.

cd sambaserver

./configure  --enable-debug --enable-selftest

make

make install

Samba sera installé à l'emplacement par défaut /usr/local/samba/bin. Vous verrez plusieurs utilitaires client samba installés dans ce répertoire.

# 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. Configurer la fourniture de domaine

Pour démarrer la mise à disposition du domaine, exécutez l'outil samba comme indiqué ci-dessous. Cela récupérera le nom d'hôte et le nom de domaine par défaut à partir des fichiers de configuration.

# /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. Démarrer le service Samba

Démarrez le service samba, comme indiqué ci-dessous.

/usr/local/samba/sbin/samba 

Ajoutez l'entrée suivante au fichier rc.local pour vous assurer que le service samba démarre automatiquement au démarrage du système.

# 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. Vérifier la version de Samba

Vous pouvez vérifier la version de samba à l'aide de la commande samba ou smbclient comme indiqué ci-dessous.

# /usr/local/samba/sbin/samba -V 
Version 4.2.0pre1-GIT-913b2a1 

# /usr/local/samba/bin/smbclient -V 
Version 4.2.0pre1-GIT-913b2a1 

La commande suivante affichera tous les partages Samba actuellement disponibles.

# /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 
	---------            ------- 

Vérifiez que vous pouvez vous connecter en utilisant le nom d'utilisateur et le mot de passe de l'administrateur.

# /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. Vérifier les domaines

Vérifions maintenant si le domaine fonctionne comme prévu. Vérifiez les enregistrements SRV et A comme indiqué ci-dessous.

# 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

Utilisez la commande samba-tool pour vérifier le nom du domaine comme indiqué ci-dessous.

# /usr/local/samba/bin/samba-tool testparm --suppress-prompt | grep realm 
	realm = EXAMPLE.COM 

7. Configurer Kerberos

Copiez l'exemple de fichier krb5.conf dans le répertoire /etc.

cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf 

Définissez default_realm sur votre nom de domaine. Dans ce cas, nous le définirons sur example.com

# cat /etc/krb5.conf 
[libdefaults] 
	default_realm = EXAMPLE.COM 
	dns_lookup_realm = false 
	dns_lookup_kdc = true 

Utilisez la commande kinit pour vous assurer que Kerberos est correctement configuré, comme indiqué ci-dessous.

# kinit [email protected] 
Password for [email protected]: 
Warning: Your password will expire in 41 days on Fri Apr  4 15:06:25 2014 

Enfin, vous pouvez utiliser l'outil d'administration à distance de Windows pour vous connecter au serveur Samba et l'utiliser comme contrôleur de domaine.

Si vous rencontrez des problèmes au cours du processus ci-dessus, assurez-vous de mettre le système à jour en mettant à jour tous les packages. Vous pouvez également désactiver temporairement SELinux et consulter audit.log pour tout message d'erreur lié à SELinux. Assurez-vous également que vos règles IPTables ne bloquent pas les ports requis par Samba pour communiquer entre les serveurs.


Linux
  1. Comment créer un partage réseau via Samba sous Linux

  2. Comment configurer un tunnel SSH inversé sous Linux

  3. Comment sauvegarder la configuration du contrôleur de domaine Samba sous Linux

  4. Comment configurer une connexion SSH sans mot de passe sous Linux

  5. Comment configurer `sudo` sans mot de passe sous Linux ?

Comment configurer SFTP chrooté sous Linux

Comment configurer l'authentification multifacteur pour SSH sous Linux

Comment modifier le domaine principal dans WHM ?

Comment créer un contrôleur de domaine sous Linux pour AD

Comment effectuer une installation de Samba Active Directory sur Linux

Comment se connecter avec Samba à Linux Active Directory