Service TFTP

Mise en situation

On veut pouvoir sauvegarder les configurations des routeurs sur le serveur Linux.

Cette sauvegarde peut être effectuée via le client TFTP présent de base sur chacun des routeurs.

Le protocole TFTP est un protocole de transfert de fichier plutôt simple. Son manque de fiabilité (utilisation d'UDP plutôt que TCP), de sécurité (pas de chiffrement) et ses performances médiocres le réservent à une utilisation dans les réseaux locaux uniquement.

Il est malgré tout souvent utilisé dans les infrastructures réseau composées d’équipements Cisco pour la sauvegarde ou la restitution de leur configuration sur ou à partir d’un ordinateur.

Comme ce protocole se base sur un environnement client - serveur, il faut bien sûr installer un serveur TFTP sur l’ordinateur qui stockera les configurations des routeurs (→ la machine virtuelle OpenSUSE dans notre cas).

C’est ce que vous allez faire dans la suite de cette activité.

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 TFTP

L’installation du serveur se résume à l’installation de 2 paquets logiciels :

  1. tftp → serveur TFTP

  2. yast2-tftp-server → interface d’administration du serveur TFTP depuis YaST

💻 Travail n° 1 Installation des paquets

  1. Installer les paquets pré-cités (→ tftp & yast2-tftp-server) depuis l’interface de configuration YaST exécutée simplement en saisissant la commande yast dans le terminal et après s’être assuré que le PC hôte a accès à internet (PC relié au réseau du lycée, interface réseau de la VM OpenSUSE configurée en DHCP…​).

    Rappels
    • On navigue à travers les différentes rubriques de YaST grâce à la touche TAB.

    • Le déplacement sur les options d’une même rubrique se fait avec les touches et

    • L’activation d’une option se fait avec la barre d’espace

    • On peut accéder directement à une rubrique en enfonçant la touche Alt puis en tapant la lettre qui est représentée en jaune dans l’intitulée de la rubrique

    • Si les cadres n’apparaissent pas correctement dans PuTTY, s’assurer dans sa configuration que le jeu de caractères utilisé est ISO-8859-1 : 1998 (Latin-1, West Europe) (Rubrique “Window  Translation” de PuTTY)

Pour tester si les paquets liés au serveur TFTP sont bien installés, on peut exécuter la commande suivante :

localhost:~ # rpm -qa | grep tftp
yast2-tftp-server-4.2.0-lp152.1.2.noarch (1)
tftp-5.2-lp152.6.3.x86_64 (1)
localhost:~ #
1 les 2 paquets sont bien présents sur la machine s’ils apparaissent sur le terminal suite à l’exécution de la commande.

Configuration du serveur

La configuration du serveur FTP s’effectue en 2 temps :

  1. par YaST pour la configuration globale

  2. par l’intermédiaire d’un fichier de configuration pour la configuration “avancée”

💻 Travail n° 2 Configuration du serveur avec YaST

  1. Lancer YaST et configurer le serveur TFTP comme illustré ci-dessous

    tftp yast config

💻 Travail n° 3 Configuration “fine” du serveur

Par défaut, on ne peut téléverser un fichier sur un serveur TFTP que si ce fichier existe déjà dessus (⇒ mise à jour du fichier).

Pour permettre de téléverser des nouveaux fichiers, l’option “-c” doit être fournie au serveur lors de son lancement.

  1. Ouvrir le fichier /etc/sysconfig/tftp avec un éditeur de texte exécuté en tant qu’administrateur.

  2. Modifier la ligne TFTP_OPTIONS pour spécifier l’option qui permet la création de fichier sur le serveur :

    TFTP_OPTIONS="-c"
  3. Enregistrer le fichier

  4. Redémarrer le serveur pour prendre en compte les modifications apportées à la configuration

    # systemctl stop tftpd.service
    # systemctl restart tftp.socket

    Depuis la version Leap 15.0 d'OpenSUSE, le service TFTP n’utilise plus le “super-serveur” xinetd.

    L’activation/démarrage du service utilise à présent systemd. Les fichiers d’unité de systemd associés sont :

    • /usr/lib/systemd/system/tftpd.socket

    • /usr/lib/systemd/system/tftpd.service

    Pour activer le serveur TFTP au prochain démarrage, le démarrer ou l’arrêter, on utilisera respectivement les commandes :

    1. systemctl enable tftpd.socket

    2. systemctl start tftdp.socket

    3. systemctl stop tftpd.socket

Test du serveur

Le test du serveur TFTP consiste simplement à vérifier qu’il est possible de lui transférer un fichier quelconque depuis un client TFTP.

💻 Travail n° 4 Test du serveur depuis Windows

  1. Installer le client TFTP en ligne de commande de Windows 10 :

    • soit depuis le “panneau de configuration” comme illustré ci-dessous :

      tftp w10 install
    • soit depuis une console Powershell exécutée en tant qu’administrateur :

      PS > Enable-WindowsOptionalFeature -online -FeatureName "TFTP"
  2. Ajouter une règle au pare-feu de Windows 10 pour autoriser le trafic réseau lié à l’application “tftp.exe” située dans le répertoire C:\Windows\System32 :

    • soit via l’interface graphique (Panneau de configuration  Système et sécurité  Pare-feu Windows Defender  Autoriser une application via le Pare-Feu Windows)

      tftp firewall
    • soit via une console Powershell lancée en tant qu’administrateur :

      PS > New-NetFirewallRule -Program "C:\Windows\System32\tftp.exe"  -Action Allow -Profile Domain, Private -DisplayName "Client TFTP Windows" -Description "Autorise l'application TFTP en entrée" -Direction Inbound
      
      Name                          : {02a33b43-9de1-408d-833a-17256db7cb90}
      DisplayName                   : Client TFTP Windows
      Description                   : Autorise l'application TFTP en entrée
      DisplayGroup                  :
      Group                         :
      Enabled                       : True
      Profile                       : Domain, Private
      Platform                      : {}
      Direction                     : Inbound
      Action                        : Allow
      EdgeTraversalPolicy           : Block
      LooseSourceMapping            : False
      LocalOnlyMapping              : False
      Owner                         :
      PrimaryStatus                 : OK
      Status                        : La règle a été analysée à partir de la banque. (65536)
      EnforcementStatus             : NotApplicable
      PolicyStoreSource             : PersistentStore
      PolicyStoreSourceType         : Local
      RemoteDynamicKeywordAddresses :
      PolicyAppId                   :
  3. Procéder au transfert d’un fichier sur le serveur TFTP en exécutant la commande suivante depuis le terminal Windows 10 :

    tftp <adresse-ip-serveur> PUT <chemin-du-fichier-a-transferer>
    Exemple
    C:\Users\ragnar\Documents>tftp 192.168.5.126 PUT file.txt
    Transfert réussi : 6 octets en 1 seconde(s), 6 octets/s
  4. Vérifier sur le serveur que le fichier transféré est désormais présent dans le répertoire /srv/tftpboot/

    localhost:~ # ls /srv/tftpboot
    file.txt

.

🞄  🞄  🞄