Service FTP
Mise en situation
On désire pouvoir transférer des fichiers de manière sécurisée entre le LAN “Gestion” et le LAN “Production”.
Dans le cadre du système considéré, ces fichiers seront des ordres de fabrication.
Dans une entreprise, un ordre de fabrication est un document élaboré par les services de gestion suite à un ordre de vente. L’émission de ce document, à destination des chargés de production, déclenche un certain nombre d’évènements dont la mise en production d’une quantité donnée de produits dans un délai imparti. |
Pour ce faire, vous allez installer puis configurer un serveur FTP sur la machine Linux virtualisée.
Ressources
-
un PC Windows 10
-
solution de virtualisation VirtualBox
-
une machine virtuelle OpenSUSE en mode “server”
-
pages de manuel Linux
Installation du serveur
L’installation du serveur se résume à l’installation de 2 paquets logiciels :
-
vsftpd
→ paquet associé au serveur FTP nommé VsFTPd (pour Very Secure FTP daemon). Ce serveur privilégie la sécurité et est donc bien adapté à un contexte d’utilisation en entreprise. -
yast2-ftp-server
→ plugin de YaST qui propose une interface d’administration globale du serveur FTP
💻 Travail n° 1 Installation du serveur
-
Déterminer avec la commande
zypper search vsftpd yast2-ftp-server
si les paquets liés au serveur FTP sont déjà installés. Si la lettre ‘i’ apparait dans la colonne intitulée ‘S’, c’est que le paquet correspondant est installéExemple d’affichage sur un système sur lequel aucun des 2 packages n’est installélocalhost:~ # zypper search vsftpd yast2-ftp-server Loading repository data... Reading installed packages... S | Name | Summary | Type --+------------------+-----------------------------------------------+-------- | vsftpd | Very Secure FTP Daemon - Written from Scratch | package | yast2-ftp-server | YaST2 - FTP configuration | package
-
Si nécessaire, installer les 2 packages avec la commande
zypper install vsftpd yast2-ftp-server
Configuration du serveur
La configuration du serveur FTP est forcément plus complexe que celle d’un serveur TFTP car il offre plus de fonctionnalités.
Dans notre cas, on veut pouvoir dédier des espaces distincts pour les différentes catégories de personnel de l’entreprise ayant accès au service FTP :
-
les chargés de fabrication dont les noms d’utilisateurs sont
fabmgr1
etfabmgr2
-
les chargés d’expédition dont les noms d’utilisateurs sont
expmgr1
etexpmgr2
-
les membres de l’équipe réseau dont les noms d’utilisateurs sont
netadmin
,nettech1
etnettech2
La configuration du serveur FTP s’effectue én 2 temps :
-
par
YaST
pour la configuration globale -
par l’intermédiaire de fichiers de configuration pour la configuration “fine” notamment au niveau de la gestion des accès
💻 Travail n° 3 Configuration “fine” du serveur
-
Sauvegarder le fichier de configuration globale de VsFTPd avant toute modification.
cp /etc/vsftpd.conf /etc/vsftpd.conf.ori
-
Remplacer le contenu du fichier
/etc/vsftpd.conf
par :## # CONFIG E5 ## write_enable=YES pam_service_name=vsftpd anonymous_enable=NO local_enable=YES chroot_local_user=YES allow_writeable_chroot=YES pasv_enable=YES pasv_min_port=30000 pasv_max_port=30100
Ne pas mettre d’espace entre le nom de l’option, le signe ‘=’ et sa valeur.
-
Dans cette configuration, seuls les utilisateurs possédant un compte sur la machine qui héberge le service pourront accéder au FTP.
Posséder un compte sur un machine Linux ne veut pas forcément dire qu’on peut s’y connecter “directement” avec un terminal de commande pour y saisir des commandes.
C’est d’ailleurs ce qui sera fait ici puisqu’on ne veut pas que les utilisateurs ayant accès au FTP puissent stocker des fichiers sur le serveur ou y exécuter des commandes.
Cela concerne notamment les utilisateurs suivants :
-
Fabrication Manager 1
-
login :
fabmgr1
-
password :
fabmgr1
-
répertoire d’accueil :
/srv/ftp-acme/fabrication
-
groupe par défaut :
ftp-users
-
groupes additionnels :
fabrication
,users
-
-
Fabrication Manager 2
-
login :
fabmgr2
-
password :
fabmgr2
-
répertoire d’accueil :
/srv/ftp-acme/fabrication
-
groupe par défaut :
ftp-users
-
groupes additionnels :
fabrication
,users
-
-
Expeditions Manager 1 (login : expmgr1, password : expmgr1)
-
login :
expmgr1
-
password :
expmgr1
-
répertoire d’accueil :
/srv/ftp-acme/expeditions
-
groupe par défaut :
ftp-users
-
groupes additionnels :
expeditions
,users
-
-
Expeditions Manager 2 (login : expmgr2 password : expmgr2)
-
login :
expmgr2
-
password :
expmgr2
-
répertoire d’accueil :
/srv/ftp-acme/expeditions
-
groupe par défaut :
ftp-users
-
groupes additionnels :
expeditions
,users
-
-
Network Administrator
-
login :
netadmin
-
password :
netadmin
-
répertoire d’accueil :
/srv/ftp-acme/netsquad
-
groupe par défaut :
ftp-users
-
groupes additionnels :
netsquad
,users
-
-
Network Technician 1
-
login :
nettech1
-
password :
nettech1
-
répertoire d’accueil :
/srv/ftp-acme/netsquad
-
groupe par défaut :
ftp-users
-
groupes additionnels :
netsquad
,users
-
-
Network Technician 2
-
login :
nettech2
-
password :
nettech2
-
répertoire d’accueil :
/srv/ftp-acme/netsquad
-
groupe par défaut :
ftp-users
-
groupes additionnels :
netsquad
,users
Créer ces utilisateurs/groupes depuis YaST ou la ligne de commande
Exemple# useradd -d /srv/ftp-acme/fabrication -g ftp-users -G fabrication,users -M -N -c "Fabrication Manager 1" -s /bin/false fabmgr1 (1) # passwd fabmgr1 New password: Retype new password: passwd: password updated successfully
1 voir la page de manuel de useradd
pour la signification des options. L’option-s /bin/false
interdit à l’utilisateur de pouvoir se connecter directement sur le serveur en ne lui attribuant pas d’interpréteur de commandes.
-
-
-
Utiliser le terminal (→ commandes
chown
&chgrp
&chmod
) pour que la structure ainsi que les droits d’accès du site ftp soient les suivants :# ls -l /srv drwxr-xr-x 1 root ftp-users 90 Feb 2 09:37 ftp-acme # ls -l /srv/ftp-acme total 0 drwxrwx--- 1 root expeditions 42 Feb 2 11:13 expeditions drwxrwx--- 1 root fabrication 58 Feb 2 11:21 fabrication drwxrwx--- 1 root netsquad 16 Feb 2 10:23 netsquad
-
Ajuster la configuration du pare-feu aux modifications apportées dans le fichier de configuration
# firewall-cmd --add-port=21/tcp --permanent # sudo firewall-cmd --add-port=30000-30100/tcp --permanent # sudo firewall-cmd --reload
Test du serveur
Le test du serveur consiste à tenter de se connecter sous les différents profils existants (chargés de fabrications, membres de l’équipe réseau…) et à vérifier que les droits d’accès sont conformes à ce qui est attendu.
💻 Travail n° 4 Tests
-
Redémarrer le serveur avec la commande :
systemctl restart vsftpd.service
-
Depuis un PC Windows, installer et exécuter le logiciel client FTP WinSCP
.
Consultez si besoin l’article Premiers pas avec WinSCP
pour prendre en main WinSCP.
-
Créer des connexions pour chaque utilisateur de façon à vérifier qu’ils ont accès à leurs répertoires respectifs sur le serveur
-
Télécharger/Téléverser un fichier depuis/vers le serveur pour s’assurer que les transferts — aussi bien en lecture qu’en écriture — sont opérationnels.
🞄 🞄 🞄