install de samba4 (on rejoins un domaine existant, 192.168.0.2 est le PDC/DNS, le fqdn du domaine est mon-domaine)
d'abord faut savoir que les package sur le repo debian sont juste antédiluviens (beta 2)
du coup, on va aller chercher les build samba directement:
on installe de quoi recuperer des package en https:
apt-get install apt-transport-https
on installe la clef des repo samba
wget http://ftp.sernet.de/pub/sernet-samba-k ... .4_all.deb
dpkg -i sernet-samba-keyring_1.4_all.deb
on ajoute les repo samba: vi /etc/apt/sources.list
deb http://debian.mirrors.ovh.net/debian/ wheezy main
deb-src http://debian.mirrors.ovh.net/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
deb ftp://ftp.debian.org/debian stable main contrib non-free
deb https://USER:KEY@download.sernet.de/pac ... 4.1/debian wheezy main
deb-src https://USER:KEY@download.sernet.de/pac ... 4.1/debian wheezy main
USER:KEY est a remplacer par les votre bien sur, il faut vous enregistrer ici pour les avoir:
https://portal.enterprisesamba.com/ (GPL)
accessoirement, les package sont maintenus directement par samba, donc on est assuré d'avoir un truc qui marche (mieux que recuperer les sources et compiler je pense)
on verifie qu'il n'y a pas de DNS deja installé:
netstat -an |grep ":53"
ne doit rien retourner => sinon, on vire les packets qui font server DNS
on installe les packets: (ça va vous proposer d'installer les dependances, faites vous plaisir)
apt-get upgrade
apt-get install sernet-samba
apt-get install sernet-samba-ad
apt-get install sernet-samba-client
apt-get install sernet-samba-common
apt-get install sernet-samba-libs
apt-get install sernet-samba-winbind
on verifie que ça s'est installé:
~# samba -V
Version 4.1.2-SerNet-Debian-7.wheezy
c'est le moment de verifier que le nom de la machine est correct et que le domaine aussi !
~# cat /etc/hostname
host.mon-domaine
~# cat /etc/resolv.conf
nameserver 172.16.35.1
nameserver 192.168.0.2
search mon-domaine
domain mon-domaine
vous remarquerez en passant que la recherche DNS s'effectue en priorité en local puis sur le serveur DNS deja en prod (qui est aussi le PDC). evidement, pour l'instant, rien ne repondra en local
ne pas oublier de mettre les options dans le /etc/fstab (necessite un reboot !): par exemple
/dev/hda3 /home ext4 user_xattr,acl,barrier=1 1 1
user_xattr,acl sont indispensables
barrier=1 est optionnel, desactive le cache en ecriture pour securiser la base AD. a mettre si soucis de stabilité de la machine ou EDF !!!!
après reboot, on verifie que l'option est bien active sur les partoches:
/# dmesg | grep "mounted filesystem"
[ 3.813227] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null)
[ 8.739069] EXT4-fs (sda5): re-mounted. Opts: (null)
[ 8.989177] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,user_xattr,acl
[ 12.107620] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: errors=remount-ro
[ 12.142708] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: user_xattr,acl
[ 12.168033] EXT4-fs (sda8): mounted filesystem with ordered data mode. Opts: acl
[ 12.366813] EXT4-fs (sda9): mounted filesystem with ordered data mode. Opts: acl
j'ai bien l'option acl sur /, /home, /var, et /data (pas necessaire, mais RFU)
la suite de la doc est l'application du tuto officiel de samba4 ici:
http://wiki.samba.org/index.php/Samba4/ ... in_as_a_DC
quelques infos necessaire avant l'application bete et mechante du tuto:
j'ai eu des soucis avec l'IP virtuelle:
il faut ajouter dans /etc/samba/smb.conf 2 petites lignes de rien du tout:
interfaces = eth1
bind interfaces only = true
la premiere pour indiquer sur quelle interface/IP ecouter (sinon ça prend par defaut eth0 et lo) et la seconde pour dire de n'ecouter QUE sur les interfaces specifiées et ne pas ecouter sur celles par defaut.
/# /usr/bin/samba-tool domain join mon-domaine DC -Uadministrateur --realm=mon-domaine --ipaddress=172.16.35.1
Finding a writeable DC for domain 'mon-domaine'
Found DC dcwindows.mon-domaine
Password for [WORKGROUP\administrateur]:
workgroup is MON-DOMAINE
realm is mon-domaine
checking sAMAccountName
Adding CN=HOST,OU=Domain Controllers,DC=mon-domaine
Adding CN=HOST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mon-domaine
Adding CN=NTDS Settings,CN=HOST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mon-domaine
Adding SPNs to CN=HOST,OU=Domain Controllers,DC=mon-domaine
Setting account password for HOST$
Enabling account
Calling bare provision
Provision OK for domain DN DC=mon-domaine
Starting replication
Schema-DN[CN=Schema,CN=Configuration,DC=mon-domaine] objects[402] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=mon-domaine] objects[804] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=mon-domaine] objects[1206] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=mon-domaine] objects[1266] linked_values[0]
Analyze and apply schema objects
Partition[CN=Configuration,DC=mon-domaine] objects[402] linked_values[0]
Partition[CN=Configuration,DC=mon-domaine] objects[804] linked_values[0]
Partition[CN=Configuration,DC=mon-domaine] objects[1206] linked_values[0]
Partition[CN=Configuration,DC=mon-domaine] objects[1525] linked_values[0]
Replicating critical objects from the base DN of the domain
Partition[DC=mon-domaine] objects[94] linked_values[0]
Partition[DC=mon-domaine] objects[310] linked_values[0]
Done with always replicated NC (base, config, schema)
Replicating DC=DomainDnsZones,DC=mon-domaine
Partition[DC=DomainDnsZones,DC=mon-domaine] objects[76] linked_values[0]
Replicating DC=ForestDnsZones,DC=mon-domaine
Partition[DC=ForestDnsZones,DC=mon-domaine] objects[6] linked_values[0]
Partition[DC=ForestDnsZones,DC=mon-domaine] objects[12] linked_values[0]
Committing SAM database
descriptor_sd_propagation_recursive: DC=DomainDnsZones,DC=mon-domaine not found under DC=mon-domaine
descriptor_sd_propagation_recursive: DC=ForestDnsZones,DC=mon-domaine not found under DC=mon-domaine
Sending DsReplicateUpdateRefs for all the replicated partitions
Setting isSynchronized and dsServiceName
Setting up secrets database
Joined domain MON-DOMAINE (SID S-1-5-21-1436941627-3871854106-3516682030) as a DC
on verifie la replication:
samba-tool drs showrepl
on doit voir le partnaire (le dcwindows) et evidement, pas d'erreur
tant qu'on y est, on verifie dans l'eventlog du DCwindows qu'il n'y a pas d'erreur dans la section Directory Services (les logs de l'AD)
en l'occurence j'avais des erreurs sur la repli du shema. resolu par:
samba-tool drs replicate host dcwindows CN=Schema,CN=Configuration,DC=mon-domaine --sync-forced --local -Uadministrator
samba-tool drs replicate host dcwindows CN=Configuration,DC=mon-domaine --sync-forced --local -Uadministrator
samba-tool drs replicate host dcwindows DC=mon-domaine --sync-forced --local -Uadministrator
samba-tool drs replicate host dcwindows DC=ForestDnsZones,DC=mon-domaine --sync-forced --local -Uadministrator
samba-tool drs replicate host dcwindows DC=DomainDnsZones,DC=mon-domaine --sync-forced --local -Uadministrator
ça force la repli du shema de dcwindows vers host
on force une MAJ du DNS:
samba_dnsupdate --no-credentials --option="interfaces = lo eth1"
on vérifie que l'authentification fonctionne bien !
root@host:~# kinit administrator
Password for administrator@MON-DOMAINE:
root@host:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@MON-DOMAINE
Valid starting Expires Service principal
26/12/2013 08:19:19 26/12/2013 18:19:22 krbtgt/MON-DOMAINE@MON-DOMAINE
renew until 27/12/2013 08:19:19
c'est du a un conflit entre la conf kerberos système et celle de samba.
en fait, il faut forcer le système a utiliser celui de samba qui est plus ou moins configuré automatiquement avec les infos du domaine
root@host:~# locate krb5.conf
/etc/krb5.conf
/usr/share/kerberos-configs/krb5.conf.template
/usr/share/samba/setup/krb5.conf
/var/lib/samba/private/krb5.conf
le système utilise celui dans /etc, samba celui dans /var/lib/samba/private
resolu par
ln -s /var/lib/samba/private/krb5.conf /etc/krb5.conf
après les verifs d'usage, (requete DNS en local, creation/suppression d'un utilisateur coté Windows et verification de l'ajout/suppression coté samba, eventlog, etc...)
installation de samba comme service:
https://wiki.samba.org/index.php/Samba4/InitScript
le partage sysvol/netlogon a remplir a partir du dcwindows:
http://smpfr.mesdiscussions.net/smpfr/S ... htm#t29209