Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 24 utilisateurs en ligne, consultez le détail
Auteur Message
TrustRobot
#0 Message posté le : 03-01-2006 à 10:03:19


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 04-07-2003
Nombre de messages : 180


Pureftp est un serveur ftp qui présente l'avantage d'être a la fois très sécure et de se mettre en place tres facilement malgré l'abscence d'une interface graphique de configuration.

Il existe une multitude de configuration possible pour un serveur ftp [public, privé, ...]. On va essayer de mettre en place ici, un serveur ftp public auquel pourront accéder les utilisateurs anonymes ainsi que les utilisateurs de notre systeme pour télécharger ou transférer des fichiers.

1. Créer un utilisateur ftp (mode console)


  • Création du répertoire /var/FTP:
    # mkdir /var/ftp


  • Vérifier que notre utilisateur/groupe ftp n'existe pas déjà:
    # cat /etc/passwd|grep ftp
    ftp:x:14:50:FTP User:/var/ftp:
    # cat /etc/group|grep ftp
    ftp:x:50:


    Comme on peut le voir ici, l'utilisateur ftp existe déjà avec /var/ftp comme répertoire maison et il appartient au groupe ftp. Donc rien a faire en théorie, mais pour les besoins de l'exemple on va faire comme si on avait rien vu ;-)

  • Création de l'utilisateur ftp:
    $ su
    Password:
    # groupadd -g 23 ftp
    # useradd -d /var/ftp -g 23 -u 14 ftp -s /bin/false


    On peut prendre d'autres valeurs pour le gid [option -g] et l'uid [option -u] de l'utilisateur/groupe ftp. En effet, toutes les valeurs entre 1 et 99 conviendront parfaitement, pour peu qu'elles ne soient pas déjà prises par un autre utilisateur système.

2. Installation de pure-ftpd


2.1 Installation de la version de base


  • Une version de pure-ftpd doit se trouver sur les CD d'installation de votre distro. Il vous suffit de l'installer avec le gestionnaire de paquetages de votre distribution.
  • Ou vous pouvez aussi télécharger le binaire, adapté à votre distribution, de la dernière version de ce serveur ftp et l'installer selon la méthode usuelle.
  • Si vous souhaitez utiliser Pure-FTP avec le support SSL, suivez le 2.2

2.2 Installation de Pure-ftpd avec support TLS/SSL



Pour utiliser Pure-FTP avec TLS/SSL, assurez-vous :
  • Que vous savez compiler un programme sous linux.
  • Que tous les outils nécessaires à cette compilation soient installés sur votre système.
  • Que openssl soit installé.
  • Que vous possédez le mot de passe de root.

Avant de commencer l'installation de Pure-ftpd avec son module SSL/TLS, la création d'une clé sécurisée est nécessaire. Pour ce faire exécutez les commandes qui suivent.

création du chemin d'accueil :
# mkdir -p /etc/ssl/private


génération de la clé SSL :
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem


attribution des droits sur cette clé :
# chmod 600 /etc/ssl/private/*.pem


A ce stade, il ne vous reste plus qu'à télécharger les sources de Pure-FTP depuis le site officiel. En effet, les packages de votre distribution ne sont, par défaut, pas compilés avec l'option TLS/SSL.

L'installation des sources se résume alors :
$ cd /où/sont/les/sources
$ tar -xzvf pure-ftpd-xxx.tar.gz
$ cd pure-ftpd-xxx
$ ./configure --prefix=/usr --with-everything --with-tls --with-paranoidmsg --with-language=french --without-capabilities --with-virtualchroot
$ su
# make install-strip

3. Configuration de pure-ftpd


3.1 Configuration par défaut



La configuration par défaut de pure-ftpd est judicieuse et convient parfaitement pour une utilisation normale d'un serveur ftp. Elle autorise entre autre les connexions anonymes comme celles des utilisateurs du système et ce en toute sécurité.

Pour profiter de notre nouveau serveur, on va donc tout simplement le lancer:
# pure-ftpd &


Voila, votre serveur ftp est opérationnel. Pour le vérifier il suffit de lancer un client ftp ou un navigateur et de se connecter en anonyme ou en s'identifiant sur ftp://localhost.

3.2 Configuration plus fine



Si le comportement par défaut ne vous satisfait pas, vous pouvez facilement personnaliser le fonctionnement de pureftpd.

En effet, la configuration de pure-ftpd se distingue de celle des autres serveurs puisqu'elle ne fait appel à aucun fichier. Pour lui faire adapter le comportement souhaité, il suffit tout simplement de lui passer en argument un certain nombre d'options.

L'ensemble des options disponibles et leurs significations sont détaillés dans la documentation livrée avec le logiciel.

Voici juste pour exemple, la configuration de mon serveur ftp anonyme:
# pure-ftpd -A -b -B -c 5 -C 2 -e -F /usr/share/games/fortune/fr/amusantes -H -k 95% -K -M -q 1:2 -r -s -t :12


Lexique des options ci-dessous:
  • -A : Demande au serveur de chrooter tous les utilisateurs ftp. Concrètement cela veut dire qu'ils ne pourront sortir du répertoire maison que je leur ai défini [ici /var/ftp]. Ils ne verront rien d'autre de mon système que le répertoire /var/ftp et ses sous-répertoires ;-).
  • -b : Être moins exigeant avec les standards pour permettre la connexion à des clients ftp très peu soucieux des standards, tel IExplorer.
  • -B : Fonctionnement du serveur en arrière-plan.
  • -c : Autoriser au maximum de [n] connexions simultanées au serveur.Ici n=5.
  • -C : Autoriser au maximum [n] connexions simultanées venant de la même adresse ip au serveur. Ici n=2.
  • -e : N'accepter uniquement que les connexions anonymes.
  • -F : A chaque connexion d'un client, afficher un message de bienvenue pris de manière aléatoire dans le fichier /usr/share/games/fortune/fr/amusantes.
  • -H : Ne pas résoudre les noms de domaine pour accélérer les connexions c-a-d ne pas chercher a déterminer quel est le nom de domaine de l'adresse ip 213.41.14.252 qui demande la connexion.
  • -k : Ne pas autoriser les uploads dès lors que la partition est à [pourcentage]% pleine. Ici, limite fixée a 95%.
  • -K : Autoriser les utilisateurs à uploader et à "résumer" leur upload mais pas à supprimer ou renommer leur fichiers uploadés.
  • -M : Autoriser les utilisateurs anonymes à créer des répertoires.
  • -q : Mettre en place les ratios [ratio upload]:[ratio download] pour les utilisateurs anonymes. Ici -q 1:2 signifie que les utilisateurs anonymes doivent uploader 1Mo de données pour pouvoir downloader 2Mo.
  • -r : Ne jamais écraser un fichier existant. Le fichier est automatiquement renommer si un fichier du même nom existe déjà sur le serveur.
  • -s : La protection anti-warez. Ne pas autoriser les utilisateurs anonymes à télécharger des fichiers qui viennent d'être uploadé par d'autres utilisateurs anonymes. Il faut qu'auparavant, l'administrateur du serveur est validé tous les fichiers uploadés comme étant disponible [ou non] au téléchargement.
  • -t : Mettre en place une limitation de la bande passante [n kb/s upload]:[m kb/s download]. Ici -t :12 signifie que pour les utilisateurs, la vitesse en upload est illimitée [d'où l'absence de valeur] et que la vitesse en dowload est limitée à 12 kb/s.
  • -w : Activer le support FXP pour les utilisateurs authentifié
  • -S (port ) : Connexion à Pure-ftpd sur un port non standard

Il existe beaucoup d'autres options dont vous trouverez le détail dans la documentation fournie avec le logiciel et qui est localisé dans votre répertoire /usr/share/doc/ ou man pure-ftpd.

3.3 Configuration pour SSL/TLS



Si vous avez installé Pure-FTP avec le support SSL/TLS assurez-vous d'avoir l'une des options suivantes dans la ligne qui lance Pure-FTP.
  • --tls=0 : Désactivation du support SSL/TLS
  • --tls=1 : Connexions de client normaux ou sécurisé autorisé.
  • --tls=2 : Seul les clients sécurisés peuvent se connecter.

Je vous invite à regarder le lien suivant pour plus d'information :

4. Création d'utilisateurs virtuels



Dans cette partiz nous allons créer un utilisateur mommé TEST, qui va être chrooté ( pas de remonté de répertoire )dans /Download/Download/ftp/. L'intérêt de crée ce type d'utilisateur est de ne pas crée des compte directement sur la machine.

Je vais supposer que votre base de données des virtual users est /etc/pure-ftpd/pureftpd.pdb, si ce n'est pas le cas chez vous, adaptez. Pour lancer, pure avec le support de la base données c'est :
pure-ftpd -B -1 -K -A -c 5 -C 1 -E -r -w -l puredb:/etc/pure-ftpd/pureftpd.pdb &


S'il est déjà lancé, vous n'avez qu'à tuer son processus avant d'exécuter la commande précédente.

Pour rajouter un utilisateur, tapez simplement la commande qui suit. 501 étant, le gid et l'uid de l'utilisateur ainsi créé, vérifiez qu'il n'entre en conflit avec aucun autre utilisateur, avant, chez vous :
pure-pw useradd TEST -u 501 -g 501 -d /Download/Download/ftp/
password : *****
confirm : *****


Pour que cet utilisateur soit pris en compte il faut mettre à jour la base de données des virtual users, chez moi mkdb :
pure-pw mkdb


Vérification de la création de l'utilisateur TEST :
pure-pw show TEST

-----------------------------------------------------

Login : TEST

Password : $1$UOz/bTt0$MIQaP52DT/LeA7MJksCNc0

UID : 501 (user)

GID : 501 (user)

Directory : /Download/Download/ftp/./

Full name :

Download bandwidth : 0 Kb (unlimited)

Upload bandwidth : 0 Kb (unlimited)

Max files : 0 (unlimited)

Max size : 0 Mb (unlimited)

Ratio : 0:0 (unlimited:unlimited)

Allowed local IPs :

Denied local IPs :

Allowed client IPs :

Denied client IPs :

Time restrictions : 0000-0000 (unlimited)

Max sim sessions : 0 (unlimited) 

5. Automatiser le lancement du serveur



Pour lancer notre serveur au démarrage du PC, il faut ajouter à la fin du fichier /etc/rc.d/init.d/rc.local, la ligne qui nous sert habituellement à le lancer. Ceci ne concerne bien-sûr pas ceux qui utilisent, les utilisateurs virtuels.
#Lancement de pure-ftpd (la suite en une ligne)

 pure-ftpd -A -b -B -c 5 -C 2 -e -F /usr/share/games/fortune/fr/amusantes -H -k 95% -K -M -q 1:2 -r -s -t :12 & 

pour ceux qui utilisent, les virtuals users, c'est ceci qu'il faut rajouter à /etc/rc.d/init.d/rc.local :
#Lancement de pure-ftpd (la suite en une ligne)

pure-ftpd -B -1 -K -A -c 5 -C 1 -E -r -w -l puredb:/etc/pure-ftpd/pureftpd.pdb & 

6. Commandes utiles


  • Un script d'administration de pure-ftp est disponible ici

  • Pour supprimer le compte TEST :
    # pure-pw userdel TEST


  • Changer le password de l'utilisateur TEST:
    # pure-pw passwd TEST


  • Arrêt du serveur PureFtpd :
    # killall -9 pure-ftpd


  • Vérification de l'arrêt du serveur :
    # ps -C pure-ftpd


  • Vérification des présences sur le ftp.
    Pure-ftpwho ou pure-ftpwho -v


That's all !





--Message édité par TrustRobot le 03-01-2006 à 10:03:19--
Allae
#1 Message posté le : 13-08-2007 à 17:22:09


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 13-08-2007
Nombre de messages : 1
alut,
j'ai essayé d'installer un serveur Pure-ftp selon cette methode, malheureusement ça ne marche pas, j'ai un Suse-Linux 9.0.
merci de me dire la solution
stanislas
#2 Message posté le : 14-08-2007 à 13:09:14


Jedi


Forum : Administrateur
Association : Membre fondateur
Arrivé(e) le : 08-05-2003
Nombre de messages : 4351
Il nous faudrait plus de détails (messages d'erreur, etc.).

D'autre part, la SuSE 9.0 me semble un peu ancienne ... n'en as-tu pas une plus récente pour essayer ?

Enfin, avant d'installer à la main : pureFTP n'existe-t-il pas en tant que paquet prêt à installer ?

--Message édité par stanislas le 14-08-2007 à 13:09:36--


-------------------------------------
Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas.