"tu est né avec debian inclut dans ton crâne? "
Mon Dieu, ce que ça aurait été pratique, ça…
Tkt, t’es pas le seul à apprendre. T’es pas non plus le seul à devoir faire avec l’impatience, et tu n’es pas non plus le seul à poser… trop de questions.
Je ne suis pas toujours mieux, snif… Mais le temps et le travail améliore largement les choses, tu peux me croire par expérience.
Faut juste bosser.
Bien.
D’abord, si tu ne chopes pas le vsftpd par apt-get, c’est parce que tu n’as pas de repository à jour. Pour ça, tu dois avoir un fichier sources.list correctement alimenté :
etch
deb ftp.fr.debian.org/debian/ etch main contrib non-free
deb-src ftp.fr.debian.org/debian/ etch main contrib non-free
deb ftp.fr.debian.org/debian/ etch main
deb-src ftp.fr.debian.org/debian/ etch main
A partir de là, tu fais un apt-get update, pour mettre à jour ta base. La machine ira mettre à jour les paquetages disponibles à partir des miroirs indiqués dans ton sources.list. Si tu ne l’as pas fait, tu n’auras rien.
Avant de faire un apt-get install, tu peux chercher ce qui t’intéresse avec un apt-cache show vsftpd. Personnellement, ça me donne ça:
Monstre:/home/vsftpd# apt-cache policy vsftpd
vsftpd:
Installé : 2.0.5-2
Candidat : 2.0.5-2
Table de version :
2.0.6-1.2 0
-992 ftp.fr.debian.org sid/main Packages
*** 2.0.5-2 0
1001 ftp.fr.debian.org etch/main Packages
1001 ftp.fr.debian.org stable/main Packages
100 /var/lib/dpkg/status
J’ai ce résultat parce que je n’ai pas simplement les sources de Etch, mais aussi de la Sid, de la Lenny, etc. Je manage le tout avec le fichier “préférences”, que tu découvriras plus tard. Toi, tu devrais trouver quelque chose comme :
500 ftp.fr.debian.org etch/main Packages
Un apt-cache show vsftpd te filera des informations sur le paquetage que tu veux installer.
Ensuite, les tuto relatifs à l’installation du vsftpd ne manquent pas sur la toile. Utilise tout ce que je t’indique ici pour approfondir (y a pas urgence, à priori).
Pour te dire, j’ai - grosso modo - moi-même appris tout seul à l’installer, mis à part une grosse aparté peuplée de déboires dûes au fait que j’avais confondu vsftpd et le sftp - ce qui est fréquent quand on connait mal l’outil et la différence entre le ftp, le sftp ou le ftps… Le FTP est le protocole de base, le sftp est le SSH FTP, tandis que le ftps est le FTP over SSL. Là aussi, chaque chose en son temps. Paramètre déjà un ftp “simple” avant de compliquer les choses (conseil d’ami).
Pas besoin d’être sorcier vaudou ou de sacrifier un poulet pour y arriver, donc (je plaisante).
Quand au fichier de conf, je te donne un exemple (que j’ai traduit):
#Le port d’écoute par défaut est le 21. Vous pouvez imposer un autre port si vous le souhaitez. La ligne listen_port n’apparait pas forcément dans le fichier de configuration initial. Ne vous inquiétez pas, il écoute bien le 21. Tapez l’option si vraiment vous voulez attribuer un autre numéro de port.
listen_port=21
#Nombre de clients simultanés:
max_clients = 5
#Spécifie le nombre max de clients autorises à se connecter depuis la même adresse source.
max_per_ip = 4
Vsftpd est en standalone. Le démarrage du serveur n’est donc géré par aucun superserveur de type intetd ou xinetd.
listen=YES
Même chose mais pour IPV4.
#listen_ipv6=YES
Accorder l’accès “anonyme”?
(La configuration par défaut est “oui”. Par sécurité, j’ai indiqué non.
anonymous_enable=NO
#A décommenter pour que les users locaux puissant se connecter au FTP.
local_enable=YES
#A décommenter si on veut que l’utilisateur puisses écrire dans un fichier/dossiers.
write_enable=YES
#Définir un umask. Par défaut, 077. Ici, 022, ce qui laisse de droits en 644 sur les fichiers. #Cela nous donnera, si nous faisons un ls –l, sur le fichier uploadé des droits en : -rw-r–r--.
local_umask=022
#Pour que l’utilisateur anonyme puisse faire du téléversement (upload) : décommenter.
anon_upload_enable=YES
#A décommenter si vous souhaitez que le user anonyme puisse créer de nouveau répertoires.
#anon_mkdir_write_enable=YES
#Active les messages de répertoires perçus par l’utilisateur distant.
dirmessage_enable=YES
#Active l’enregistrement des téléchargements/téléversements.
xferlog_enable=YES
#Pour être sûr que la connexion des données – au moins initialement – passera par le port 20
#(ftp-data). Si on choisit la solution des ports éphémères (Cf. plus loin), YES ne sera pas
#obligatoire.
connect_from_port_20=YES
#Si vous voulez, vous pouvez prendre des dispositions pour ce que les dossiers anonymes tél éversés aient pour propriétaire un utilisateur différent. Attention! L’utilisation “de la racine” pour les dossiers tél éversés n’est pas recommandée !
#chown_uploads=YES
#chown_username=whoever
#L’emplacement des fichiers logs (journaux évènementiels).
xferlog_file=/var/log/vsftpd.log
#Si vous le souhaitez, vous pouvez avoir votre journal évènementiel au format xferlog.
#xferlog_std_format=YES
#Vous pouvez changer la valeur du time out par défaut, en cas de session lente à l’ouverture.
#idle_session_timeout=600
Vous pouvez changer la valeur par défaut pour le time out de la connexion Data.
#data_connection_timeout=120
#Pour définir sur votre système un utilisateur unique que le serveur FTP peut utiliser comme
#un utilisateur totalement isolé et non privilégié.
#nopriv_user=ftpsecure
#Permettre au serveur la reconnaissance des requêtes asynchrones d’ABOR. Non
#recommandé pour la sécurité (le code est non-insignifiant).
#async_abor_enable=YES
#Par défaut, le serveur autorisera le mode ASCII. Mais en fait, il l’ignorera. Pour que le serveur gère réellement l’ASCII, décommentez les lignes suivantes.
Prenez garde car sur certains serveurs FTP, l’utilisation d’ASCII permet une attaque par déni de service (Attaque DOS), via la commande « SIZE /big/file » dans le mode ASCII. VSFTPD a « prévu » cette attaque et s’en est toujours protégé en reportant la taille du fichier brut.
ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#Configurer la bannière qui apparait sur le client, à la connexion de l’utilisateur distant.
ftpd_banner=Welcome to Christian FTP service!
#Vous pouvez spécifier un fichier d’adresses électroniques anonymes rejetées. Apparemment utile dans la lutte contre les attaques DoS.
#deny_email_enable=YES
#Spécifie l’emplacement du fichier banned_emails (dans /etc/vsftpd)
#banned_email_file=/etc/vsftpd.banned_emails
#Vous pouvez restreindre les utilisateurs locaux dans leur répertoire $HOME via ce fichier.
#Par défaut, est considéré comme étant sur NO.
#chroot_local_user=NO
#Vous pouvez spécifier une liste d’utilisateurs locaux à chrooter dans leur $HOME. Si
#chroot_local_user est sur YES, alors la liste des users figurant dans ce fichier ne sera pas
#chrootée par défaut. Seuls ceux qui n’y figureront pas seront chrootés.
chroot_list_enable=YES
#Spécifie l’emplacement du fichier /etc/vsftpd/chroot_list
chroot_list_file=/etc/vsftpd/chroot_list
(ou chroot_list_file=/etc/vsftpd.chroot_list)
#On refuse l’utilisation de la commande « ls –R »
ls_recurse_enable=YES
#Répertoire vide et non modifiable par les processus du serveur. Il est utilisé comme cellule
#chroot lorsque le serveur n’a pas besoin d’accéder au système de fichiers. /var/run/vsftpd est
#la valeur par défaut.
secure_chroot_dir=/var/run/vsftpd
#Définition du nom du fichier de configuration pour VSFTPD pour le module
#d’authentification PAM. (= « Pluggable Authentication Module », qui gère
L’authentification pour vsftpd - Module d’authentification pour Linux).
pam_service_name=vsftpd
#Cette option spécifie la localisation du certificate RSA utilise par SSL.
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
#Si vous mettez le serveur en mode passif, ces trois lignes suffiront :
pasv_enable=YES
pasv_min_port=55500
pasv_max_port=55510
#PS. Attention, car plus vous ouvrez de ports, ainsi, plus vous prenez de risques pour la sécurité. Si vous voulez vous en tenir au mode actif, il suffira de ne pas ajouter ses trois lignes et de préciser « actif » au niveau du client. En cas de changement, il faudra juste « reloader ».
#En plus (selon besoin).
#permettre au serveur d’utiliser les pam_service et donne le nom au service (si besoin)
pam_service_name=vsftpd
Fichier des users FTP. Sans ce fichier, VSFTPD se base de toute façon, sur les users locaux.
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
Chargement de la liste userlist_file
userlist_enable=YES
#Permettre au serveur d’utiliser les tcp_Wrapper
tcp_wrappers=YES
C’est un exemple… tout n’est pas à utiliser. Demande toi, d’abord ce que tu veux faire. L’exemple ci-dessus prends en compte une configuration en mode passif, par exemple. C’est ce que nous indique notamment les lignes :
pasv_enable=YES
pasv_min_port=55500
pasv_max_port=55510
Mais si ton Firewall l’accepte, un mode actif peut fonctionner (le mode actif, c’est simple : tu ne mets rien. Si ça ne marche pas : hop, passive mode).
A présent, lit bien tout ça… part d’abord sur une configuration en FTP sans sécurisation autre que le chroot (super simple à utiliser, contrairement à sftpd, par exemple, ou tu dois passer par la création d’un environnement utilisateur), et tu lance le tout avec un :
“/etc/init.d/vsftpd start”
(ou restart, selon si le serveur est déjà lancé ou non).
"/etc/init.d/vsftpd stop"
stoppera le serveur.
"/etc/init.d/vsftpd reload"
reloadera la configuration du serveur.
Pour vérifier si ça marche ou pas :
Utilise “netstat -nltp | grep 21” (tu verras ainsi si le port 21, du ftp, est bien ouvert, autrement dit si le serveur est en marche).
Utilise ftp localhost (ou “127.0.0.1”… pour voir, en local, si la connexion de l’utilisateur créé se fait comme tu l’entends).
Et ensuite, teste à partir d’une machine distante.
Déjà avec tout ça, tu as de la matière pour bosser, au moins.
(ton fichier de conf… il me parait lège).
Bonne chance,