{"id":74,"date":"2006-10-13T16:29:58","date_gmt":"2006-10-13T14:29:58","guid":{"rendered":"http:\/\/www.dotmana.com\/index.php\/?p=74"},"modified":"2006-10-13T16:29:58","modified_gmt":"2006-10-13T14:29:58","slug":"configuration-pureftpd","status":"publish","type":"post","link":"http:\/\/www.dotmana.com\/weblog\/2006\/10\/configuration-pureftpd\/","title":{"rendered":"Configuration PureFtpd"},"content":{"rendered":"<blockquote>\n<div class=\"post-chapo\"><\/div>\n<div class=\"post-chapo\">La notion d&#8217;utilisateurs virtuels est tr\u00e8s simple, il s&#8217;agit d&#8217;un utilisateur pouvant se connecter uniquement via FTP (par opposition aux comptes de la machine, qui peuvent \u00e9galement se connecter en FTP). Toutes connexions locales, SSH&#8230; lui seront refus\u00e9es.<\/p>\n<p>La m\u00e9thode utilis\u00e9e est la suivante :<\/p>\n<p>* Les utilisateurs poss\u00e8dent l&#8217;UID d&#8217;un utilisateur syst\u00e8me existant. Il est possible de cr\u00e9er un utilisateur virtuel poss\u00e9dant le m\u00eame UID que votre utilisateur syst\u00e8me courant (afin de garder les m\u00eames acc\u00e8s). Le m\u00eame principe est utilis\u00e9 pour le GID.<\/p>\n<p>* Chaque utilisateur virtuel poss\u00e8de un profil unique contenant ses limites de bande passante, ses quotas, ses horaires d&#8217;acc\u00e8s&#8230;<\/p>\n<p>Tout cela apporte une s\u00e9curit\u00e9 assez robuste en cas d&#8217;exploitation d&#8217;une \u00e9ventuelle faille.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.pureftpd.org\/images\/pure-ftpd.png\" \/><\/div>\n<div class=\"post-content\"><img decoding=\"async\" src=\"http:\/\/sydtux.free.fr\/dotclear\/images\/horloge.jpg\" \/><strong>Installation (-20 min)<\/strong><\/p>\n<p>1. Installer le serveur avec la commande :<\/p>\n<pre>sudo apt-get install pure-ftpd pure-ftpd-common<\/pre>\n<p><em>&#8230; A ce stade, les utilisateurs anonymes ne peuvent pas se connecter et les clients authentifi\u00e9s peuvent se balader partout dans l&#8217;arborescence&#8230;<\/em><\/p>\n<p><em>a. Chroot des utilisateurs<\/em><\/p>\n<p>Cr\u00e9er un fichier ChrootEveryone et mettre la valeur &#8220;yes&#8221; \u00e0 l&#8217;int\u00e9rieur<\/p>\n<pre>sudo touch \/etc\/pure-ftpd\/conf\/ChrootEveryone\r\nsudo gedit \/etc\/pure-ftpd\/conf\/ChrootEveryone<\/pre>\n<p><em>b. Autorisation des acc\u00e8s anonymes<\/em><\/p>\n<p>Editer le fichier de configuration NoAnonymous et remplacer la valeur &#8220;yes&#8221; par &#8220;no&#8221;<\/p>\n<pre>sudo gedit \/etc\/pure-ftpd\/conf\/NoAnonymous<\/pre>\n<p>2. Tout d&#8217;abord, cr\u00e9er un nouveau groupe pour pureftpd :<\/p>\n<pre>sudo groupadd ftpgroup<\/pre>\n<p>3. Ensuite, ajouter un utilisateur qui n&#8217;aura aucune permission dans son r\u00e9pertoire personnel, ni aucun shell valide :<\/p>\n<pre>sudo useradd -g ftpgroup -d \/dev\/null -s \/etc ftpuser<\/pre>\n<p>4. Nous allons maintenant pouvoir cr\u00e9er notre premier utilisateur virtuel &#8216;syd&#8217; avec la commande <strong>pure-pw useradd<\/strong> :<\/p>\n<pre>sudo pure-pw useradd syd -u ftpuser -g ftpgroup -d \/var\/ftp\/syd -N 200<\/pre>\n<p>Ici, l&#8217;utilisateur syd sera &#8217;emprisonn\u00e9&#8217; (chrooter) dans son r\u00e9pertoire personnel (\/var\/ftp\/syd) grace \u00e0 l&#8217;option &#8220;-d&#8221; et sera limit\u00e9 \u00e0 200 MB d&#8217;espace disque avec l&#8217;option &#8220;-N 200&#8221;. Attention, le premier mot de passe demand\u00e9 est celui du compte root qui ex\u00e9cute la commande, les 2 suivants ceux \u00e0 cr\u00e9er pour l&#8217;utilisateur virtuel syd.<\/p>\n<p>Remarque : Le dossier &#8220;\/var\/ftp\/syd&#8221; indiqu\u00e9 sera cr\u00e9\u00e9 automatiquement \u00e0 la premi\u00e8re connexion si le fichier &#8220;\/etc\/pure-ftpd\/conf\/CreateHomeDir&#8221; contient &#8220;yes&#8221;<\/p>\n<p>5. Les utilisateurs virtuels sont enregistr\u00e9s dans le fichier \/etc\/pure-ftpd\/pureftpd.passwd ; apr\u00e8s chaque ajout d&#8217;un utilisateur virtuel, il faut imp\u00e9rativement mettre \u00e0 jour la base de donn\u00e9e avec la commande :<\/p>\n<pre>sudo pure-pw mkdb<\/pre>\n<p>6. Pour finir, il faut cr\u00e9er un lien symbolique pour activer l&#8217;authentification des utilisateurs virtuels :<\/p>\n<pre>sudo ln -s \/etc\/pure-ftpd\/conf\/PureDB \/etc\/pure-ftpd\/auth\/75puredb<\/pre>\n<p>Voil\u00e0, en quelques lignes de commandes vous avez install\u00e9 un serveur FTP accessible par vos utilisateurs syst\u00e8mes, vos utilisateurs virtuels et un compte anonyme <img decoding=\"async\" class=\"smiley\" alt=\":)\" src=\"http:\/\/sydtux.free.fr\/dotclear\/themes\/default\/smilies\/smile.png\" \/><\/p>\n<p><img decoding=\"async\" src=\"http:\/\/sydtux.free.fr\/dotclear\/images\/parametrage.jpg\" \/><strong>Pour aller plus loin<\/strong><\/p>\n<p>1. Modification des options d&#8217;un compte virtuel<\/p>\n<pre>sudo pure-pw usermod syd -d \/NouveauDossierDeSyd -N 400<\/pre>\n<p>Ici on change le r\u00e9pertoire de base de notre utilisateur syd et on lui affecte un nouveau quota<\/p>\n<p>2. Suppression d&#8217;une option<\/p>\n<pre>sudo pure-pw usermod syd -N ''<\/pre>\n<p>Mettre des simples quotes sans valeur pour l&#8217;option \u00e0 retirer<\/p>\n<p>3. Suppression d&#8217;un compte virtuel<\/p>\n<pre>sudo pure-pw userdel syd<\/pre>\n<p>Astuce : rajouter le switch <strong>-m<\/strong> \u00e0 la fin de la commande pour mettre \u00e0 jour la base de donn\u00e9e automatiquement<\/p>\n<p>4. R\u00e9initialisation d&#8217;un mot de passe<\/p>\n<pre>sudo pure-pw passwd syd<\/pre>\n<p>5. Lister les utilisateurs virtuels<\/p>\n<pre>sudo pure-pw list<\/pre>\n<p>6. Afficher les options d&#8217;un utilisateur virtuel<\/p>\n<pre>sudo pure-pw show syd<\/pre>\n<p>7. Actions sur le serveur ftp<\/p>\n<pre>sudo \/etc\/init.d\/pure-ftpd {start|stop|restart|force-reload}<\/pre>\n<p><strong><a href=\"http:\/\/purify.sourceforge.net\/\">Pureadmin<\/a><\/strong> est une interface graphique qui permet de g\u00e9rer les utilisateurs virtuels de pure-ftpd mais \u00e9galement de surveiller et interagir avec l&#8217;activit\u00e9 du service ftp. Pour l&#8217;installer :<\/p>\n<pre>sudo apt-get install pureadmin<\/pre>\n<\/div>\n<div class=\"post-content\">Adeptes de la ligne de commande ou d&#8217;interfaces graphiques (mon choix est fait), vous avez maintenant les bases pour monter votre propre serveur ftp !<\/div>\n<div class=\"post-content\"><\/div>\n<\/blockquote>\n<p><a target=\"_blank\" href=\"http:\/\/sydtux.free.fr\/dotclear\/index.php?2006\/10\/12\/51-installer-un-serveur-ftp-avec-des-utilisateurs-virtuels-pure-ftpd\">source\u00a0<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La notion d&#8217;utilisateurs virtuels est tr\u00e8s simple, il s&#8217;agit d&#8217;un utilisateur pouvant se connecter uniquement via FTP (par opposition aux comptes de la machine, qui peuvent \u00e9galement se connecter en FTP). Toutes connexions locales, SSH&#8230; lui seront refus\u00e9es. La m\u00e9thode &hellip; <a href=\"http:\/\/www.dotmana.com\/weblog\/2006\/10\/configuration-pureftpd\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-74","post","type-post","status-publish","format-standard","hentry","category-ubuntu"],"_links":{"self":[{"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/posts\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":0,"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.dotmana.com\/weblog\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}