---
# System prepended metadata

title: Samba 4
tags: [Linux]

---

# 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``*