Installation de Proftpd Installation par le package pkg-get –U pkg-get upgrade Tous les paquets installés seront mis à jour. Sur ma version de SOLARIS 10, l’installation de PROFTPD ne peut pas s’effectuer car la version du module CSW n’est pas à jour. Dans la console, il faut taper « y » pour supprimer l’ancien module et retaper « y » pour installer le nouveau. ![]() pkg-get install proftpd Des nouveaux paquets seront installés, tels que OpenSSL qui va crypter les transmissions entre votre serveur FTP et un client, pour gérer les dépendances entre l’installation de PROFTPD et les nouveaux paquets nécessaire. Une fois l’installation terminée, vous devriez obtenir ce message : ![]() Installation par les sources L’installation permet de posséder la dernière version d’une application. Toute la suite du tutoriel sera basée sur l’installation par les sources. cd /tmp wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.gz gunzip -c proftpd-1.3.0a.tar.gz ¦ tar xvf – cd proftpd-1.3.0a ./configure make make install Création d’un compte utilisateur useradd –d /export/ludovic -m –c « Ludovic BRACHET » ludovic L’utilisateur ludovic est maintenant créé et possède un dossier home dans "/export/ludovic". Il faut un mot de passe au compte : passwd ludovic Le shell nous invite à entrer un mot de passe puis à le confirmer. Configuration du serveur FTP : ProFTPD nano /usr/local/etc/proftpd.conf (installation par les sources) nano /opt/csw/etc/proftpd.conf.CSW (installation par paquet) Démarrage de PROFTPD /usr/local/sbin/proftpd Pour l’éteindre, il est possible d’utiliser : "pkill proftpd" Copie de la sauvegarde du fichier de configuration d’origine : cp /usr/local/etc/proftpd.conf /usr/local/etc/proftpd.conf.save La création d’une copie est primordiale car si vous effectuez de grosses erreurs dans votre fichier de configuration, vous pourrez restaurer une configuration précédente rapidement. Connexion au serveur FTP Une fois le service FTP démarré, il est possible de se connecter avec un client FTP (je recommande FileZilla : http://filezilla.sourceforge.net ). Je me logue avec l’utilisateur ludovic créé précédemment. /!\ Attention, par défaut, tous les utilisateurs ayant un compte sur le système peuvent se loguer et surtout parcourir toute l’arborescence du serveur /!\ Etude du fichier de configuration Pour éditer le fichier de configuration : "nano /usr/local/etc/proftpd.conf" /!\ Après chaque modification il faut redémarrer proftpd pour prendre en compte les changements /!\ Par défaut, le fichier est commenté, voici la signification des différentes variables qu’il est possible de spécifier. ServerName -> permet de définir un nom lors de la connexion au serveur FTP ServerType -> spécifie le fonctionnement du serveur Port -> spécification du port. Par défaut il s’agit du port 21 mais au vue du nombre de tentative de connexions par des bots sur Internet sur ce port, je conseille un autre port. Ensuite, pour se connecter il faut changer le port 21 par le nouveau port spécifié dans le fichier de configuration. User et Group -> utilisateur et groupe sous lequel le serveur FTP va fonctionner DefaultRoot -> spécifie le dossier dans lequel les utilisateurs arrivent lorsqu’ils se connectent. Cela est expliqué plus loin dans le guide. ![]() Modification du fichier de configuration Bloquer les utilisateurs dans leur dossier home en supprimant le commentaire pour la ligne DefaultRoot : # To cause every FTP user to be "jailed" (chrooted) into their home # directory, uncomment this line. #DefaultRoot ~ Avec la ligne en commentaire, l’utilisateur ludovic peut parcourir l’arborescence car il a pour dossier par défaut /export/ludovic et il peut remonter : ![]() Alors qu’une fois le DefaultRoot activé le dossier racine est son dossier home et il ne pourra pas remonter : ![]() Si l’on tente de remonter et donc d’accéder au dossier /export : ![]() On dit que les utilisateurs sont "chrootés" dans leur dossier home. Partage d’un même dossier Nous allons partager un dossier commun à divers utilisateurs. Prenons l’exemple d’un dossier Internet dont 2 personnes peuvent accéder/lire/modifier/supprimer dans un dossier respectif. L’utilisateur ludovic aura tous les droits dans le dossier /var/www/comptabilite et l’utilisateur alex aura tous les droits dans le dossier /var/www/facturation. Les dossiers ne seront accessibles que par eux-seuls et l’utilisateur ne pourra pas parcourir le dossier de l’autre. Par contre, ils peuvent tous les deux utiliser le dossier upload qui sera un dossier commun. <Directory /var/www/comptabilite> <Limit ALL> AllowUser ludovic DenyAll </Limit> </Directory> <Directory /var/www/facturation> <Limit ALL> AllowUser alex DenyAll </Limit> </Directory> <Directory /var/www/upload> <Limit WRITE READ DIRS> AllowUser alex ludovic DenyAll </Limit> </Directory> Dès qu’il y’a un grand nombre d’utilisateurs sur le système, la configuration utilisateur par utilisateur est vite rébarbative, l’utilisation des groupes est donc recommandé. Une fois le(s) groupe(s) créé(s) avec groudadd grp_upload et les utilisateurs enregistrés dans ce groupe avec usermod –G grp_upload ludovic : il faut remplacer la ligne AllowUser alex ludovic du dossier upload par AllowGroup grp_upload. Pour vérifier que les modifications ont été effectuées, il suffit de regarder le contenu du fichier : nano /etc/group ![]() Il existe un très grand nombre de commande et il est possible de régler plus finement le serveur FTP. La liste des commandes est accessible à cette adresse : http://www.commentcamarche.net/internet/ftp.php3 Résultat avec la connexion des 2 utilisateurs Connecté avec l’utilisateur ludovic le dossier facturation n’apparaît pas : ![]() Et connecté avec l’utilisateur alex le dossier [/i]comptabilite n’apparaît pas : ![]() Le serveur FTP est donc configuré comme prévu, c'est-à-dire que chaque utilisateur a un dossier qui lui est propre dans /var/www. Pour que les utilisateurs ont, lors de la connexion, un accès direct au dossier /var/www, il faut modifier la ligne DefaultRoot : DefaultRoot /var/www/ Propriétaire des dossiers Un utilisateur ne pourra écrire dans son dossier que s’il est propriétaire de celui-ci sur le système. En effet, si les dossiers par défaut appartiennent à root mais que le serveur FTP est configuré pour que les utilisateurs puissent écrire dedans, le système de fichiers Solaris a le dessus : il faut donc donner les bons droits. chown –R ludovic /var/www/comptabilite chown –R alex /var/www/facturation Gestions des logs Il est possible de loguer tout ce qu’il se passe sur le serveur FTP en rajoutant : SystemLog /var/log/proftpd_connexion.log TransferLog /var/log/proftpd_transfert.log Une fois connecté avec mon utilisateur ludovic je vais lire les logs : nano /var/log/proftpd_connexion.log ![]() On remarque que l’utilisateur ludovic a bien été détecté et qu’il est "tracé". Une fois connecté et qu’un transfert est effectué : nano /var/log/proftpd_connexion.log ![]() Les logs sont essentiels pour détecter des tentatives de connexions ou des erreurs lors des transferts réalisés par les utilisateurs. Conclusion Le guide a été réalisé sous SOLARIS 10 mais les fichiers de configuration de ProFTPD fonctionne de la même manière sous Linux. Je ne l'ai pas précisé à chaque fois, mais à chaque modification du fichier de configuration, il faut redémarrer ProFTPD pour qu'il le recharge et applique les changements, voire qu'il vous indique une erreur si vous avez mal orthographié une commande. La configuration d'un serveur FTP nécessite pas mal de tests, surtout lorsque les droits sont restrictifs entre divers groupes de plusieurs utilisateurs donc ne perdez pas patience ;) |
















