# Samba 4 #
###### tags: `Linux`
### Préparation du système : ###
#### Mettre a jour le système ####
``` shell=
sudo apt-get update
sudo apt-get upgrade
```
---
#### Mettre la machine en IP fixe ####
*Depuis la version 18.04 sur Ubuntu, la gestion des interfaces réseau s'effectue avec l'outil "netplan" :*
``` yaml=
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhp4: no
addresses: [192.168.42.250/24]
gateway4: 192.168.42.254
nameservers:
search: [mondomaine.lan]
addresses: [8.8.8.8]
```
**ATTENTION : la syntaxe du fichier .yaml ne doit pas comporter de tabulation, uniquement des espaces**
*Pour appliquer les changements il suffit d'entrer la commande ``netplan apply --debug``. L'option debug sert a verifier la synthaxe*
#### Configuration de la machine ####
*Modification du fichier hostname ``/etc/hostname`` : Samba4*
*Modification du fichier ``/etc/hosts`` : 192.168.42.254 Samba4*
*Modification des points de montages (``/etc/fstab``): `` / ext4 acl,user_xattr,barrier=1,errors=remount-ro 0 1``*
*Application des modifications :*
``` shell=
mount -o remount /
```
----
#### Installation des outils nécéssaire ####
``` shell=
sudo apt install ntp (<-si machine physique) samba
```
##### Optionnel : Configuration d'un serveur de temps #####
>Si l'installation de samba se fait sur une machine physique, il faut configurer NTP pour synchroniser l'heure de la machine
----
#### Configuration de Samba 4 ####
*Après installation de samba (``apt install samba``), déplacer le fichier :*
``` shell=
mv /etc/samba/smb.conf /root
```
##### Provisioning du samba : #####
``` shell=
samba-tool domain provision --use-rfc2307 --interactive
```
> domain provision : mise en place d'une base Active directory
> --use-rfc2307 : ajoute la gestion POSIX
> --interactive : saisie interactive
``` shell=
Realm: MONDOMAINE.LAN
Domain [MONDOMAINE]:
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) [192.168.42.254]:
Administrator password:
Retype password:
```
**Le mot de passe administrateur du domaine doit avoir une complexité suffisante**
----
#### Passer le serveur Samba en DNS : ####
1. Couper le service ``systemd-resolved``
``` shell=
systemctl disable systemd-resolved.service
```
2. Supprimer le fichier ``/etc/resolv.conf``
3. Recréer le meme fichier avec a l'interieur :
``` shell=
# Serveur DNS
nameserver 127.0.0.1
# Suffixe DNS par défaut
search mondomaine.lan
# Domaine d'appartenance
domain mondomaine.lan
```
#### Post-Installation ####
* Activation du contrôleur de domaine :
``` shell=
systemctl unmask samba-ad-dc.service
systemctl enable samba-ad-dc.service
```
* redémarrage du serveur
``` shell=
reboot
```
* Vérification
``` shell=
samba-tool processes
```
* Ajout de la machine au domaine
``samba-tool domain join mondomaine.lan DC -U Administrator``
* Activer winbind dans ``/etc/nssswitch.conf``
`` passwd: compat winbind``
`` group: compat winbind``
* Ajouter les entrées winbind dans ``smb.conf``
``` shell=
- winbind enum users = yes
- winbind enum groups = yes
- idmap config * : backend = tdb
- idmap config * : range 3000000 - 4000000
```
----
#### Redondance de l'AD ####
*Répeter les mêmes étapes que pour la création du DC principale, a la différence que le secondaire ne doit pas être provisionné, mais répliqué.*
*Puis récuperer un ticket pour le serveur :*
``` shell=
kinit Administrator@MONDOMAINE.LAN
```
*Verifier avec ``klist``*
----
#### NB ####
*Pour winbind, il faut installer tous les packages d'un coup : ``apt install samba acl krb5-user winbind libnss-winbind libpam-winbind``*