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 Matériel(s) un PC Windows 10 Logiciel(s) solution de virtualisation VirtualBox une machine virtuelle OpenSUSE en mode “server” Documentation(s) 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 et fabmgr2 les chargés d’expédition dont les noms d’utilisateurs sont expmgr1 et expmgr2 les membres de l’équipe réseau dont les noms d’utilisateurs sont netadmin, nettech1 et nettech2 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° 2 Configuration du serveur par YaST Lancer YaST et configurer le serveur FTP comme illustré ci-dessous 💻 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 S’assurer que WinSCP est autorisée à communiquer à travers le pare-feu 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. 🞄 🞄 🞄 Service TFTP Les actifs réseau