Projet

Général

Profil

Wiki » Historique » Version 19

« Précédent - Version 19/25 (diff) - Suivant » - Version actuelle
Gilles Grandgérard, 07/09/2015 15:18


EOLE Active Directory Domain Controler

Comment tester :

================

Attention le filesystem qui héberge les partages doit avoir le support des ACL activés (cf:https://wiki.samba.org/index.php/Setup_and_configure_file_shares_with_Windows_ACLs#Preparatory_work)

Ce qui donne sur une Eolebase : /dev/mapper/eolebase--vg-root / ext4 errors=remount-ro,barrier=0,acl,user_xattr 0 1

1°) Installer une machine eolebase 2.5

2°) Mettre à jour avec les derniers paquest

Maj-Auto

3°) Installer les paquets suivants :

apt-get install samba samba-common python-samba samba-dsdb-modules samba-libs samba-vfs-modules winexe ldb-tools winbind acl
apt-get install make git

Si il en manque (patch welcome ;)

3°) Cloner le dépôt git sur la machine

git config --global http.sslVerify "false"
git clone https://dev-eole.ac-dijon.fr/git/eole-ad-dc.git

GG : ici snapshot nebula 'eole_ad_dc-2.5.0.fi'

4°) Installer les dico/templates/scripts ...

cd eole-ad-dc
git pull
make install

5°) Lancer gen_config

Configurer le serveur.
Activer_ad_smb                               = oui
Nom du workgroup AD = EOLE (ad_workgroup)
Nom du domaine AD = EOLE.LAN (ad_realm)
Nom netbios du serveur = DC1 (ad_netbios_name)
IP du serveur DNS maitre = 127.0.0.1 (ad_dns_forwarder) (car j'utilise SAMBA_INTERNAL !!)
Nom du partage = (ad_share)
Répertoire a partager = (ad_share_path)
Activer le mode lecture seule sur le partage = (ad_share_ro)
Répetoire des home utilisateurs = (home_share_path)
Rappel : adresse_ip_dns sera imposé à 127.0.0.1 !
Attention : Par mesure de sécurité je met le "Nom du workgroup AD" dans "Nom du domaine AD"
A voir pour l'avenir, on pourrais très bien utiliser "Nom de domaine académique" et
"Suffixe du nom de domaine académique" ou "Nom de domaine privé du réseau local"

6°) Lancer l'instance

7°) ouvrir le firewall (cf #11498)

iptables -I eth0-root -p udp -m udp --dport 137 -j ACCEPT
iptables -I eth0-root -p udp -m udp --dport 138 -j ACCEPT
iptables -I eth0-root -p tcp -m tcp --match multiport --sports 1024:5000 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
Il faut supprimer le fichier '/etc/samba/smb.conf' pour eviter les confilts !
rm /etc/samba/smb.conf
samba-tool domain provision --use-rfc2307 --use-xattrs=yes --use-ntvfs --dns-backend=SAMBA_INTERNAL --domain=EOLE --adminpass=Eole12345! --server-role=dc --realm=EOLE.LAN
la procédure de provisionning crée le fichier '/var/lib/samba/private/krb5.conf' 
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

8°) Test

Attention: Il ne faut jamais jamais jamais jamais lancer le service "samba" 
#CreoleService samba-ad-dc restart
test: 
#host -t SRV _ldap._tcp.eole.lan
#host -t SRV _kerberos._udp.eole.lan
#host -t A DC1.eole.lan

8°) Vous pouvez jouer !

Il existe des scripts pour vous faciliter la vie.

  • join-ad : Jonction au domaine d'une machine sans jamais voir l'iterface de W$
  • psexec : Execute des commandes PowerShell sur les machines W$ sans jamaisvoir l'interface de W$
  • adCreateUser : Crée un utilisateur en utilisant les outils samba et en définissant automatiquement le répertoire "home" le U:

9°) Pour joindre une machine au domaine voici comment faire :
A) Préparer le PC

- vérifier que son DNS est bien celui de l'AD
- vérifier que le firewall ne bloque pas la commande 'join-ad'

B)
Lancer depuis le serveur AD Samba4 :

  1. join-ad -U "MON-DOMAINE\administartor" -P "Eole;Samba&2100" -u "MAMACHINE\administrateur" -m IP_MACHINE_CLIENT
Le script vous demande de saisir le mot de passe administrateur de la machine et normalement si tout vas bien, ils vous répond que tout seras actif après le reboot.
Vous pouvez ensuite rebooter la machine avec la commande psexec :
  1. psexec -u "MON-DOMAINE\administrator" -m IP_MACHINE_CLIENT -c Restart-Computer

PS: Il faudrat penser a une solution pour la gestion du mot de passe Administrateur du domaine.

Nos scripts en ont besoin mais c'est quand même une information sensible. Aujourd'hui j'ai juste mis

un mot de passe par défaut et je l'utilise partout en dur dans les scripts (bad bad bad)