{"id":183,"date":"2013-07-20T18:53:48","date_gmt":"2013-07-20T16:53:48","guid":{"rendered":"http:\/\/wp1.fredptitgars.net\/index.php\/2013\/07\/20\/installation-vsftpd\/"},"modified":"2013-07-20T18:53:48","modified_gmt":"2013-07-20T16:53:48","slug":"installation-vsftpd","status":"publish","type":"post","link":"https:\/\/fredptitgars.ovh\/?p=183","title":{"rendered":"installation vsftpd"},"content":{"rendered":"<p>vsFTPd (pour Very Secure FTP Daemon) s&rsquo;annonce lui-m\u00eame comme \u00e9tant \u00ab\u00a0probablement le plus sur et le plus rapide des serveurs FTP pour syst\u00e8mes Unix\u00a0\u00bb.<\/p>\n<p>La configuration portera essentiellement sur deux usages :<\/p>\n<p>utilisation du FTP avec des utilisateurs virtuels qui peuvent uploader<\/p>\n<h2>1 \u2013 Installer vsFTPd<\/h2>\n<p><code><br \/>\n# apt-get install vsftpd<br \/>\n<\/code><\/p>\n<h2>2 &#8211; configuration<\/h2>\n<p>Le but ici est d&rsquo;utiliser le serveur FTP uniquement avec des utilisateurs virtuels, et non avec les utilisateurs locaux du syst\u00e8me Unix.<\/p>\n<p>La configuration se trouve dans le fichier <strong>\/etc\/vsftpd.conf<\/strong><\/p>\n<p><strong>2.1  Configuration de base<\/strong><\/p>\n<p>Les param\u00e8tre de \/etc\/vsftpd.conf<\/p>\n<p><code><br \/>\nlisten=YES<br \/>\nanonymous_enable=NO<br \/>\nlocal_enable=YES<br \/>\ndirmessage_enable=YES<br \/>\nuse_localtime=YES<br \/>\nconnect_from_port_20=YES<br \/>\nftpd_banner=coucou gros sac.<br \/>\nsecure_chroot_dir=\/var\/run\/vsftpd\/empty<br \/>\npam_service_name=vsftpd<br \/>\nrsa_cert_file=\/etc\/ssl\/private\/vsftpd.pem<br \/>\nguest_enable=YES<br \/>\nuser_config_dir=\/etc\/vsftpd\/vsftpd_user_conf<br \/>\nxferlog_enable=YES<br \/>\ndual_log_enable=YES<br \/>\n<\/code><\/p>\n<p>Ici nous avons bloquer l&rsquo;utilisateur anonyme.<br \/>\nd\u00e9fini que la config des utilisateurs est dans : \/etc\/vsftpd\/vsftpd_user_conf<br \/>\nactiver les log de login et log de transfert<\/p>\n<p>Nous devons cr\u00e9er le r\u00e9pertoire \/etc\/vsftpd\/vsftpd_user_conf<\/p>\n<p><code><br \/>\nmkdir \/etc\/vsftpd\/vsftpd_user_conf<br \/>\n<\/code><\/p>\n<p><strong>2.2 \u2013 Configurer des utilisateurs virtuels<\/strong><\/p>\n<p>2.2.1 \u2013 Cr\u00e9er une base de donn\u00e9es<\/p>\n<p>Les utilisateurs virtuels avec leur mot de passe associ\u00e9 doivent se trouver dans une base de donn\u00e9es de type Berkeley DB.<\/p>\n<p>Le but est donc de cr\u00e9er un fichier texte pour ensuite le convertir.<\/p>\n<p>Cr\u00e9er donc un fichier texte :<\/p>\n<p><code><br \/>\n#cd \/etc\/vsftpd<br \/>\n# vim vsftpd_logins.txt<br \/>\n<\/code><br \/>\nY mettre une suite d&rsquo;utilisateurs\/mot de passe s\u00e9par\u00e9s par un retour chariot :<\/p>\n<p><em>user<br \/>\npassword<br \/>\nuser2<br \/>\npassword2<\/em><\/p>\n<p>Enregistrer le fichier et quitter.<\/p>\n<p>Installer ensuite les outils de base de donn\u00e9es Berkeley :<\/p>\n<p><code><br \/>\n# apt-get install db-util<br \/>\n<\/code><\/p>\n<p>Convertir alors le fichier texte [[Pour lire cette base<br \/>\n<code><br \/>\ndb5.1_dump -p login.db>fichier_dump.txt<br \/>\n<\/code>]]<\/p>\n<p><code><br \/>\n# db5.1_load -T -t hash -f \/etc\/vsftpd\/login.txt \/etc\/vsftpd\/login.db<br \/>\n<\/code><\/p>\n<p>Puis modifier les droits des deux fichiers pour un peu plus de discr\u00e9tion :<\/p>\n<p># chmod 600 \/etc\/vsftpd\/login.txt<br \/>\n# chmod 600 \/etc\/vsftpd\/login.db<\/p>\n<p>2.2.2 \u2013 Cr\u00e9er un fichier de r\u00e8gle PAM<\/p>\n<p>La prochaine \u00e9tape consiste \u00e0 cr\u00e9er un fichier PAM pour utiliser cette base de donn\u00e9es lors de l&rsquo;authentification des utilisateurs.<\/p>\n<p>Supprimer le fichier PAM existant :<\/p>\n<p><code><br \/>\n# rm \/etc\/pam.d\/vsftpd<br \/>\n<\/code><br \/>\nEt en ouvrir un nouveau :<br \/>\n<code><br \/>\n# vim \/etc\/pam.d\/vsftpd<br \/>\n<\/code><br \/>\nY ajouter ces deux lignes [[ Les fichiers peuvent \u00eatre a d&rsquo;autre endroit suivant la version  du syst\u00e8me<br \/>\nIls peuvent se trouver dans le r\u00e9pertoire <em>\/lib\/i386-linux-gnu\/security\/<\/em><br \/>\n]]:<\/p>\n<p><em>auth required \/lib\/x86_64-linux-gnu\/security\/pam_userdb.so db=\/etc\/vsftpd\/login<br \/>\naccount required \/lib\/x86_64-linux-gnu\/security\/pam_userdb.so db=\/etc\/vsftpd\/login<br \/>\n<\/em><\/p>\n<p>Enregistrer et quitter.<\/p>\n<p>2.2.3 \u2013 Cr\u00e9er un fichier de configuration par utilisateur<\/p>\n<p>Avec la configuration actuelle, les utilisateurs virtuels peuvent lire les fichiers pr\u00e9sents dans le r\u00e9pertoire de d\u00e9p\u00f4t FTP.<\/p>\n<p>On peut vouloir donner plus de droits \u00e0 un utilisateur, pour lui permettre par exemple d&rsquo;uploader lui-m\u00eame des fichiers.<\/p>\n<p>Pour cela, chaque utilisateur virtuel devra avoir sa propre configuration situ\u00e9e dans le r\u00e9pertoire \/etc\/vsftpd\/vsftpd_user_conf.<\/p>\n<p>Cette \u00e9tape n&rsquo;est pas obligatoire et ne concernent que les utilisateurs ayant des droits sup\u00e9rieurs aux droits de base, c&rsquo;est \u00e0 dire qui ont besoin de faire plus que simplement lire les fichiers de r\u00e9pertoire de d\u00e9p\u00f4t FTP.<\/p>\n<p>Editer le fichier de configuration d&rsquo;un utilisateur virtuel :<br \/>\n<code><br \/>\n# vim \/etc\/vsftpd_user_conf\/user<br \/>\n<\/code><\/p>\n<p>Et y inscrire ces options :<\/p>\n<p><em>anon_mkdir_write_enable=YES<br \/>\nanon_other_write_enable=YES<br \/>\nanon_upload_enable=YES<br \/>\ndirlist_enable=YES<br \/>\ndownload_enable=YES<br \/>\nwrite_enable=YES<br \/>\nguest_username=www-dev<br \/>\nanon_umask=022<br \/>\n<\/em><\/p>\n<p>on autorise l\u2019\u00e9criture, la cr\u00e9ation de r\u00e9pertoire, on force l&rsquo;utilisateur <em>www-dev<\/em>.<\/p>\n<h2>3 \u2013 Probl\u00e8mes et solutions<\/h2>\n<p><strong>3.1 \u2013 Emplacement des modules PAM<\/strong><\/p>\n<p>La connexion FTP \u00e9choue et ce message apparait dans les logs d&rsquo;authentification :<br \/>\n<code><br \/>\nvsftpd: PAM unable to dlopen(\/lib\/security\/pam_userdb.so): \/lib\/security\/pam_userdb.so: cannot open shared object file: No such file or directory<br \/>\nvsftpd: PAM adding faulty module: \/lib\/security\/pam_userdb.so<br \/>\n<\/code><br \/>\nC&rsquo;est que le module PAM userdb n&rsquo;est pas au bon endroit.<\/p>\n<p>Il faut alors pr\u00e9ciser le chemin correct dans le fichier \/etc\/pam.d\/vsftpd (par exemple, dans mon cas il est dans \/lib\/i386-linux-gnu\/security\/ au lieu d&rsquo;\u00eatre habituellement dans \/lib\/security\/).<\/p>\n<p><strong>3.2 \u2013 Droits en \u00e9criture sur le r\u00e9pertoire de d\u00e9p\u00f4t<\/strong><\/p>\n<p>La connexion FTP se d\u00e9roule bien mais  se termine sur ce message :<br \/>\n<code><br \/>\n500 OOPS: vsftpd: refusing to run with writable root inside chroot()<br \/>\nLogin failed.<br \/>\n<\/code><br \/>\nIl faut enlever les droits en \u00e9criture sur le r\u00e9pertoire racine de l&rsquo;utilisateur r\u00e9el (restriction impos\u00e9e par les versions r\u00e9centes de vsFTPd) :<br \/>\n<code><br \/>\n# chmod a-w \/home\/ftpvirtual\/<br \/>\n<\/code><\/p>\n<h2>4 \u2013 quelques liens<\/h2>\n<p>https:\/\/security.appspot.com\/vsftpd.html<br \/>\nhttp:\/\/blog.moncoindunet.fr\/linux\/installer-et-configurer-vsftpd\/<br \/>\nhttp:\/\/www.croc-informatique.fr\/2008\/04\/vsftpd-virtual-users\/<br \/>\nhttp:\/\/yohanes.pradono.com\/2012\/11\/18\/installing-vsftpd-with-virtual-users-enabled-and-using-pam_pwdfile-for-authentication<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"HRWR4VLqGb\"><p><a href=\"https:\/\/www.prometee-creation.com\/tutoriels\/un-serveur-ftp-avec-vsftpd-et-utilisateurs-virtuels.html\">Configurer un serveur ftp : vsftpd avec des utilisateurs virtuels<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00ab\u00a0Configurer un serveur ftp : vsftpd avec des utilisateurs virtuels\u00a0\u00bb &#8212; Site de Francis Hilaire expert Symfony et Sylius\" src=\"https:\/\/www.prometee-creation.com\/tutoriels\/un-serveur-ftp-avec-vsftpd-et-utilisateurs-virtuels.html\/embed#?secret=3DhjJsCUq6#?secret=HRWR4VLqGb\" data-secret=\"HRWR4VLqGb\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><br \/>\nhttp:\/\/www.post-hit.net\/geek\/vsftpd-configurer-serveur-ftp-utilisateurs-virtuels-chroot-mount-bind<\/p>\n","protected":false},"excerpt":{"rendered":"<p>vsFTPd (pour Very Secure FTP Daemon) s&rsquo;annonce lui-m\u00eame comme \u00e9tant \u00ab\u00a0probablement le plus sur et le plus rapide des serveurs FTP pour syst\u00e8mes Unix\u00a0\u00bb. La configuration portera essentiellement sur deux usages : utilisation du FTP avec des utilisateurs virtuels qui peuvent uploader 1 \u2013 Installer vsFTPd # apt-get install vsftpd 2 &#8211; configuration Le but [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-183","post","type-post","status-publish","format-standard","hentry","category-poweredge-t105"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=183"}],"version-history":[{"count":0,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/183\/revisions"}],"wp:attachment":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}