Table of Contents
|
PROJET ADMINISTRATION LINUX
1.Installation Samba
Pré-Installation:
Nous allons ici installer les paquets nécessaires à la compilation de Samba ainsi que quelques outils.
#apt-get install openssh-server
#apt-get install smbclient
#apt-get install dnsutils
#apt-get install build-essential libacl1-dev python-dev libldap2-dev pkg-config gdb libgnutls28-dev libpam0g-dev libreadline-dev python-dnspython libpopt-dev libbsd-dev attr docbook-xsl libcups2-dev
Une fois ceci fait, la compilation devrait pouvoir s’exécuter sans retourner d’erreur.
Compilation et installation de Samba4
Téléchargement et décompression:
#mkdir /usr/src/samba4
#cd /usr/src/samba4
#wget https://download.samba.org/pub/samba/stable/samba-4.7.4.tar.gz
#tar -xzf samba-4.7.4.tar.gz
Configuration, compilation et installation:
#cd samba-4.7.4
#./configure –enable-debug
#make
#make install
Étant donné qu’il s’agit ici d’une installation manuelle, les commandes de samba ne font pas partie de l’environnement de l’utilisateur de manière spontanée.
Il faudra donc modifier l’environnement de l’utilisateur afin de prendre en charge les commandes se trouvant dans /usr/local/samba/sbin et /usr/local/samba/bin (ou créer des liens vers les dites commandes).
Ajout du service Samba
Afin de simplifier le démarrage, l’arrêt, le lancement au démarrage du service… Nous allons créer le service permettant de gérer cela comme une application basique.
/etc/systemd/system/samba-ad-dc.service

#systemctl daemon-reload
#systemctl start samba-ad-dc
#systemctl enable samba-ad-dc
#systemctl status samba-ad-dc

Prise en charge des ACL dans le système de fichier
/etc/fstab
Afin que les ACL soient prises en charge, nous modifions les options de montage de la partition / en remplaçant celles-ci par:
errors=remount-ro,defaults,acl,user_xattr,barrier=1
Configuration du serveur:
On commence par configurer les paramètre réseau du serveur avec la commande nmtui.

On modifie la connexion avec nos paramètres et ensuite on oublie pas de relancer la carte pour que les paramètres soit pris en compte.
Ensuite on donne un nom de machine grâce a la commande Hostname debian en mode root et on fait pareil avec le nom de domaine Domainname prjdomein.pv
Le hostname de la machine sur laquelle tournera Samba est important, nous allons donc lui spécifier sont nom d’hôte complet.
« hostname serveursamba.prjdomein.pv »
Il faut également vérifier que le fichier /etc/hosts renvoie bien la bonne adresse IP pour le nom court et le nom long.
/etc/hosts
Mettre une image
Afin de permettre au serveur de s’utiliser lui même comme serveur DNS, nous allons modifier le fichier /etc/resolv.conf.
/etc/resolv.conf
Mettre une image
A noter qu’il peut être intéressant de désigner un second serveur DNS comme par exemple celui de Google 8.8.8.8 afin de permettre de résoudre les noms que notre serveur ne connait pas.
Création du domaine:
Créer le Domain controller de Samba
/usr/local/samba/bin/samba-tool domain provision

Grâce aux premières modifications lors de l’étape Configuration préalable du Serveur, la carte réseau, les fichiers hosts et hostname. On peut voir que tout est déjà bien configuré, il faut juste appuyer sur la touche entrée, on nous demande ensuite le mot de passe administrateur.
Une fois ceci fait, nous avons donc une configuration minimale de Samba, celle-ci est contenue dans le fichier /usr/local/samba/etc/smb.conf que nous éditerons plus tard.
Installation et configuration NTP:
#apt-get install ntp
#cp /etc/ntp.conf /etc/ntp.conf.backup
#rm /etc/ntp.conf
/etc/ntp.conf
server 127.0.0.1
fudge 127.0.0.1 stratum 12
NTPsigndsocket /usr/local/samba/var/lib/NTP_signd/
restrict default mssNTP
Mise en place de Kerberos 5:
Installation de Heimdal et configuration
#apt-get install heimdal-clients
#cp /etc/krb5.conf /etc/krb5.conf.backup
/etc/krb5.conf
[libdefaults]
allow_weak_crypto=true
[domain realm]
.prjdomein.pv = PRJDOMEIN.PV
prjdomein.pv = PRJDOMEIN.PV
Création d’un utilisateur et test du ticket Kerberos

Deux méthodes sont ici utilisées, la première, ancienne, est remplacée par la seconde. A noter également que l’on peut ajouter ici des options comme celle de spécifier un répertoire « home » via l’option –home-directory.
Pour plus de détails: https://wiki.samba.org/index.php/Adding_users_with_samba_tool
Nous allons maintenant générer le trousseau de clés et tester le bon fonctionnement de Kerberos:
#samba-tool domain exportkeytab /etc/krb5.keytab
#kinit test1

A ce stade, la configuration de base de Kerberos est donc opérationnel.
Configuration des sauvegardes de Samba:
Un script permettant de faire des sauvegardes est mis à disposition dans le dossier source de Samba. L’idée sera ici d’automatiser la sauvegarde des données tous les jours à minuit.
#cp /usr/src/samba4/samba-4.7.4/bin/tdbbackup /usr/bin
#cp /usr/src/samba4/samba-4.7.4/source4/scripting/bin/samba_backup /usr/bin
#chown root:root /usr/bin/tdbbackup /usr/bin/samba_backup
#chmod 750 /usr/bin/tdbbackup /usr/bin/samba_backup
#mkdir /usr/local/backups
#chmod 750 /usr/local/backups/
Après avoir copié les 2 fichiers, nous avons donc modifié les permissions et le propriétaire de ceux-ci. Nous avons également crée un répertoire /usr/local/backups qui est la destination prévue dans le script.
Par défaut, les fichiers de sauvegarde ne contiennent que la date de création, afin d’ajouter l’heure, nous modifions une ligne dans le script:
WHEN=`date +%d-%m-%Y-%H-%M`
Testons le bon fonctionnement du script de sauvegarde:

Il ne reste plus qu’à planifier la tâche pour que le script s’exécute tous les jours à minuits.
#crontab -e

Configuration des dossiers partagés:
Le but ici est d’organiser le partage de fichiers, le dossier partage sera accessible à tous les utilisateurs authentifiés alors que le home sera réservé à son propriétaire (ainsi qu’aux super-utilisateurs).
/usr/local/samba/etc/smb.conf

Il ne reste plus qu’à créer les différents dossiers.
#mkdir /home/samba /home/samba/home /home/samba/profiles /home/samba/partage
#chmod 1777 /home/samba/profiles
Test du service:
Afin de vérifier que le service fonctionne correctement nous pouvons utiliser smbclient.
Mettre une image
Mettre une image
Test du serveur DNS de Samba:
Mettre une image
Vérification des informations du domaine:
Mettre une image
SSSD:
Pour commencer nous aurons besoin d’installer sssd et sssd-tools.
Mettre en place le service SSSD n’a pas été la partie la plus aisée de ce laboratoire et a demandé de reprendre un peu plus en détails les fichiers de configuration.
/etc/krb5.conf
Actuellement, le type d’encryption est faible (3DES) mais à terme, il est prévu de passer en AES-256.
/etc/sssd/sssd.conf
Mettre une image
Mettre une image
Nous allons ensuite modifier le fichier /etc/nsswitch.conf de la manière suivante:
passwd: files sss
group: files sss
Enfin nous modifions les droits du fichier /etc/sssd/sssd.conf et redémarrons le service avant de procéder à quelques tests.
#chmod 0600 /etc/sssd/sssd.conf
#systemctl restart sssd
Fin de procédure et Tests:
Nous allons créer un nouveau trousseau de clés pour sssd, cette fois. A noter qu’il est ici important d’être attentif lorsque l’on doit entrer une donnée, en effet la casse en prise en compte contrairement à ce qui peut toucher au nom de domaine en général.
*#/usr/local/samba/bin/samba-tool domain exportkeytab /etc/krb5.sssd.keytab —principal=SERVEURSAMBA$
Mettre une image
*#kinit -k -t /etc/krb5.sssd.keytab SERVEURSAMBA\$
Mettre une image
Nous pouvons maintenant faire une recherche LDAP:
Mettre une image
Mettre une image
NFSv4
2.Client Windows
Pour télécharger RSAT (ou obtenir de l’aide): https://wiki.samba.org/index.php/Installing_RSAT
Une fois l’installation terminée, nous allons joindre le client au domaine, pour ce faire, dans le panneau de configuration, allons dans Système – Modifier les paramètres:
Mettre l'image
Notre client fait maintenant partie du domaine, nous allons poursuivre en configurant NTP pour que le client se synchronise avec le serveur via l’invite de commandes (en mode administrateur).
#cd c:/Windows/System32
#w32tm /config /syncfromflags:domhier
#w32tm /config /update
#w32tm /resync /nowait
Configuration des profils itinérants:
Mettre l'image
Le répertoire /home/samba/home/test1 est ensuite créé automatiquement.
Nous avons ici dû faire un choix, car soit le dossier de base est en local soit distant. Lors de la création de l’utilisateur nous pouvons spécifier un répertoire local qui sera créé automatiquement mais dans ce cas, nous perdons le coté centralisé du mode distant.
Nous allons ensuite créer un groupe ayant les attributs Unix et dont fera partie l’utilisateur test1.



Configuration des droits de partage
Lorsqu’il s’agit de partager des informations, il est important de penser à la gestion des droits et de limiter l’accès au maximum.
Nous allons donc supprimer l’accès par défaut « tout le monde » pour le remplacer par les groupes « utilisateurs authentifiés », « Domain Admins », « Système » et « Administrators ». Les options vont quant à elle varier en fonction des besoins.
Avec une attention particulière portée au partage « profiles ».
Une fois ceci fait, nous pouvons enfin nous connecter avec notre nouvel utilisateur (test1).

Nous voyons ici que le dossier /home/test1 est monté automatiquement.
Il est intéressant de faire des tests entre utilisateurs afin de vérifier que chacun a bien les droits souhaités et uniquement ceux-ci!
3.Client Linux
Configuration des services
Configuration de Kerberos
Il faut faire attention à la casse et donc aux majuscules dans les fichiers de configuration !
nano /etc/krb.conf
Puis renseignez les parties [libdefaults], [realm] et [domain_realm] comme ceci :
Je sais, c'est idiot de le répéter mais je me suis déjà fait avoir…
Configuration de Samba
nano /etc/samba/smb.conf
Il faut redémarrer les services Samba et Winbind, pour que cela prenne effet.
/etc/init.d/samba restart
/etc/init.d/winbind restart
Configuration de ntp
Commentez les lignes "server 0 1 2 3" et insérez les lignes serveur sources à vérifier et les options supplémentaires.
nano /etc/ntp.conf
- /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
driftfile /var/lib/ntp/ntp.drift
- Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
- You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
- pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
- pick a different set every time it starts up. Please consider joining the
- pool: <http://www.pool.ntp.org/join.html>
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
NTPSERVERS="srv2008r2.mondomaine.local
#options supplémentaires pour ntpupdate
NTOPTIONS="-u"
- Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
- details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
- might also be helpful.
#
- Note that "restrict" applies to both servers and clients, so a configuration
- that might be intended to block requests from certain clients could also end
- up blocking replies from your own upstream servers
Et redémarrez le service
/etc/init.d/ntp restart
Il faut maintenant demander un ticket-granting et vérifier sa validité.

Nous allons maintenant rattacher notre Linux au domaine :
Net ads join –S nom_du_serveur –U nom_de_l’utilisateur joined ‘nom_du_serveur_linux’ to realm ‘nom_de_votre_domaine’
Mes "users" sont alex et toto. ;)
Nous pouvons maintenant vérifier sur notre serveur Linux et Windows que l'intégration s'est bien passée.
Sur le Linux, voici les commandes :
wbinfo -u (liste les utilisateurs du domaine)
wbinfo -g (liste les groupes du domaine)
wbinfo -a nom_du_domaine+utilisateur
Sur le contrôleur de domaine, ouvrez votre console de gestion des utilisateurs et ordinateurs Active Directory afin de vérifier la présence des utilisateurs Linux.


root@debian:~# wbinfo -a mondomaine.local+administrateur
Enter mondomaine.local+administrateur's password:
plaintext password authentication succeeded
Enter mondomaine.local+administrateur's password:
challenge/response password authentication succeeded
root@debian:~#
Configuration de nsswitch.conf (le configurer de la même façon) :
nano /etc/nsswitch.conf
Nous pouvons tester le module 'nsswitch' Winbind à l'aide des commandesgetent.
getent passwd
getent group
Cela permet de s'assurer de la présence de vos users et groupes membres du domaine.
Configuration de PAM
Cela permet d’accéder à la machine à l'aide d'un compte local ou d'un compte du domaine. Nous allons ajouter les lignes suivantes à la suite dans les fichiers de conf :
Dans /etc/pam.d/common-account :
account sufficient pam_winbind.so
account sufficient pam_unix.so
Dans /etc/pam.d/common-auth :
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required pam_deny.so
Dans /etc/pam.d/common-session :
session required pam_unix.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
Il faut maintenant créer un répertoire du domaine dans /home :
root@debian:/# mkdir /home/MONDOMAINE
root@debian:/# chmod 755 /home/MONDOMAINE/
root@debian:/#
Test final
Il ne nous reste plus qu'à vérifier la présence de nos utilisateurs dans le répertoire du domaine.
Et voilà c'est fini, vous savez maintenant comment intégrer un Linux dans le monde merveilleux de Windows !
4.Installation du serveur mail (PostFix, Dovecot et le webmail Rainloop)
Rajouter configuration LDAP !!!
Suivre le tuto complet sur ce site ce site web : https://www.udemy.com/installer-un-serveur-de-messagerie-sur-debian9-avec-postfix/learn/v4/content
La seul chose à ne pas refaire du tutoriel est la création de l'user marie dans la section 4 « Dovecot, notre outil IMAP » session 15 « Dovecot, notre outil IMAP »
5.Installer un serveur FTP
Rajouter configuration LDAP !!!
Installer le serveur VSFTPD
apt-get install vsftpd
Allez dans la directory de vsftpd pour modifier les accès des utilisateurs
nano /etc/vsftpd.conf
A l'intérieur, pour avoir les droits en écriture on modifie les paramètres suivants:
Listen = YES
anonymous_enable = NO
write_enable = NO
Les fichiers que l’on désire partager dans le répertoire de l’un des utilisateur partagé en LDAP doivent être lisibles par n’importe quel utilisateur en lecture, il faut donc faire :
chmod -R 755 /home/nico
chown nico:nico -R /home/atlas
Il faut alors créer dans le répertoire personnel de chaque utilisateur un répertoire "partage" et y attribuer les bons droits. Pour exemple, le nom de l’utilisateur contenant ce répertoire s’appelle «test1»
mkdir /home/test1/partage
chown test1:test1 /home/test1/partage
chmod 755 /home/test1/partage
Il faudra ensuite indiquer au système le lien entre /home/userftp et /home/test1/partage en rajoutant la ligne suivante dans le fichier
echo «/home/userftp /home/test1/partage auto bind,defaults 0 0» » /etc/fstab
Ensuite on monte le répertoire /home/newuser/partage en tapant :
mount /home/test1/partage
Le montage restera en place à chaque reboot, on crée dans ce dossier un fichier «partage.txt» il se trouvera également dans le dossier personnel de atlas.
6.Bibliographie:
References
Centos7 with Samba and AD support - Lucanuscervus Notes. (2019). Retrieved from https://lucanuscervus-notes.readthedocs.io/en/latest/HowTos/Centos7%20with%20Samba%20and%20AD%20support/
CentOS Serveur - Partage de fichiers Samba - 1ere partie - Installation et Configuration de base - Mgroup.fr. (2019). Retrieved from http://www.mgroup.fr/index.php?pages/centos_samba_1
Cezar, M., & Posts, V. (2019). Integrate CentOS 7 to Samba4 AD from Commandline - Part 14. Retrieved from https://www.tecmint.com/integrate-centos-7-to-samba4-active-directory/
Configuration du Serveur SAMBA sur CentOs. (2019). Retrieved from https://romguillon4.wordpress.com/les-projets-1ere-annee/projet-samba/configuration-du-serveur-samba-sur-centos/
Configurer un contrôleur de domaine Samba (CentOS / Debian). (2019). Retrieved from https://k-lfa.info/configurer-dc-samba/
Debian 9 Stretch : Samba : AD DC : Server Settings : Server World. (2019). Retrieved from https://www.server-world.info/en/note?os=Debian_9&p=samba&f=4
Démarrage Kerberos. (2019). Retrieved from http://www-lor.int-evry.fr/~michel/LDAP/SASL/DemarrageKerberos.html#kdcconf
GRALL, V. (2019). Contrôleur de domaine Samba4 Active Directory. Retrieved from https://kgrall.wordpress.com/2018/01/24/controleur-de-domaine-samba4-active-directory/
Samba - Installation et configuration d'un serveur de partage de fichiers - www.octetmalin.net. (2019). Retrieved from http://www.octetmalin.net/linux/tutoriels/samba-installer-configurer-serveur-de-fichiers.php
Set up kerberos on Redhat/CentOS 7. (2019). Retrieved from https://gist.github.com/ashrithr/4767927948eca70845db
Setting up Samba as an Active Directory Domain Controller - SambaWiki. (2019). Retrieved from https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
SUPINFO - Ecole Informatique - Formation en Informatique - Paris, .. (2019). Tutoriel d'intégration d'une machine LINUX avec SSSD | SUPINFO, École Supérieure d'Informatique. Retrieved from https://www.supinfo.com/articles/single/5620-tutoriel-integration-une-machine-linux-avec-sssd