Navigation :

Guides informatiques - Retour

 Image tiret PC

  
Le 25-07-2007 11:04
par ludovic
(1790 lectures)
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.

Image

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 :

Image

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.

Image

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 :

Image

Alors qu’une fois le DefaultRoot activé le dossier racine est son dossier home et il ne pourra pas remonter :

Image

Si l’on tente de remonter et donc d’accéder au dossier /export :

Image

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


Image

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 :

Image

Et connecté avec l’utilisateur alex le dossier [/i]comptabilite n’apparaît pas :

Image

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


Image

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


Image

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 ;)

TOP 5 Configurer et ouvrir les ports de sa FreeBox Configurer sa NeufBox version 4 Installation de Nagios et Oréon : monitoring de parc informatique Comment overclocker son processeur Intel Article sur le montage de son PC.      
Connectés en ligne : 2 -- © Copyright PC Futé 2003-2008 -- Design par Cyferus
Page exécutée en 0.249 seconde.
Mes autres sites : Serveur dédié RPS - LesPotes

Sites partenaires : benchmark