Previous Contents Next

16   Corrigé du DS du 23 novembre 2005

Examen d'une durée de deux heures avec tous les documents autorisés

(y compris ordinateurs).

16.0.47   A propos du protocole FTP

Le fil rouge de cet examen est le protocole FTP. Il vous accompagnera au travers de questions concernant le système et le réseau.

16.0.48   FTP vu du système

Répondez aux questions suivantes, questions plutôt en rapport avec l'aspect système.
  1. Que signifie l'acronyme FTP ?
    Tout simplement File Transfert Protocol (Protocole de transfert de fichiers).
  2. Quels sont le ou les processus gérant le service FTP sur une machine Linux actuelle ? Justifiez votre réponse avec les documents fournis.
    Dans la liste des processus écoutant sur un port TCP on s'aperçoit que le port 21 est géré par le processus inetd. Il s'agit du super-démon d'Unix qui permet d'éviter de lancer tous les démons dès le démarrage d'un système Unix et ainsi d'éviter de gaspiller des ressources (slots dans la table des processus, descripteurs de fichiers, etc). Dès qu'un client FTP se connecte la gestion de ce client est transférée au processus proftpd comme le montre la liste des connexions TCP établies.
  3. Quel est le script de démarrage, sur une machine Linux/Debian, qui lance le processus gérant les connexions des clients FTP ? A quel niveau d'exécution ce processus est-il lancé ? Donnez à la fois le chemin complet du lien de démarrage dans le niveau d'exécution et le chemin du script pointé par ce lien. Justifiez votre réponse avec les documents fournis.
    On remarque dans le répertoire rc2.d un lien de nom S20inetd qui, vu le suffixe, est utilisé pour lancer le processus inetd dans le niveau d'exécution 2. D'après les conventions de nommage utilisées le nom du fichier pointé par ce lien est /etc/init.d/inetd.
  4. Donnez le code du script de démarrage mentionné dans question précédente (écrivez le en pseudo shell et simplifiez le pour pouvoir l'écrire en 10 lignes au maximum).
    Voici un exemple d'une version simplifiée du script /etc/init.d/inetd :
    #!/bin/sh
    case "$1" in
      start)
        inetd
        ;;
      stop)
        killall inetd
        ;;
    esac
    
  5. La machine considérée permet des accès FTP anonymes, les fichiers correspondants sont stockés dans le répertoire /home/ftp. Dites quelle est la nature de l'espace de stockage associé. Justifiez votre réponse avec les documents fournis.
    Le périphérique correspondant au répertoire /home/ftp est /dev/mapper/ftp. Ce type de fichier spécial est caractéristique (sous Linux) d'un "Logical Volume" créé grâce au système LVM "Logical Volume Management". Au vu des disques présents sur la machine ce LV ne peut être construit qu'au dessus d'un VG "Volume Group" constitué des deux disques SCSI /dev/sda et /dev/sdb (toutes les partitions du disque IDE /dev/hda étant déjà utilisées).
  6. Donnez les commandes ayant permis de créer le système de fichier /home/ftp, y compris celles ayant permis de constituer l'espace de stockage associé.
    On constate que le système de fichier /home/ftp occupe près de 700Go, les deux disque affichant une taille de 360Go chacun, il est probable que le LV s'étale sur la totalité des deux disques. Dans ce cas les commandes pour créer le système de fichiers sont :
    # pvcreate /dev/sda /dev/sdb
    # vgcreate mapper /dev/sda /dev/sdb
    # lvcreate lvcreate -L700G -nftp mapper
    # mkfs -t reiserfs /dev/mapper/ftp
    

16.0.49   FTP vu du réseau

Répondez aux questions suivantes, questions plutôt en rapport avec l'aspect réseau. Vous devez toujours justifier vos réponses en utilisant les documents fournis.
  1. Quelles sont les adresses IP de la machine utilisée pour obtenir les documents ?
    Dans la liste des connexions TCP actives on trouve l'adresse IPv4 locale : 172.26.17.140 et l'adresse IPv6 locale : 2001:660:4401:6004:210:b5ff:fe07:3490
  2. Sur quel port réseau écoute le serveur FTP de la machine concernée ? Justifiez votre réponse avec les documents fournis.
    On constate sur la liste des serveurs TCP en écoute qu'un serveur écoute sur le port 21. De plus on trouve dans la liste des connexions TCP actives un processus proftpd gérant une connexion sur le même port 21. Ceci est suffisant pour intuiter que le serveur FTP de cette machine écoute sur le port 21.
  3. Quel port réseau le serveur FTP utilise-t-il pour envoyer ses données (listes de répertoire ou fichiers) ? Justifiez votre réponse avec les documents fournis.
    Dans la même liste des connexions TCP actives on trouve une autre connexion gérée par proftpd qui utilise le port 20. Comme ce port est un port privilégié (utilisable seulement par des processus avec les droits du super-utilisateur) et qu'en plus son nom est ftp-data il y a fort à parier qu'il s'agisse du port utilisé par le serveur FTP pour envoyer ses données.
  4. Donnez les commandes à taper au niveau de la machine Linux pour interdire au réseau IP 193.238.151.0/24 l'accès au serveur FTP.
    Il suffit en fait d'interdire aux paquets destinés à la machine locale (donc aux paquets arrivant sur la chaîne INPUT) de pouvoir atteindre le port 21 s'ils sont en provenance du réseau incriminé. Une solution est d'utiliser la commande :
    iptables -A INPUT -j DROP -p tcp -s 193.238.151.0/24 --dest-port 21
    
  5. Pour que le serveur FTP de la machine considérée puisse être accédé de l'Internet en IPv4, une règle de redirection est insérée au niveau d'un serveur public. Trouvez cette règle dans les documents fournis. Donnez la ligne de commande à employer pour se connecter sur le serveur FTP à partir de l'extérieur (en utilisant la commande Unix ftp).
    Il faut que le serveur public fasse une redirection de l'un de ses ports vers le port 21 de la machine serveur FTP. La ligne correspondant à la redirection (de port et d'adresse IPv4 en fait) est :
    DNAT   tcp  --  anywhere  artois.escaut.net tcp dpt:2100 to:172.26.17.140:21
    
    Le port de serveur public redirigé est 2100, la commande à utiliser sera donc :
    ftp artois.escaut.net 2100
    
  6. Comment accéder au serveur FTP en utilisant IPv6 ?
    La machine possédant une adresse IPv6 routée : 2001:660:4401:6004:210:b5ff:fe07:3490, on peut accéder au serveur FTP par un client FTP IPv6 sans l'aide d'un quelconque proxy. Il faut tout de même que la machine du client FTP soit configurée en IPv6 et que le client et le serveur soient reliés par une réseau IPv6 (natif ou implanté par des tunnels au dessus d'IPv4). Cela dit la liste des serveurs TCP en écoute montre que le serveur FTP n'écoute pas sur un port IPv6. Il faudra donc configurer le serveur FTP pour écouter sur IPv4 et IPv6.

Previous Contents Next