Logo Guilde Retour à Trucs & Astuces    Ftp anonyme contre ftp non anonyme : Configuration


Ftp anonyme contre ftp non anonyme : Configuration

par Nicolas HAHN pour Guilde

I. Introduction.

Le présent document vise à fournir quelques explications quant à la configuration d'un ftp non anonyme sur un système linux. Il ne doit pas servir de référence. Son but est uniquement de tenter d'éclaircir les étapes nécessaires à la configuration du ftp non anonyme, d'autant plus qu'il n'a pas été écrit par un "gourou" du ftp.

II. Prérequis.

Tout d'abord, il est nécessaire d'installer le démon ftp. Normalement, il a été installé en même temps que votre système, par défaut. Le plus souvent il s'agit du package wu-ftpd.

Installez ensuite le package anonftp, si là aussi, il n'a pas été installé en même temps que le système. Lorsque vous en êtes à ce point, vous disposez alors d'un ftp anonyme complètement fonctionnel, qui n'aura nécessité aucune configuration.

Nous allons pouvoir configurer chacun des utilisateurs nécessitant un accès au ftp non anonyme à partir de la configuration établie par l'installation du ftp anonyme.

III. Réunir et étudier les composant nécessaires.

Etudions tout d'abord certains fichiers.

Tout d'abord /etc/passwd. Dans ce fichier a été ajouté l'utilisateur ftp, avec le groupe ftp, dont le répertoire d'accueil est quelque chose du genre /home/ftp. Ce chemin constitue la racine de l'arborescence que les utilisateurs anonymes verront. Vous constaterez que l'utilisateur ftp ne dispose d'aucun mot de passe et d'aucun shell, pour plus de sécurité.

La ligne du fichier /etc/passwd ressemble donc à ceci :

ftp:*:14:50:utilisateur FTP anonyme:/home/ftp:

Intéressons-nous maintenant au répertoire /home/ftp, et à ses permissions pour commencer. Le dossier ftp/ doit disposer des permissions 555 (ou 755) c'est à dire lecture pour tout le monde, pas d'écriture (ou juste pour l'utilisateur propriétaire), et exécution pour tout le monde.
Il est évident ici que les utilisateurs anonymes ne doivent pas avoir la possibilité d'écrire dans le ftp anonyme: il n'y a donc pas de permissions d'écriture de positionnées.

Le propriétaire ainsi que le groupe de ce dossier doivent être tout les deux à root, pour des raisons de sécurité. Ne mettez surtout pas ftp au niveau du groupe, comme on le voit sur certains systèmes: la sécurité pourrait être mise en péril.

Intéressons-nous maintenant aux dossiers et fichiers contenus dans /home/ftp.

Le dossier bin/ contient les commandes dont vous autorisez l'utilisation aux utilisateurs de votre ftp anonyme. Vous pouvez donc supprimer ou ajouter les commandes que vous désirez.

Le dossier etc/ contient entre autres fichiers importants les fichiers group et passwd, qui sont pour ainsi dire les jumeaux des fichiers /etc/passwd et /etc/group.

Le dossier lib/ contient les bibliothèques nécessaires au fonctionnement des programmes placés dans bin/. C'est à ce niveau que l'on peut parler de linkage statique des programmes placés dans bin/, auquel cas il n'y aurait pas besoin des librairies placées dans lib/.

Le dossier pub/ quant à lui, sera le réceptacle de toutes les données que vous désirerez mettre en libre accès aux utilisateurs de votre ftp anonyme. Vous auriez très bien pu placer vos fichiers à la base de /home/ftp: il est présent pour des raisons de bonne organisation essentiellement, mais aussi il faut le signaler, pour définir les droits de l'arborescence ainsi créée.

Au niveau des propriétaires de ces 4 dossiers, ce doit être root à la fois pour le propriétaire et pour le groupe.

Pour les permissions, assignez à bin/ et etc/ les permissions 111 (uniquement exécution), à lib/ les permissions 755 et à pub les permissions 555, pour être sûr que personne ne puisse écrire dedans.

Notez que normalement, tout ceci a été configuré automatiquement lors de l'installation de votre système linux.

Nous allons nous servir de ces mêmes librairies et de ces mêmes programmes pour configurer les dossiers de nos utilisateurs non anonymes.

Les derniers fichiers à étudier sont ceux qui configurent le ftp. Ils se situent dans le dossier /etc/ et commencent tous par ftp (ftpaccess, ftpconversions, ftpgroups, ftpusers et ftphosts).

Pour configurer notre ftp anonyme, nous aurons surtout besoin de configurer le fichier ftpaccess. Je vous renvoie au man pour de plus amples explications sur ce fichier. Tout ce qu'il y a à savoir ici, c'est utiliser la commande guestgroup, entre autres.

IV. Avertissement aux administrateurs (très important).

Avant de lire la suite, lisez ce qui suit, c'est assez important.

Beaucoup d'administrateurs système installent leur système linux de façon automatique (en choisissant par exemple les "classes" adéquates dans la RedHat). Très souvent pour ne pas dire à tout les coups, le ftp anonyme est installé d'office.

Ensuite, c'est le train train quotidien. La plupart du temps, on ne s'occupe pas du ftp et on place dedans des fichiers ou données que l'on veut rendre accessible sur l'intranet de son entreprise, dans /home/ftp/pub.

Il n'y a d'ailleurs aucun problème, cela marche évidemment très bien.

Evidemment plus on avance dans le temps, plus on enregistre des utilisateurs dans la base de compte: des collaborateurs de passage ou de nouveaux embauchés. On assigne à ces utilisateurs des mots de passe simples, quand ce n'est pas carrément eux qui décident de leur propre mot de passe (ce qui est d'ailleurs tout à fait légitime !).

Tout cela pour en venir à quoi ?

J'y viens, réalisez cette petite expérience:

Que constatez-vous ?

Tout simplement que vous vous trouvez dans son dossier racine, dans lequel peuvent figurer des données, ses mails etc...
Rien d'extraordinaire...
Seulement voilà, remontez d'une arborescence en cliquant sur '..'. A nouveau, que constatez vous ? L'horreur: Vous avez pu vous rendre à l'arborescence supérieure sans aucun problèmes, et vous pouvez remonter et encore remonter dans les arborescences et vous ballader ici ou là...

Le système est donc une véritable passoire, il n'y a pas mieux pour le pirater, et il y a autant de "trous" de sécurité qu'il y a d'utilisateurs enregistrés sur votre système ! Imaginez qu'un pirate connaisse quelqu'un dans votre société. Il va donc essayer son nom et avec un peu de chance d'autres noms qu'il connait grace à lui et aux discussions de boulot qu'il aura eu avec lui et il va s'aider d'un dictionnaire pour essayer les mots de passe tout simples que vous avez enregistré pour vos utilisateurs.

Je n'irai pas plus loin, en vous laissant imaginer les dégâts qui pourraient être causés, uniquement parce que le ftp anonyme a été installé et parce que personne ne soupçonnait que le simple fait de créer des utilisateurs ou de ne plus s'occuper du ftp anonyme pouvait laisser la porte grande ouverte sur le système. Rendez-vous par exemple dans /etc pendant que vous truandez le ftp et cliquez sur le fichier passwd, et vous verrez ce que je veux dire...

Pendant que j'y suis, notez que je trouve dommage que le système, à la création des comptes utilisateurs, ne prenne pas automatiquement en compte ce genre de chose. Comme quoi, le ftp anonyme, il n'est pas si anonyme que ça !

Ainsi, à chaque utilisateur créé, n'oubliez surtout pas de faire l'une des deux choses suivantes :

V. Configuration du ftp non anonyme.

Enfin, la partie qui vous intéresse le plus, je pense.

Nous allons configurer un utilisateur pour lui donner un accès à son dossier racine par l'intermédiaire du ftp, sachant qu'il sera borné à ce dossier et qu'il pourra uniquement descendre dans les niveaux inférieurs.

nous allons partir de la création de l'utilisateur, pour arriver à ce que le dit utilisateur consulte son dossier par ftp dans son navigateur favori.

ici, le mot de passe pour notre exemple sera '99CaRotte.'. Notez l'introduction des deux derniers chiffres de l'année en cours, de majuscules et d'un point à la fin du mot de passe, ceci à fin de le rendre plus complexe.

A partir de là, le système lui a créé son répertoire racine dans /home (/home/essai), son point d'entrée dans le fichier /etc/passwd et dans le fichier /etc/group. Dans ce dernier et par défaut, le groupe essai a été créé.

La ligne de votre fichier /etc/passwd doit alors ressembler à quelque chose de ce genre :
essai:nv1irO7LNuRoY:500:500::/home/essai:/bin/true

Vous vous retrouvez dans son répertoire racine et vous ne pourrez pas remonter dans les niveaux supérieurs, ce qui était le but recherché. Vous pouvez dans le dossier donnees uploader et downloader des fichiers.

Si vous voulez, vous pouvez même activer les quotas disque, car les utilisateurs confondent souvent leur répertoire racine avec leurs armoires personnelles...

Notez que pour plus de sécurité, vous pourriez supprimer les fichiers /home/essai/etc/passwd et /home/essai/etc/group. Cela ne generait en rien le fonctionnement. Ces fichiers sont uniquement utiles à la commande ls, qui montrera si ils sont présents, les noms des groupes des répertoires lors du listage.

Je vous recommande pour finir de réserver un disque à part, où vous placerez toutes les arborescences racines de vos utilisateurs, de façon à ce qu'elles ne se trouvent pas sur le même disque que votre système. Cela pourra éviter de faire mouliner le disque sans arret, en cas d'attaque paralysante, comme le préconise Christopher Klaus (cklaus@shadow.net), dont je vous conseille de lire le FTP Howto, pour installer un ftp anonyme.

Voilà, c'est terminé, amusez-vous bien.

Ce document a été écrit par :

Nicolas HAHN
 Administrateur système/réseau/webmaster
 ACDM Concept
 3 rue Alfred Kastler
 54320 MAXEVILLE
n_hahn@yahoo.com (parce que j'ai pas encore installé la messagerie !)

Dernière mise à jour : créé le 11/07/1999 à 18:10 formatté en HTML par Romuald JOUFFREY