PROJET ADMINISTRATION LINUX.
Introduction
Le but de ce projet est d’élaborer un environnement hétérogène capable d'organiser et de sécuriser des clients et services du monde Windows et Linux.
Samba 4 implémente en natif les protocoles LDAP, Kerberos, RPC ainsi qu’un mécanisme DNS. Grâce à ses protocoles intégrés, ce service prend en charge d’une manière transparente les domaines Active Directory et permet de gérer une infrastructure centralisée composée d’objets système à la fois du monde Linux et Windows.
participant
Roy Kenfouet
Spécification Technique
Logiciel de virtualisation : Oracle VM VirtualBox. 6.0.4 r128413 (Qt5.6.2)
Distribution linux : CentOS 7
Configuration des services se font en lignes de commandes
Les postes windows sont sous windows 7 pro
Le Nom de Domaine : Kamer.cm
Le Reseau 192.168.10.0/24
1. Mise en place de SAMBA4
A. Configuration du réseau
B. Installation de Samba4
Désactivation de Selinux et redemarrer le serveur Linux
# nano /etc/sysconfig/selinux
Au niveau de Selinux_status=Disabled
redemarrer la machine pour que le paramètre puisse être prise en compte.
Mise à jour du système
Mettre à jour le système avec les commandes:
# yum update
# yum upgrade
Installation de epel
# yum install epel-release -y
Installation des paquets utile pour Samba
yum install perl gcc libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig krb5-workstation zlib-devel setroubleshoot-server libaio-devel setroubleshoot-plugins\
policycoreutils-python libsemanage-python setools-libs-python setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel\
cyrus-sasl-devel cups-devel bind-utils libxslt docbook-style-xsl openldap-devel pam-devel bzip2 vim wget lmdb-devel jansson-devel gpgme-devel libarchive-devel -y
Téléchargement des paquets Samba
# wget https://download.samba.org/pub/samba/stable/samba-latest.tar.gz
Installation de Samba4
# tar zxvf samba-latest.tar.gz
# cd samba-4.9.4
# ./configure --enable-debug --enable-selftest --with-ads --with-systemd --with-winbind
# make
# make install
Misse en place du domaine
# /usr/local/samba/bin/samba-tool domain provision -–use-rfc2307 –-interactive
si un problème survient
Pour le résoudre, commentez la ligne ci-dessous dans /etc/krb5.conf.
--------
#includedir /etc/krb5.conf.d/
--------

Verification des ports et redémarrage du serveur
# firewall-cmd --add-port=53/tcp --permanent;firewall-cmd --add-port=53/udp --permanent;firewall-cmd --add-port=88/tcp --permanent;firewall-cmd --add-port=88/udp --permanent; \
firewall-cmd --add-port=135/tcp --permanent;firewall-cmd --add-port=137-138/udp --permanent;firewall-cmd --add-port=139/tcp --permanent; \
firewall-cmd --add-port=389/tcp --permanent;firewall-cmd --add-port=389/udp --permanent;firewall-cmd --add-port=445/tcp --permanent; \
firewall-cmd --add-port=464/tcp --permanent;firewall-cmd --add-port=464/udp --permanent;firewall-cmd --add-port=636/tcp --permanent; \
firewall-cmd --add-port=1024-5000/tcp --permanent;firewall-cmd --add-port=3268-3269/tcp --permanent
[root@samba4 ~]# firewall-cmd --reload
Configuration du fichier /etc/resolv.conf

il est important de gelé le fichier /etc/resolv.conf pour qu'il ne soit pas modifier par le serveur internet.
la commande est la suivante:
# chattr +i /etc/resolv.conf
Création du script de démarrage pour démarrer automatiquement le service lors du redémarrage
# cat /etc/systemd/system/samba.service
[Unité]
Description = Active Directory Samba 4
Après = syslog.target
Après = network.target
[Un service]
Type = forçage
PIDFile = / usr / local / samba / var / run / samba.pid
ExecStart = / usr / local / samba / sbin / samba
[Installer]
WantedBy = multi -user.target
# systemctl start samba
C. DNS
L'Active Directory est fortement basé sur un service DNS actif qui est sécurisé par défaut. En effet, il permet aux clients de trouver leur DC. De plus, « SAMBA_INTERNAL » n'accepte que les mises à jour DNS sécurisées via Kerberos. Le serveur DNS interne est intégré dans Samba et utilise l'AD comme backend. En outre, il est la solution DNS par défaut lors de l'approvisionnement et la mise à niveau d'un contrôleur AD Samba.
modifier le fichier smb.conf et mettre l'adresse gateway:
# /usr/local/samba/etc/smb.conf
dns forwarder = 192.168.10.5
on redemarre le service samba
# systemctl restart samba

D. NTP
avant d'accéder à internet, on deglivre notre fichier /etc/resolv.conf
# chattr -i /etc/resolv.conf
Maintenant que le DNS fonctionne, il faut configurer le service NTP pour qu'ensuite les tickets Kerberos créés soient synchronisés avec Samba 4.
on va d'abord installer le service NTP sur le serveur :
# yum install ntp
on modifie le fichier “/etc/ntp.conf” :
vi /etc/ntp.conf
en ajoutant le script suivant pour synchroniser automatiquement le serveur samba et les clients :
# ntp sur lui meme
server 127.127.1.0
# l'horloge système de samba est la source de temps avec un niveau hiérarchique de 12.
# Le niveau stratum le plus précis est le stratum 0 et est réservé aux horloges atomiques.
# Le niveau suivant, Stratum 1, est réservé aux serveurs NTP locaux : les serveurs horloges
# atomiques. Les Stratum 2 à 15 sont les serveurs NTP connectés.
fudge 127.127.1.0 stratum 12
# emplacement des signatures. Samba4 crée un socket que NTP peut utiliser pour avoir ses
# réponses signés. L'emplacement par défaut est contrôlé par la directive
# "NTP signd socket directory" dans la configuration de Samba4 : "smb.conf".
NTPsigndsocket /usr/local/samba/var/lib/NTP_signd/
# les clients Active Directory ont besoin d'un serveur MS-SNTP
# qui signe de manière crypté les réponses
restrict default mssNTP
E. Kerberos 5
Configuration du fichier /etc/krb5.conf

creation d'un utilisateur
# /usr/local/samba/bin/samba-tool user add bled

F. Partage


il faut créer les dossiers de partage nommés ci-dessus :
# mkdir /home/samba
# mkdir /home/samba/home
# mkdir /home/samba/profiles
# mkdir /home/samba/partage
# chmod 1777 /home/samba/profiles
2. Configuration du client centos 7
Interface

Installer les paquets nécessaires suivants:
# yum install epel-release bash-completion bash-completion-extras chrony
Désactiver le firewall si nécessaire.
# systemctl stop firewalld.service
# systemctl disable firewalld.service
Désactiver Selinux .
# vi /etc/sysconfig/selinux
Et passer la propriété de SELINUX à disabled
Rebooter
Configurer le client NTP
Éditer le fichier chrony.conf pour définir les serveurs NTP interne (AD).
# vi /etc/chrony.conf
modifier suivant les parametre de votre AD
server 192.168.10.5 iburst
Redémarrer le démon
# systemctl restart chronyd
Installer les paquets nécessaires à l’intégration AD
# yum install sssd realmd oddjob oddjob-mkhomedir sssd samba-common-tools
Configuration du fichier /etc/resolv.conf

# chattr +i /etc/resolv.conf
Rejoindre l’AD
$ sudo realm join --verbose kamer.cm
Pour ne pas ajouter le nom de domaine de l’utilisateur AD, éditer le fichier sssd.conf et passer la valeur de True a False.
Vérifier également le homedir.
# vi /etc/sssd/sssd.conf
modifier les lignes ;
use_fully_qualified_names = False
fallback_homedir = /home/%u
Redémarrer le démon sssd :
# systemctl restart sssd
Restreindre les autorisations de connexion en SSH aux groupes IT
# realm deny --all
# realm permit -g it-interne
Ajouter le groupe it-interne au sudoers
# visudo
ajouter la ligne
%it-interne ALL=(ALL) ALL
Quelques tests:
apres avoir obtenu un jeton kerberos avec la commande kinit, nous avons la liste de clé
# kinit bled

3. joindre une machine windows 7 pro au domaine
configurer une adresse statique sur le client windows

ajouter l'hote au domaine

il faudra entrer les identifiants de l'administrateur("administrator") du domaine.
Télécharger ensuite l'outil d'administration RSAT:
Outils d’administration de serveur distant pour Windows 7
Ensuite suivre le lien pour ajouter les outils d'administrations:
Activation d'outils d'administration
4. Installation du serveur mail Postfix sur Debian 9
configuration TCP/IP

Mettre à jour le systeme Linux:
# apt-get update
# apt-get upgrade
*Installation des paquets
apt-get install postfix
pour la configuration du type de mail
internet site
joindre le client Debian au domaine
joindre unclient Debian au domaine Samba
Configuration du fichier /etc/resolv.conf

# chattr +i /etc/resolv.conf
Configuration de Postfix
cp /etc/postfix/main.cf /etc/postfix/main.cfSave
nano /etc/postfix/main.cf


Redémarrage du service Postfix:
# systemctl restart postfix
# systemctl status postfix
# netstat -tlpn
5. Installation du serveur FTP
FTP est installer sur la mème machine que postfix
Installation
Pour vérifier si un paquet est déjà installé, la commande apt-cache show nomdupaquet me permet de le vérifier.
Nous allons procéder à l'installation du serveur vsftpd.
apt-get install vsftpd
Configuration
Le fichier de configuration se trouve dans /etc/vsftpd.conf.
# nano /etc/vsftpd.conf
Voici les options à activer. Pour la plupart, il suffit de retirer le marqueur de commentaire, c'est-à-dire le "#":
- Autorisation des connexions anonymes: anonymous_enable=NO
- Autorisation des transferts anonymes sur le serveur: anon_upload_enable=YES
- Autorisation des utilisateurs locaux à se connecter: local_enable=YES
- Autorisation des utilisateurs puissent modifier des fichiers sur le serveur: write_enable=YES
- Activer le logging pour les téléchargements et les uploads: xferlog_enable=YES
Les logs seront enregistrés dans le fichier /var/log/vsftpd.log xferlog_file=/var/log/vsftpd.log. Une fois le fichier de configuration terminer, on relance le serveur FTP en mode root avec la commande suisvante:
# /etc/init.d/vsftpd restart
Nous devons créer un répertoire commun auquel chacun aura accès. Pour cela, on crée un utilisateur que l’on appellera "commun".
# adduser commun
Les fichiers partagés doivent être lisibles par n’importe quel utilisateurs en lecture, il faut donc faire :
# chmod -R 755 /home/commun
# chown commun:commun -R /home/commun
Il faut créer des utilisateurs pour ne pas faire mes tests FTP en root.
Il faut créer dans le répertoire personnel des utilisateurs un répertoire "commun" et y attribuer les bons droits.
# mkdir /home/invite1/commun
# chown invite1: invite1 /home/invite1/commun
# chmod 755 /home/invite1/commun
Il faudra ensuite indiquer au système le lien entre /home/commun et /home/invite1/commun en rajoutant la ligne suivante dans le fichier /etc/fstab de la machine du client :
/home/commun /home/invite1/commun auto bind,defaults 0 0
On monte le répertoire /home/invite1/commun en tapant :
mount /home/invite1/commun Le montage restera en place à chaque reboot.
On crée un fichier texte avec les identifiants puis ensuite on hashera le fichier pour obtenir notre base. Ensuite, il faut utiliser l’utilitaire db5.x_load pour hasher et créer la base de données.
On démarre le service FTP en utilisant la commande suivante.
#service vsftpd start
#service vsftpd status
On vérifie si le service a demarrer et fonctionne bien avec la commande:
#ps -e |grep vsftpd ou #netstat -ant |grep ‘ :21. *LISTEN'
La verification du répertoire partagé, utiliser la commande suivante dans le navigateur web :
#ftp://adresseip
Si, nous désirons insérer le nom d'utilisateur et le mot de passe, nous devons modifier la ligne "anonymous_enable" du fichier vsftpd.conf.
Le vsftpd va redémarrer en cas de coupure du serveur grâce à la commande suivante :
#update-rc.d vsftpd enable
6. Sécurisation des serveurs
7. Bibliographie
principal lien d'installation de Samba4 (iron_michael86). (Avril 2017).
Installation de samba et service complémentaire de samba (Septembre 2017).
joindre une machine Centos 7 à un domaine Samba (Janvier 2018).
Outils d’administration de serveur distant pour Windows 7 (2019).
Activation d'outils d'administration (Novembre 2017).
installation du server mail postfix (Octobre 2017).
joindre unclient Debian au domaine Samba (Janvier 2018).