---
# System prepended metadata

title: TP Services Réseau

---

# TP Services Réseau

### :brain: Travail préparatoire
Recherche d’informations, de documentations sur les protocoles.

### :bookmark_tabs: Compte rendu
* 1 Compte rendu en ligne au format MarkDown sous HackMD par exemple(simple réponses aux questions).
*  Le lien vers le CR doit être donné via Ecole Direct
*  Mise en commun du travail dans le cloud du ½ groupe.
*  Ajouter des images des liens et explications pertinentes.


## :memo:  Procédure
1. Identifier et lister vos ressources supports pour la mise en oeuvre de vos services.
2. Rappeler le principe de fonctionnement du service à mettre en place. 
3. identifier les commandes d'installation et de test de votre service. 
4. Identifier une procédure de test de mise en service.

# Partage de fichier
## SAMBA vs NFS vs FTP
## :rocket: [But recherché]
:::info

Mettre en place des services de partage fichier dans votre entreprise, et comparer ses différents service
:::

## :boom:  Expérimentation
Valider la mise en service de vos service SAMBA, NFS, FTP à l'aide de 2 machines branchées sur le réseau.

```

+-------------+           +-------------+           +-------------+
| Ordinateur 1| <-------> |   Switch    | <-------> | Ordinateur 2|
+-------------+           +-------------+           +-------------+
        \                                               /
         \_________________ Réseau ___________________/
```



---

### A. Samba


#### **Introduction**

Samba est une suite de programmes open source permettant l’interopérabilité entre les systèmes Linux/Unix et les systèmes Windows en utilisant le protocole SMB/CIFS. Il est notamment utilisé pour le partage de fichiers et d’imprimantes sur un réseau local. L'installation et la configuration de Samba permettent donc aux machines Linux de communiquer avec des ordinateurs Windows comme s'ils faisaient partie du même environnement réseau.

---

#### **1. Présentation de Samba**

Samba permet de :
- Partager des fichiers et des dossiers entre des systèmes Windows et Linux.
- Intégrer un serveur Linux dans un domaine Windows ou Active Directory.
- Gérer les permissions d’accès aux fichiers en fonction des utilisateurs et des groupes.

Le protocole utilisé, SMB (Server Message Block), est également à la base du partage de fichiers dans les systèmes Windows.

---

#### **2. Prérequis**

Avant l'installation de Samba, il est nécessaire de disposer de :
- Un système Linux fonctionnel (ex : Ubuntu, Debian, CentOS, etc.).
- Un accès root ou sudo.
- Une connexion réseau fonctionnelle.

---

#### **3. Installation de Samba**

```bash
sudo apt update
sudo apt install samba
```


Une fois installé, le service Samba peut être activé et lancé avec :
```bash
sudo systemctl enable smb
sudo systemctl start smb
```

---

#### **4. Configuration de Samba**

Le fichier principal de configuration est : `/etc/samba/smb.conf`.

Exemple de configuration minimale pour partager un dossier public :
```ini
[partage]
   path = /srv/samba/partage
   browsable = yes
   read only = no
   guest ok = yes
```

- `path` : chemin vers le dossier partagé.
- `guest ok = yes` : permet un accès sans authentification.
- `read only = no` : permet l'écriture.

Après modification, redémarrer le service :
```bash
sudo systemctl restart smbd
```

Créer le dossier partagé et lui attribuer les bons droits :
```bash
sudo mkdir -p /srv/samba/partage
sudo chmod 777 /srv/samba/partage
```

---

#### **5. Gestion des utilisateurs Samba**

Pour créer un utilisateur Samba :
```bash
sudo smbpasswd -a nom_utilisateur
```
L'utilisateur doit également exister sur le système.

---

#### **6. Accès au partage depuis Windows**

Depuis un poste Windows :
- Ouvrir l’explorateur de fichiers.
- Taper `\\adresse_ip_du_serveur\partage` dans la barre d’adresse.


---

## 📋 Point à vérifier

| Tâche                            | Vérification |
|----------------------------------|--------|
| Installation et configuration du serveur serveur Samba |       |
| Connexion réussie depuis un navigateur de fichier client sur le répertoire de partage         |     |
| Connexion réussie depuis un second client              |      |
| Documentation ou capture d’écran           |       |



---

### B. NFS

### Installation et Configuration de NFS sous Linux

#### **Introduction**

NFS (Network File System) est un protocole de partage de fichiers développé initialement par Sun Microsystems. Il permet à plusieurs machines d'accéder à des fichiers distants comme s’ils étaient stockés localement. NFS est particulièrement utilisé dans les environnements Linux/Unix pour faciliter le travail collaboratif, le partage de ressources, ou le montage de répertoires distants.

---

#### **1. Présentation de NFS**

Le protocole NFS permet :
- Le montage de systèmes de fichiers distants.
- Le partage de répertoires entre plusieurs machines.
- Un accès aux fichiers avec transparence pour l’utilisateur final.

NFS fonctionne selon une architecture client/serveur :
- **Serveur NFS** : machine qui partage un ou plusieurs répertoires.
- **Client NFS** : machine qui monte ces répertoires pour y accéder localement.

---

#### **2. Prérequis**

- Deux machines Linux (une pour le serveur, une pour le client).
- Une connectivité réseau stable.
- Accès root ou sudo sur les deux machines.

---

#### **3. Installation de NFS**

##### **Sur le serveur (Debian/Ubuntu) :**
```bash
sudo apt update
sudo apt install nfs-kernel-server
```

##### **Sur le client :**
```bash
sudo apt install nfs-common
```

---

#### **4. Configuration du serveur NFS**

1. **Création du dossier à partager :**
```bash
sudo mkdir -p /srv/nfs/partage
sudo chown nobody:nogroup /srv/nfs/partage
```

2. **Déclaration du dossier partagé dans `/etc/exports` :**
```bash
/srv/nfs/partage 192.168.1.0/24(rw,sync,no_subtree_check)
```
- `rw` : lecture et écriture.
- `sync` : les modifications sont écrites immédiatement.
- `no_subtree_check` : améliore les performances dans certains cas.
- `192.168.1.0/24` : réseau autorisé à monter le partage.

3. **Application de la configuration :**
```bash
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
```

---

#### **5. Configuration du client NFS**

1. **Création du point de montage local :**
```bash
sudo mkdir -p /mnt/nfs/partage
```

2. **Montage du répertoire distant :**
```bash
sudo mount 192.168.1.10:/srv/nfs/partage /mnt/nfs/partage
```

(Remplacez `192.168.1.10` par l'adresse IP de votre serveur NFS.)

3. **Montage automatique au démarrage (dans `/etc/fstab`) :**
```bash
192.168.1.10:/srv/nfs/partage /mnt/nfs/partage nfs defaults 0 0
```

---

#### **6. Tests et vérifications**

- Utiliser `df -h` pour vérifier le montage.
- Lire/écrire des fichiers dans `/mnt/nfs/partage` depuis le client.
- Contrôler les droits d'accès si plusieurs utilisateurs accèdent au même partage

---


## 📋 Point à vérifier

| Tâche                            | Vérification |
|----------------------------------|--------|
| Installation et configuration du serveur serveur Samba |       |
| Connexion réussie depuis un navigateur de fichier client sur le répertoire de partage         |     |
| Connexion réussie depuis un second client              |      |
| Documentation ou capture d’écran           |       |


---
### C. FTP

#### **Introduction**

Le protocole FTP (File Transfer Protocol) est l’un des plus anciens moyens de transfert de fichiers sur un réseau. Il permet à des clients d’accéder à des fichiers distants sur un serveur, d’en télécharger ou d’en téléverser. Même si des alternatives plus sécurisées comme SFTP existent aujourd’hui, FTP reste largement utilisé pour des transferts rapides dans des environnements contrôlés. Ubuntu, comme la plupart des distributions Linux, permet de mettre en place un serveur FTP facilement grâce à des logiciels comme **vsftpd**.

---

#### **1. Présentation de FTP**

FTP fonctionne selon un modèle client/serveur :
- **Le serveur FTP** héberge les fichiers et gère les connexions.
- **Le client FTP** (comme FileZilla, ou la commande `ftp`) se connecte au serveur pour transférer des fichiers.

Par défaut, FTP utilise :
- Le port **21** pour le contrôle.
- Des ports dynamiques pour le transfert de données (mode passif ou actif).

FTP est un protocole en **texte clair**, ce qui le rend peu sécurisé s’il est utilisé sur Internet sans chiffrement.

---

#### **2. Prérequis**

- Une machine Ubuntu (version serveur ou desktop).
- Un accès root ou `sudo`.
- Une connexion réseau active.

---

#### **3. Installation de vsftpd (Very Secure FTP Daemon)**

1. Mettre à jour le système :
```bash
sudo apt update
```

2. Installer le serveur FTP :
```bash
sudo apt install vsftpd
```

3. Vérifier que le service est actif :
```bash
sudo systemctl status vsftpd
```

---

#### **4. Configuration de vsftpd**

Le fichier de configuration se trouve ici : `/etc/vsftpd.conf`.

Voici quelques paramètres importants à modifier pour un usage de base :

```bash
sudo nano /etc/vsftpd.conf
```

- Autoriser les connexions anonymes :  
  ```ini
  anonymous_enable=NO
  ```

- Autoriser les utilisateurs locaux à se connecter :
  ```ini
  local_enable=YES
  ```

- Permettre l’upload (écriture) :
  ```ini
  write_enable=YES
  ```

- Activer le chroot (enfermer l’utilisateur dans son répertoire) :
  ```ini
  chroot_local_user=YES
  ```

Après modification, redémarrer le service :
```bash
sudo systemctl restart vsftpd
```

---

#### **5. Création d’un utilisateur FTP**

1. Créer un utilisateur dédié :
```bash
sudo adduser ftpuser
```

2. Créer un répertoire personnel :
```bash
sudo mkdir /home/ftpuser/ftp
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
```

3. Créer un dossier pour les fichiers à envoyer :
```bash
sudo mkdir /home/ftpuser/ftp/upload
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload
```

---

#### **6. Connexion au serveur FTP**

Depuis un autre ordinateur :
- Utiliser un client FTP comme **FileZilla**.
- Ou se connecter en ligne de commande :
```bash
ftp adresse_ip_du_serveur
```

Saisir ensuite le nom d’utilisateur et le mot de passe.

---

#### **7. Sécurisation et alternatives**

- Utiliser **SFTP** (via SSH) pour des transferts chiffrés.
- Restreindre les accès FTP via le pare-feu (`ufw`).
- Désactiver l’accès root via FTP.


---
| Tâche                            | Vérification |
|----------------------------------|--------|
| Connexion sur FTP publique |       |
| Installation et configuration du serveur serveur FTP |       |
| Connexion sur votre serveur FTP depuis l'invite de commande        |     |
| Connexion depuis un client FTP (filezilla...)           |      |
| Sécurisation du serveur FTP (avec tunnel SSH)      |       |
| Documentation ou capture d’écran           |       |
