Comment installer et configurer un serveur FTP avec des utilisateurs virtuels Pure-FTPd +

Je fais partie de ceux qui aiment innover et apprendre de nouvelles choses, il n'y a pas longtemps, j'ai dû installer et configurer un serveur FTP et j'ai décidé de le faire différemment de ce que j'ai toujours fait.

Dans ce cas j'ai opté pour un service FTP avec des utilisateurs virtuels, des utilisateurs qui seront stockés dans un fichier crypté (utilisateur, mot de passe, paramètres, etc.), le tout avec FTPd pur.

Ici, je vais vous montrer comment le faire ... eh bien, commençons 😉

Tout d'abord, spécifiez que les commandes de ce didacticiel sont destinées à des distributions comme Debian ou basées sur elles, mais si quelqu'un utilise une autre distribution sur son serveur, il doit installer les mêmes paquets et utiliser les paramètres définis ci-dessous, la seule chose à changer est la commande d'installation.

Toutes les commandes qu'ils liront seront exécutées en tant que root, si vous le souhaitez, vous pouvez ajouter «sudo» à chaque ligne.

1. Nous devons d'abord installer Pure FTPd:

apt-get install pure-ftpd

La sortie se terminera par quelque chose comme ceci:

installation-pure-ftpd

2. Le service est déjà activé, mais il est inutile si nous ne l'avons pas configuré correctement, mettons un fichier de configuration complet mais presque standard, il contient le normal, établissant que les utilisateurs anonymes ne sont pas autorisés, etc. etc.

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf

3. Eh bien, supposons que notre dossier FTP soit / var / www / ftp / et que nous souhaitons créer un utilisateur capable de télécharger des informations dans le dossier / var / www / ftp / sysadmin /, mettons ce qui suit dans un terminal:

pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/

Cela signifie ce qui suit:

pure-pw: commande utilisée pour manipuler les utilisateurs Pure-FTPd
useradd: Nous indiquons que nous allons ajouter un utilisateur
sysadmin: l'utilisateur que je souhaite créer
-u 2001: ID utilisateur de cet utilisateur
-g 2001: GroupID de cet utilisateur
-d / var / www / ftp / sysadmin /: le dossier qui accueillera cet utilisateur, c'est-à-dire où il téléchargera les choses

Lorsque vous entrez dans la ligne précédente, il vous demandera le mot de passe de cet utilisateur.

Ils doivent avoir créé au préalable le dossier sysadmin dans / var / www / ftp /

4. Maintenant, ils doivent actualiser le fichier de la base de données utilisateur, pour cela, nous entrons dans le dossier / etc / pure-ftpd / (cd / etc / pure-ftpd) et mettons dans le terminal:

pure-pw mkdb

5. Maintenant, nous devons démarrer Pure-FTPd mais en indiquant que nous allons utiliser le fichier des utilisateurs virtuels, arrêtons d'abord le service:

/etc/init.d/pure-ftpd stop

Ensuite, nous nous assurerons qu'il ne démarrera pas par défaut normalement:

chmod -x /etc/init.d/pure-ftpd

Et maintenant, nous commençons le service à notre façon:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

6. S'ils essaient d'utiliser une application comme Filezilla, ils verront qu'ils peuvent se connecter sans problème avec l'utilisateur créé, mais ils ne pourront rien copier ni créer de répertoires, c'est parce que le dossier / var / www / ftp / sysadmin / (la maison de l'utilisateur comme dans l'exemple) n'a pas les autorisations appropriées, il sera corrigé avec un:

chown -R 2001:2001 /var/www/ftp/sysadmin/

Rappelez-vous, l'Uid et Gid 2001 est celui de l'utilisateur que nous avons créé, nous l'avons créé avec la commande à l'étape précédente 3 😉

7. Pour arrêter le service, appuyez simplement sur [Ctrl] + [C] dans le même terminal ou, dans un autre terminal, effectuez une:

killall pure-ftpd

Nous allons maintenant indiquer que le service démarrera automatiquement avec le système au démarrage du serveur, pour cela nous modifions le fichier /etc/rc.local et avant la dernière ligne qui dit "exit 0" nous mettons la commande avec laquelle nous démarrons le service FTP:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

En d'autres termes, cela ressemblerait à ceci:

rc-local-pur-ftpd

Vous pouvez éditer le fichier avec nano, vi ou votre éditeur préféré, ou si vous préférez, copiez et collez cette commande qui facilitera votre travail:

perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local

... oui oui ... comme vous lisez, «faciliter», c'est une commande étendue oui, mais il s'agit simplement de remplacer du texte par du perl et un écho inoffensif 🙂

8. Une fois cela fait, redémarrez le serveur et vous verrez que le service pur-ftpd est démarré et prêt à fonctionner 😀

Comment supprimer des utilisateurs?

Comme je vous l'ai déjà dit, la commande pur-pw est ce dont nous avons besoin pour manipuler les utilisateurs, pour supprimer un utilisateur (par exemple, sysadmin) mettons ce qui suit:

cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb

N'oubliez pas que chaque fois que vous apportez une modification à un utilisateur, vous devez régénérer le fichier de base de données virtuelle des utilisateurs, il se trouve dans / etc / pure-ftpd / et il est généré / mis à jour avec pure-pw mkdb

En tout cas amis je pense qu'il n'y a pas grand chose à ajouter, vous invitons à lire l'aide de pure-pw car cela nous permet bien plus que ce que je vous ai montré ici (ce n'est qu'un tutoriel court et presque basique).

Il y a un ou deux ans, j'étais de ceux qui reliaient tout à OpenLDAP ou MySQL, mais au fil du temps, je me suis rendu compte que tant de connexions à des bases de données qui sont des serveurs en tant que tels génèrent une consommation que souvent nous ne pouvons pas nous permettre, Par conséquent, l'utilisation d'alternatives totalement viables telles que l'utilisation de bases de données dans les propres fichiers de l'application, telles que Pure-FTPd .pdb 🙂

Tout doute ou question, je vais essayer d'aider autant que je peux.

Salutations et… bon piratage!


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   animé dit

    Que ça .. Documentation en cas d'erreurs 😀

    1.    KZKG ^ Gaara dit

      Et j'écris déjà le post sur comment installer Nginx + MySQL + Spawn_FastCGI comme je l'ai fait dans Justice, et grâce à cela, le blog fonctionne si bien :)

      J'espère l'avoir prêt pour demain ou après-demain.

  2.   Rodolfo dit

    Bon message; C'est drôle, récemment j'ai eu du mal à mettre mon serveur ftp que je ne pouvais même pas avec vsftpd et je suis allé à pure-ftpd et si je pense que j'en ai besoin, c'est de mettre un exemple de la conf claire la documentation est très bonne, mais au moins les bases . Cryptage, ou au moins le port forwading en cas d'utilisation d'un routeur.
    D'ailleurs avec cette commande pure-ftp qui vous permet de savoir qui est connecté au serveur, et si quelque chose est en cours de téléchargement;).
    Et selon vous, mettre une base de données pour se connecter au serveur n'est pas si nécessaire.

    1.    KZKG ^ Gaara dit

      Merci pour le commentaire 🙂

      Oui en effet, je n'ai pas expliqué beaucoup de choses (tout en fait) dans la configuration, c'est que j'ai supposé que quelqu'un qui sait gérer un serveur, qui veut installer un service FTP, que quelqu'un n'aurait pas de problèmes majeurs à lire les commentaires du fichier conf ^ - ^

      Salutations et encore, merci pour le commentaire

  3.   Tahouri dit

    Bonjour Très bon article, j'utilise (ou du moins pour l'instant) vsftpd mais j'ai quelques problèmes avec lui, et je voulais voir si cela m'arrivait, as-tu une URL ou une doc pour voir comment est sa configuration?

    Merci beaucoup };)

    1.    KZKG ^ Gaara dit

      Vous pouvez voir la configuration ici: http://ftp.desdelinux.net/pure-ftpd.conf
      Des questions ou si vous avez besoin de quelque chose, ouvrez un fil dans le forum que nous serons heureux de vous aider 🙂

  4.   Athéyus dit

    Très bien 😀

    Juste une petite chose, la commande perl n'a pas le symbole ^, donc cela ne change pas l'autre exit 0 qui se trouve dans les commentaires:

    perl -pi -e "s[^exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" rc.local && echo "exit 0" >> rc.local

    salutations

  5.   Omar dit

    Excellent, j'ai juste une question, comment puis-je créer un utilisateur en lecture seule? J'utilise Centos 6.5, pureftpd, ispconfig et le mode graphique.

    J'utilise ispconfig uniquement pour ftp

    salutations et remerciements

  6.   Monzon dit

    Cette façon d'installer pureftp est un ASCO 🙂 vous laissez le service s'exécuter en tant que root, créez un utilisateur virtuel puis modifiez les autorisations sur le système de fichiers, et ufff un long etc. La façon dont le package est installé est prêt à être utilisé, il n'est pas nécessaire de suivre toutes ces étapes

    1.    animé dit

      Vous êtes invité à publier un guide moins "dégoûtant". 😉

    2.    Sedlav dit

      Que proposez vous? Mettez le serveur ftp à écouter sur un port> 1024? Si le serveur ftp écoute sur son port standard: 22 il doit être exécuté en tant que root sauf si vous modifiez les capacités du noyau, si vous voulez améliorer la sécurité utilisez un framework MAC avec SELinux une autre variante serait de jail / chroot le serveur ftp.

  7.   Ll Tailor dit

    Le lien pour le pure-ftpd.conf est en panne ou n'existe pas. Pouvez-vous le restaurer?
    merci

  8.   Pièces jointes dit

    2 ans plus tard, le lien pour le fichier pure-ftpd.conf est toujours en panne 🙁