Mise en place d' un serveur ftp avec vsftpd

Bonjour à tous. Je suis actuellement sur une Debian lenny, et j’ ai installé vsftpd. J’ ai suivi ce tuto très bien fait pour le débutant que je suis : linux.developpez.com/vsftpd/

Voila à quoi ressemble mon vsftpd.conf :

[code]# Example config file /etc/vsftpd.conf

The default compiled in settings are fairly paranoid. This sample file

loosens things up a bit, to make the ftp daemon more usable.

Please see vsftpd.conf.5 for all compiled in defaults.

READ THIS: This example file is NOT an exhaustive list of vsftpd options.

Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd’s

capabilities.

Run standalone? vsftpd can run either from an inetd or as a standalone

daemon started from an initscript.

listen=YES

Run standalone with IPv6?

Like the listen parameter, except vsftpd will listen on an IPv6 socket

instead of an IPv4 one. This parameter and the listen parameter are mutually

exclusive.

#listen_ipv6=YES

Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=no

Uncomment this to allow local users to log in.

local_enable=YES

Uncomment this to enable any form of FTP write command.

write_enable=YES

Default umask for local users is 077. You may wish to change this to 022,

if your users expect that (022 is used by most other ftpd’s)

#local_umask=022

Uncomment this to allow the anonymous FTP user to upload files. This only

has an effect if the above global write enable is activated. Also, you will

obviously need to create a directory writable by the FTP user.

#anon_upload_enable=YES

Uncomment this if you want the anonymous FTP user to be able to create

new directories.

#anon_mkdir_write_enable=YES

Activate directory messages - messages given to remote users when they

go into a certain directory.

dirmessage_enable=YES

Activate logging of uploads/downloads.

xferlog_enable=YES

Make sure PORT transfer connections originate from port 20 (ftp-data).

connect_from_port_20=YES

If you want, you can arrange for uploaded anonymous files to be owned by

a different user. Note! Using “root” for uploaded files is not

recommended!

#chown_uploads=YES
#chown_username=whoever

You may override where the log file goes if you like. The default is shown

below.

#xferlog_file=/var/log/vsftpd.log

If you want, you can have your log file in standard ftpd xferlog format

#xferlog_std_format=YES

You may change the default value for timing out an idle session.

#idle_session_timeout=600

You may change the default value for timing out a data connection.

#data_connection_timeout=120

It is recommended that you define on your system a unique user which the

ftp server can use as a totally isolated and unprivileged user.

#nopriv_user=ftpsecure

Enable this and the server will recognise asynchronous ABOR requests. Not

recommended for security (the code is non-trivial). Not enabling it,

however, may confuse older FTP clients.

#async_abor_enable=YES

By default the server will pretend to allow ASCII mode but in fact ignore

the request. Turn on the below options to have the server actually do ASCII

mangling on files when in ASCII mode.

Beware that on some FTP servers, ASCII support allows a denial of service

attack (DoS) via the command “SIZE /big/file” in ASCII mode. vsftpd

predicted this attack and has always been safe, reporting the size of the

raw file.

ASCII mangling is a horrible feature of the protocol.

#ascii_upload_enable=YES
#ascii_download_enable=YES

You may fully customise the login banner string:

ftpd_banner=Bienvenu sur mon serveur

You may specify a file of disallowed anonymous e-mail addresses. Apparently

useful for combatting certain DoS attacks.

#deny_email_enable=YES

(default follows)

#banned_email_file=/etc/vsftpd.banned_emails

You may restrict local users to their home directories. See the FAQ for

the possible risks in this before using chroot_local_user or

chroot_list_enable below.

chroot_local_user=NO

You may specify an explicit list of local users to chroot() to their home

directory. If chroot_local_user is YES, then this list becomes a list of

users to NOT chroot().

#chroot_list_enable=YES

(default follows)

#chroot_list_file=/etc/vsftpd.chroot_list

You may activate the “-R” option to the builtin ls. This is disabled by

default to avoid remote users being able to cause excessive I/O on large

sites. However, some broken FTP clients such as “ncftp” and “mirror” assume

the presence of the “-R” option, so there is a strong case for enabling it.

#ls_recurse_enable=YES

Debian customization

Some of vsftpd’s settings don’t fit the Debian filesystem layout by

default. These settings are more Debian-friendly.

This option should be the name of a directory which is empty. Also, the

directory should not be writable by the ftp user. This directory is used

as a secure chroot() jail at times vsftpd does not require filesystem

access.

secure_chroot_dir=/var/run/vsftpd

This string is the name of the PAM service vsftpd will use.

pam_service_name=vsftpd

This option specifies the location of the RSA certificate to use for SSL

encrypted connections.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem[/code]

Je lance un /etc/init.d/vsftpd start , j’ obtiens :

Dois je conclure que mon .conf est paramétré convenablement ? (pas forcément bien, mais sans erreur) ?

Voyez vous des choses qui ne vont pas ? Ca m’ étonnerait que j’ y sois arrivé du premier coup…
En fait je me pose plusieurs questions. Il m’ est arrivé il y a longtemps de me connecter sur le serveur FTP d’ un ami, il me semblait bien rentrer quelque part le nom du serveur, là je ne vois nulle part ou le mettre, sur proftpd il me semble que la ligne était “server name”.

D’ autre part, si j’ ai bien compris, un utilisateur qui a son compte sur mon serveur ne peut qu’ ecrire et lire sur son /home. Ce que je souhaite, c’ est que cela se fasse sur un répertoire unique, que tous ceux qui ont un compte sur mon serveur lisent et ecrivent sur ce même repertoire, faire comme un partage de fichiers, vous saisissez ? Je n’ arrive pas à voir ou faire cette modification (si toutefois c’ est possible).

Merci donc à ceux qui prendrons du temps pour m’ aider, au moins me mettre dans la bonne direction. Il y a
pas mal de choses qui m’ échappent.

Bonne soirée :

up !

Tu peux faire un “ps -ef | grep ftp” afin de voir si le serveur est bien actif.

Pour le nom du serveur regarde dans le fichier de configuration à cette endroit :

[code]# You may fully customise the login banner string:

ftpd_banner=Bienvenu sur mon serveur[/code]

Pour partager un répertoire deux solutions :
[ul][li]Soit tu fais un utilisateur système et tu donnes le login/pass à tous les gens qui veulent se partager des choses mais dans ce cas seuls ceux qui ont le login/pass peuvent y accèder[/li]
[li]Soit tu actives l’utilisateur anonymous qui ne requiert pas de mot de passe, dans ce cas là tout le monde a accèes au ftp.
Pour activer cela tu peux modifier à cette endroit (sachant qu’il y a d’autres options à changer éventuelle selon tes besoins) :

# Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=no[/li][/ul]

baaaaaah,

Un netstat -nltp | grep vsftpd ira bien pour savoir si le service tourne (sauf sans doute s’il est lancé par un superserveur).

Si tu n’es pat sûr, fait un :
ftp localhost 21
(tu as gardé le port 21 par défaut).
Tu verras si le ftp tourne bien.

tu peux aussi savoir ce qu’il en est rien qu’en regardant les logs de vsftpd, dans /var/log.

Prends soin de chrooter tes users, si tu t’ouvres sur l’extérieur. Et de crypter les données, aussi. ftp n’est pas sécurisé, aussi, il faut utiliser ssl (ftps), pour bien faire (si tu bosses avec vsftpd, donc, comme c’est le cas ici). Sache que par défaut, les mots de passe sont transmis en clair, avec le protocole ftp non secure. avec un tcpdump, n’importe qui pourra le renifler, si tu l’utilises sur l’extérieur (d’où l’intérert du ssl et du chroot).

Merci à tous pour votre coup de main.

[quote]Pour partager un répertoire deux solutions :

* Soit tu fais un utilisateur système et tu donnes le login/pass à tous les gens qui veulent se partager des choses mais dans ce cas seuls ceux qui ont le login/pass peuvent y accèder[/quote]

Bien vu, je n’ avais pas pensé à cette possiblilité.

Sinon j’ ai tapé les lignes de commandes que vous m’ avez suggéré :

ps -ef | grep ftp root 7119 6509 0 21:25 pts/0 00:00:00 grep ftp

Ca veut dire quoi, que cela fonctionne ?

ftp localhost 21 ftp: connect to address 127.0.0.1: Connection refused Trying 127.0.0.1... ftp: connect: Connection refused Aie, ça ce gate…

Et netstat -nltp | grep ftp ne donne rien.

Voila déjà pour ça, après il me reste d’ autres interrogations, mais commençons déjà par ça !

Bonne soirée !

Hello,

“Sinon j’ ai tapé les lignes de commandes que vous m’ avez suggéré :”

ps -ef | grep ftp root 7119 6509 0 21:25 pts/0 00:00:00 grep ftp

“Ca veut dire quoi, que cela fonctionne ?”

Nan. Ca veu die que tu as tapé “ps -ef | grep ftp”…

Tiens, regarde, moi j’ai ça :
Monstre:/home/vsftpd# ps aux | grep vsftpd
root 12462 0.0 0.0 7232 836 pts/0 S+ 00:27 0:00 grep vsftpd
Monstre:/home/vsftpd# ps aux | grep inetd
root 3487 0.0 0.0 9108 676 ? Ss Oct06 0:00 /usr/sbin/inetd
root 12464 0.0 0.0 7236 844 pts/0 S+ 00:27 0:00 grep inetd

Mais j’obtiens le même résultat parce que je ne suis pas en standalone: Mon serveur démarre avec inetd. Dans le cas contraire, vsftpd, j’aurais deux lignes, come avec inetd.
Donc, information numéro 1 : es-tu en standalone? or not?

ftp localhost 21 ftp: connect to address 127.0.0.1: Connection refused Trying 127.0.0.1... ftp: connect: Connection refused Aie, ça ce gate…

Et netstat -nltp | grep ftp ne donne rien.

il faut faire un grep sur “vsftpd”, pas sur ftp : c’est le serveur. ftp est le protocole (ftp : file transfert protocol), le service, si tu préfères. Sur ftp, ça n’a pas de sens :slightly_smiling:. vsftpd est le serveur qui s’appuie sur le service ftp pour fonctionner.

Mais tkt, je me suis posé pratiquement la même question, la première fois, avec sftp. Ce dernier s’appuie sur ssh et moi, évidemment, je ne comprenais pas pourquoi je ne voyais pas de “sftpd” (qui n’existe pas, en plus, puisque c’est par sshd que fonctionne le ssh ftp) dans les services netstat… lol. bref, si tu doutes, balance le résultat de tout netstat -nltp… ce sera aussi simple :slightly_smiling:

Enfin, “ftp” étant une chaine de caractères inclus dans “vsftpd” tu devrais avoir les lignes qui montrent que le serveur est up. Ce n’est pas le cas : il ne tourne pas. cqfd.

Si t’es pas sûr, tu fais un /etc/init.d/vsftpd restart. Si le serveur ne tourne pas : il va te dire qu’il faut déjà starter avant de penser à restarter lol.

Je vais regarder ton .conf demain.

Tel quel, il est prévu pour être ouvert sur le net, ton ftp, j’imagine?

Bonne soirée à toi!

Normalement de base vsftpd est standalone donc il fonctionne dans inetd.
Il existe deux formes de ftp sécurisé ftps et sftp, le premier est géré par le serveur ftp et le deuxième est géré par ssh.

Ton serveur ftp ne tourne visiblement pas, donc essaie de le redémarrer et s’il ne fonctionne pas regarde dans les logs si tu vois une informations pouvant te mettre sur la piste.
Il est possible que le soucis vient d’une erreur de syntaxe dans le fichier de configuration.

Merci à tous pour vos réponses.

[quote]Donc, information numéro 1 : es-tu en standalone? or not?

[/quote]

Oui, je suis en Standalone

Netstat -nltp donne :

Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN 2841/inetd tcp 0 0 0.0.0.0:38437 0.0.0.0:* LISTEN 2830/rpc.mountd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2010/portmap tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 2841/inetd tcp 0 0 0.0.0.0:53589 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2476/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2747/exim4 tcp 0 0 0.0.0.0:43323 0.0.0.0:* LISTEN 2024/rpc.statd tcp6 0 0 :::139 :::* LISTEN 2855/smbd tcp6 0 0 ::1:631 :::* LISTEN 2476/cupsd tcp6 0 0 :::445 :::* LISTEN 2855/smbd |

J’ ai bien lancé mon serveur avec /etc/init.d/vsftpd start

J’ ai lancé un restart au cas ou et obtenu ce résulat :

Restarting FTP server: vsftpdNo /usr/sbin/vsftpd found running; none killed. .

Si j’ ai bien compris, il tourne déjà c’ est bien ça ?

[quote]Tel quel, il est prévu pour être ouvert sur le net, ton ftp, j’imagine?
[/quote]

Oui, enfin il est sur mon portable, c’ est juste pour que l’ on me transfère des photos, et surtout pour apprendre à créer ce type de serveur.

J’ ai regardé dans var/log/syslog au moment d’ un etc/init.d/vsftpd restart je n’ ai rien vu de particulier : Oct 11 10:17:01 casper-laptop /USR/SBIN/CRON[4261]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly).

Oui puis je trouver quelque chose de plus précis, j’ ai regardé un peu partout mais je n’ ai rien trouvé de concret

Je vais regarder aussi tout à l’ heure voir si une erreur de syntaxe se balade dans ma configuration.

Bonne journée !

Pour éliminer le fait que le fichier de configuration soit en cause je t’invite à remettre celui d’origine.
Si tu ne l’as je peux toujours t’en passer un mais je te conseille toujours une version antérieure des fichiers de configuration.
Comme cela en cas de soucis tu reviens sur un fichier sain et tu élimines le fait qu’il soit le maillon faible :slightly_smiling:

[quote=“Niloo”]Pour éliminer le fait que le fichier de configuration soit en cause je t’invite à remettre celui d’origine.
Si tu ne l’as je peux toujours t’en passer un mais je te conseille toujours une version antérieure des fichiers de configuration.
Comme cela en cas de soucis tu reviens sur un fichier sain et tu élimines le fait qu’il soit le maillon faible :slightly_smiling:[/quote]

Oui, je veux bien que tu m’ envois un en mp, je n’ ai pas gardé la version originale dans un coin, je le ferai à l’ avenir. Mais je n’ ai rien changé d’ autres que des “yes” ou “no”

Peut etre ai je aussi omis de remplir une rubrique, ou en décomenter une… Peut etre que la doc que j’ ai suivie (voir mon post d’ origine) était incomplète…

A+

Hello,

Bien, maintenant que je suis réveillé…

Activate logging of uploads/downloads.

xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log

If you want, you can have your log file in standard ftpd xferlog format

#xferlog_std_format=YES
Déjà, tu n’as activé les logs, mais pas l’endroit où le serveur doit les trouver… tu dois décommenter cette ligne.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
tu a decommenté cette ligne : le serveur va chercher le fichier .pem qu’en principe tu as crée pour configurer le FTPS file transfert protocol over SSL.

Mais as-tu vraiment mis en place cette configuration? Vu que tu es en train d’installer son serveur je suppose que non. A mon avis procéde par étape pour débugger le problème. Un serveur vsftp qui ne démarre pas, par expéricence, c’est un problème de conf. Toi, tu es en train de le mettre en place et tu ne l’as pas ouvert à l’extérieur. Pas de risque côté sécurité, pour l’instant. Donc commente cette ligne et restart, pour voir. Je ne serai pas étonné que le problème vienne de là.
De plus, ce que les tuto oublie presque toujours de dire, c’est qu’il manque une ligne!!!

This option specifies the location of the RSA certificate to use for SSL

encrypted connections.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem

Il faut deux lignes : Si tu ne mets pas la ligne “private”, ça plante. je te le dis par expérience. :slightly_smiling:

secure_chroot_dir=/var/run/vsftpd
Pour l’anecdote : cette ligne indique ou trouver le PID. En gros, tu “fixes” le pid par cette ligne. Un pidof te renverra le numero du processus, de cette façon :
Monstre:/etc# pidof vsftp
Monstre:/etc# pidof inetd
26986

Moi je n’ai rien car le processus inetd a pris en charge le lancement du serveur. Mon répertoire run/vsftpd est vide (ça te donne une petite idée de la façon dont fonctionne la prise en main d’un superserveur).

This string is the name of the PAM service vsftpd will use.

pam_service_name=vsftpd
Pour vérification uniquement (car je ne pense pas que le pb vienne de là), fait un cat /etc/pam.d/vsftpd.
Tu n’as pas non plus activé le chroot. Mais ça n’est pas le problème. Et tu pourras le faire ensuite. Laisse comme ça, le temps de trouver ce qui ne va pas.

Pour ce qui est du netstat, tu dois avoir une ligne contenant le numéro du port 21.

Salut et merci pour le temps que tu me consacres.

[quote]# This option specifies the location of the RSA certificate to use for SSL

encrypted connections.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem

Il faut deux lignes : Si tu ne mets pas la ligne “private”, ça plante. je te le dis par expérience. :slightly_smiling:
[/quote]

Ok, mais vu que la ligne précédente je l’ ai commenté, je dois la commenter aussi dans un premier temps ?

Ce qui donne :

[code] cat /etc/pam.d/vsftpd

Standard behaviour for ftpd(8).

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

Note: vsftpd handles anonymous logins on its own. Do not enable

pam_ftp.so.

Standard blurb.

@include common-account
@include common-session

@include common-auth
auth required pam_shells.so
[/code]

[quote]Pour ce qui est du netstat, tu dois avoir une ligne contenant le numéro du port 21.
Hello,

Bien, maintenant que je suis réveillé…

Activate logging of uploads/downloads.

xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log

If you want, you can have your log file in standard ftpd xferlog format

#xferlog_std_format=YES
Déjà, tu n’as activé les logs, mais pas l’endroit où le serveur doit les trouver… tu dois décommenter cette ligne.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
tu a decommenté cette ligne : le serveur va chercher le fichier .pem qu’en principe tu as crée pour configurer le FTPS file transfert protocol over SSL.

Mais as-tu vraiment mis en place cette configuration? Vu que tu es en train d’installer son serveur je suppose que non. A mon avis procéde par étape pour débugger le problème. Un serveur vsftp qui ne démarre pas, par expéricence, c’est un problème de conf. Toi, tu es en train de le mettre en place et tu ne l’as pas ouvert à l’extérieur. Pas de risque côté sécurité, pour l’instant. Donc commente cette ligne et restart, pour voir. Je ne serai pas étonné que le problème vienne de là.
De plus, ce que les tuto oublie presque toujours de dire, c’est qu’il manque une ligne!!!

This option specifies the location of the RSA certificate to use for SSL

encrypted connections.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem

Il faut deux lignes : Si tu ne mets pas la ligne “private”, ça plante. je te le dis par expérience. :slightly_smiling:

secure_chroot_dir=/var/run/vsftpd
Pour l’anecdote : cette ligne indique ou trouver le PID. En gros, tu “fixes” le pid par cette ligne. Un pidof te renverra le numero du processus, de cette façon :
Monstre:/etc# pidof vsftp
Monstre:/etc# pidof inetd
26986

Moi je n’ai rien car le processus inetd a pris en charge le lancement du serveur. Mon répertoire run/vsftpd est vide (ça te donne une petite idée de la façon dont fonctionne la prise en main d’un superserveur).

This string is the name of the PAM service vsftpd will use.

pam_service_name=vsftpd
Pour vérification uniquement (car je ne pense pas que le pb vienne de là), fait un cat /etc/pam.d/vsftpd.
Tu n’as pas non plus activé le chroot. Mais ça n’est pas le problème. Et tu pourras le faire ensuite. Laisse comme ça, le temps de trouver ce qui ne va pas.

Pour ce qui est du netstat, tu dois avoir une ligne contenant le numéro du port 21.
[/quote]

Malheureusement non :

netstat -nltp Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp 0 0 0.0.0.0:53504 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN 2882/inetd tcp 0 0 0.0.0.0:57510 0.0.0.0:* LISTEN 2871/rpc.mountd tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2896/smbd tcp 0 0 0.0.0.0:55053 0.0.0.0:* LISTEN 2067/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2053/portmap tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 2882/inetd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2517/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2788/exim4 tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2896/smbd tcp6 0 0 ::1:631 :::* LISTEN 2517/cupsd

(J’ ai bien sur relancé mon réseau avec les modifs)

[quote]rsa_cert_file=/etc/ssl/certs/vsftpd.pem
tu a decommenté cette ligne : le serveur va chercher le fichier .pem qu’en principe tu as crée pour configurer le FTPS file transfert protocol over SSL.

Mais as-tu vraiment mis en place cette configuration? [/quote]

Euh… Non ! Je ne savais pas qu’ il fallait passer par là aussi.

Je te poste mon nouveau fichier modifié, avec la ligne commentée (celle ou j’ avais un doute et dont je parle au début de ce message) :

[code]# Example config file /etc/vsftpd.conf

The default compiled in settings are fairly paranoid. This sample file

loosens things up a bit, to make the ftp daemon more usable.

Please see vsftpd.conf.5 for all compiled in defaults.

READ THIS: This example file is NOT an exhaustive list of vsftpd options.

Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd’s

capabilities.

Run standalone? vsftpd can run either from an inetd or as a standalone

daemon started from an initscript.

listen=YES

Run standalone with IPv6?

Like the listen parameter, except vsftpd will listen on an IPv6 socket

instead of an IPv4 one. This parameter and the listen parameter are mutually

exclusive.

#listen_ipv6=YES

Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=no

Uncomment this to allow local users to log in.

local_enable=YES

Uncomment this to enable any form of FTP write command.

write_enable=YES

Default umask for local users is 077. You may wish to change this to 022,

if your users expect that (022 is used by most other ftpd’s)

#local_umask=022

Uncomment this to allow the anonymous FTP user to upload files. This only

has an effect if the above global write enable is activated. Also, you will

obviously need to create a directory writable by the FTP user.

#anon_upload_enable=YES

Uncomment this if you want the anonymous FTP user to be able to create

new directories.

#anon_mkdir_write_enable=YES

Activate directory messages - messages given to remote users when they

go into a certain directory.

dirmessage_enable=YES

Activate logging of uploads/downloads.

xferlog_enable=YES

Make sure PORT transfer connections originate from port 20 (ftp-data).

connect_from_port_20=YES

If you want, you can arrange for uploaded anonymous files to be owned by

a different user. Note! Using “root” for uploaded files is not

recommended!

#chown_uploads=YES
#chown_username=whoever

You may override where the log file goes if you like. The default is shown

below.

xferlog_file=/var/log/vsftpd.log

If you want, you can have your log file in standard ftpd xferlog format

xferlog_std_format=YES

You may change the default value for timing out an idle session.

#idle_session_timeout=600

You may change the default value for timing out a data connection.

#data_connection_timeout=120

It is recommended that you define on your system a unique user which the

ftp server can use as a totally isolated and unprivileged user.

#nopriv_user=ftpsecure

Enable this and the server will recognise asynchronous ABOR requests. Not

recommended for security (the code is non-trivial). Not enabling it,

however, may confuse older FTP clients.

#async_abor_enable=YES

By default the server will pretend to allow ASCII mode but in fact ignore

the request. Turn on the below options to have the server actually do ASCII

mangling on files when in ASCII mode.

Beware that on some FTP servers, ASCII support allows a denial of service

attack (DoS) via the command “SIZE /big/file” in ASCII mode. vsftpd

predicted this attack and has always been safe, reporting the size of the

raw file.

ASCII mangling is a horrible feature of the protocol.

#ascii_upload_enable=YES
#ascii_download_enable=YES

You may fully customise the login banner string:

ftpd_banner=Bienvenu sur mon serveur

You may specify a file of disallowed anonymous e-mail addresses. Apparently

useful for combatting certain DoS attacks.

#deny_email_enable=YES

(default follows)

#banned_email_file=/etc/vsftpd.banned_emails

You may restrict local users to their home directories. See the FAQ for

the possible risks in this before using chroot_local_user or

chroot_list_enable below.

chroot_local_user=NO

You may specify an explicit list of local users to chroot() to their home

directory. If chroot_local_user is YES, then this list becomes a list of

users to NOT chroot().

#chroot_list_enable=YES

(default follows)

#chroot_list_file=/etc/vsftpd.chroot_list

You may activate the “-R” option to the builtin ls. This is disabled by

default to avoid remote users being able to cause excessive I/O on large

sites. However, some broken FTP clients such as “ncftp” and “mirror” assume

the presence of the “-R” option, so there is a strong case for enabling it.

#ls_recurse_enable=YES

Debian customization

Some of vsftpd’s settings don’t fit the Debian filesystem layout by

default. These settings are more Debian-friendly.

This option should be the name of a directory which is empty. Also, the

directory should not be writable by the ftp user. This directory is used

as a secure chroot() jail at times vsftpd does not require filesystem

access.

secure_chroot_dir=/var/run/vsftpd

This string is the name of the PAM service vsftpd will use.

pam_service_name=vsftpd

This option specifies the location of the RSA certificate to use for SSL

encrypted connections.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem

rsa_private_key_file=/etc/ssl/certs/vsftpd.pem

[/code]

Bon pour le moment cela ne fonctionne toujours pas :

netstat -nltp | grep vsftpd Ne donne rien, par contre quand le lance vsftpd :

/etc/init.d/vsftpd start Starting FTP server: vsftpd.

Et si je veux le stopper :

Stopping FTP server: vsftpdNo /usr/sbin/vsftpd found running; none killed. .

Mais j’ avais déjà ces messages d’ erreurs avant d’ avoir fait mes modifications.

Merci pour ton aide, bon Dimanche !

Comme je disais plus tôt : décommente cette ligne :

xferlog_file=/var/log/vsftpd.log

“Ok, mais vu que la ligne précédente je l’ ai commenté, je dois la commenter aussi dans un premier temps ?”

Oui. Et pour ce qui est de ssl, tu as un tuto pas mal fait, chez ubuntu. Y a pas la seconde ligne non plus lol mais ce point mis à part, il est plutôt bien fait (si tu veux le trouver, google un coup).

Pour le moment t’occupe pas de ftps… faut déjà que le reste fonctionne avant d’installer cette option.

Pam est ok.

#local_umask=022
Tu peux aussi la décommenter…

chroot_local_user=NO
Tu l’as décommenté : seuls ceux qui figurent dans le fichier chroot_list peuvent se loguer en ftp. Or :
#chroot_list_file=/etc/vsftpd.chroot_list
Tu as commenté l’endroit où se trouve ladite liste.
Déjà… Le fichier existe, à l’emplacement en question? (attention le fichier doit bien se nommer, dans ce cas, “vsftpd.chroot_list”). Et soit dit en passant, tu peux aussi créer, à la place, un fichier chroot_list dans un répertoire vsftpd que tu crééras. Si tu fais ça, il faudra que cette ligne soit : chroot_list=/etc/vsftpd/chroot.list (à la place de la ligne actuelle).
Ce n’est pas un problème : c’est juste un choix.

J’ai passé un bon week end, merci :slightly_smiling:

Après quoi, il faut bien sûr alimenter le fichier avec les login des users. Un login par ligne (avec un passage à la ligne - je le dis car apparemment, cela a provoqué des bugs chez certains, si on ne le fait pas).

Ensuite recommence (/etc/init.d/vsftpd start et netstat etc…).

Merci pour ton message. Je ne suis pas sous Debian à cet instant, je reboot après manger et je teste tout ça.

A+

Bon, me revoici sous Débian :

[quote]Comme je disais plus tôt : décommente cette ligne :

xferlog_file=/var/log/vsftpd.log

[/quote]

Oups, désolé !

[quote]chroot_local_user=NO
Tu as commenté l’endroit où se trouve ladite liste.
Déjà… Le fichier existe, à l’emplacement en question? (attention le fichier doit bien se nommer, dans ce cas, “vsftpd.chroot_list”). Et soit dit en passant, tu peux aussi créer, à la place, un fichier chroot_list dans un répertoire vsftpd que tu crééras. Si tu fais ça, il faudra que cette ligne soit : chroot_list=/etc/vsftpd/chroot.list (à la place de la ligne actuelle).
Ce n’est pas un problème : c’est juste un choix.
[/quote]

Donc, j’ avais décommenté une ligne qui renvoyait vers une ligne commentée c’ est bien ça ? Pas très logique en effet de ma part, donc pour faire simple, en mettant le moins d’ option possible dans un premier temps, si je commentais cette ligne chroot_local_user=NO

Voici mon nouveau fichier une fois modifié :

[code]# Example config file /etc/vsftpd.conf

The default compiled in settings are fairly paranoid. This sample file

loosens things up a bit, to make the ftp daemon more usable.

Please see vsftpd.conf.5 for all compiled in defaults.

READ THIS: This example file is NOT an exhaustive list of vsftpd options.

Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd’s

capabilities.

Run standalone? vsftpd can run either from an inetd or as a standalone

daemon started from an initscript.

listen=YES

Run standalone with IPv6?

Like the listen parameter, except vsftpd will listen on an IPv6 socket

instead of an IPv4 one. This parameter and the listen parameter are mutually

exclusive.

#listen_ipv6=YES

Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=no

Uncomment this to allow local users to log in.

local_enable=YES

Uncomment this to enable any form of FTP write command.

write_enable=YES

Default umask for local users is 077. You may wish to change this to 022,

if your users expect that (022 is used by most other ftpd’s)

local_umask=022

Uncomment this to allow the anonymous FTP user to upload files. This only

has an effect if the above global write enable is activated. Also, you will

obviously need to create a directory writable by the FTP user.

#anon_upload_enable=YES

Uncomment this if you want the anonymous FTP user to be able to create

new directories.

#anon_mkdir_write_enable=YES

Activate directory messages - messages given to remote users when they

go into a certain directory.

dirmessage_enable=YES

Activate logging of uploads/downloads.

xferlog_enable=YES

Make sure PORT transfer connections originate from port 20 (ftp-data).

connect_from_port_20=YES

If you want, you can arrange for uploaded anonymous files to be owned by

a different user. Note! Using “root” for uploaded files is not

recommended!

#chown_uploads=YES
#chown_username=whoever

You may override where the log file goes if you like. The default is shown

below.

xferlog_file=/var/log/vsftpd.log

If you want, you can have your log file in standard ftpd xferlog format

xferlog_std_format=YES

You may change the default value for timing out an idle session.

#idle_session_timeout=600

You may change the default value for timing out a data connection.

#data_connection_timeout=120

It is recommended that you define on your system a unique user which the

ftp server can use as a totally isolated and unprivileged user.

#nopriv_user=ftpsecure

Enable this and the server will recognise asynchronous ABOR requests. Not

recommended for security (the code is non-trivial). Not enabling it,

however, may confuse older FTP clients.

#async_abor_enable=YES

By default the server will pretend to allow ASCII mode but in fact ignore

the request. Turn on the below options to have the server actually do ASCII

mangling on files when in ASCII mode.

Beware that on some FTP servers, ASCII support allows a denial of service

attack (DoS) via the command “SIZE /big/file” in ASCII mode. vsftpd

predicted this attack and has always been safe, reporting the size of the

raw file.

ASCII mangling is a horrible feature of the protocol.

#ascii_upload_enable=YES
#ascii_download_enable=YES

You may fully customise the login banner string:

ftpd_banner=Bienvenu sur mon serveur

You may specify a file of disallowed anonymous e-mail addresses. Apparently

useful for combatting certain DoS attacks.

#deny_email_enable=YES

(default follows)

#banned_email_file=/etc/vsftpd.banned_emails

You may restrict local users to their home directories. See the FAQ for

the possible risks in this before using chroot_local_user or

chroot_list_enable below.

chroot_local_user=NO

You may specify an explicit list of local users to chroot() to their home

directory. If chroot_local_user is YES, then this list becomes a list of

users to NOT chroot().

#chroot_list_enable=YES

(default follows)

#chroot_list_file=/etc/vsftpd.chroot_list

You may activate the “-R” option to the builtin ls. This is disabled by

default to avoid remote users being able to cause excessive I/O on large

sites. However, some broken FTP clients such as “ncftp” and “mirror” assume

the presence of the “-R” option, so there is a strong case for enabling it.

#ls_recurse_enable=YES

Debian customization

Some of vsftpd’s settings don’t fit the Debian filesystem layout by

default. These settings are more Debian-friendly.

This option should be the name of a directory which is empty. Also, the

directory should not be writable by the ftp user. This directory is used

as a secure chroot() jail at times vsftpd does not require filesystem

access.

secure_chroot_dir=/var/run/vsftpd

This string is the name of the PAM service vsftpd will use.

pam_service_name=vsftpd

This option specifies the location of the RSA certificate to use for SSL

encrypted connections.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem

rsa_private_key_file=/etc/ssl/certs/vsftpd.pem

[/code]

Ca ne fonctionne toujours pas malheureusement :

netstat -nltp Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN 2884/inetd tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2898/smbd tcp 0 0 0.0.0.0:46731 0.0.0.0:* LISTEN 2873/rpc.mountd tcp 0 0 0.0.0.0:46190 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2039/portmap tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 2884/inetd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2519/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2790/exim4 tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2898/smbd tcp 0 0 0.0.0.0:43231 0.0.0.0:* LISTEN 2069/rpc.statd tcp6 0 0 ::1:631 :::* LISTEN 2519/cupsd

ps aux | grep vsftpd root 6845 0.0 0.0 3144 788 pts/1 S+ 22:15 0:00 grep vsftpd

ftp localhost 21 ftp: connect to address 127.0.0.1: Connection refused Trying 127.0.0.1... ftp: connect: Connection refused

Et enfin, pour un reload ou restart, j’ obtiens :

[quote]reload
Reloading vsftpd configuration files
No /usr/sbin/vsftpd found running; none killed.
[/quote]

Merci encore pour ton aide. Bonne nuit, bon début de semaine !

Lol

Faut faire un “start”, pas un restart… Tu ne peux pas restarter quelque chose qui n’est pas starter, n’est ce pas? Ensuite tu vérifies avec netstat. Si le service n’apparait pas, inutile de faire un ftp localhost : cela ne marchera pas (au moins tu sais utliser “localhost”… c’est vachement utile pour débugger).

Essaie déjà comme ça dans un premier temps.

Mais à dire vrai, plutôt que commenter chroot_local_user=NO, je préférerai que tu le décommentes, ainsi que la ligne #chroot_list_file=/etc/vsftpd.chroot_list.

Je m’explique, ces valeurs, mêmes commentées, ont une valeur YES ou NO par défaut, souvent. Si tu commentes la lignes, je ne sais pas quelle sera cette même valeur, pour vsftpd (sans doute NO, justement… Auquel cas, le commenter ne sert à rien). YES, NO ou simplement “pas de chroot” dès que la ligne est commenté?.. Chaipas (ou du moins je n’ai pas le temps de chercher. Si je n’étais pas au taff, je ferai la vérification). A l’inverse, positionné clairement sur YES ou NO, au moins on sait ce qu’on fait et ou on est… Donc vaut mieux décommenter, à mon avis, créer le fichier vsftpd.chroot_list, et mettre ton nom de user ftp dedans.

Bon, c’est juste un avis… Tu n’es pas obligé de suivre, là-dessus. A toi de voir.

Salut à toi et merci d’ être encore là à me supporter !

Je m’ étais mal exprimé ! J’ avais fait un start, c’ est après coup un reload et restart (donc après start qui m’ avait fait ces messages d’ erreur.

Non, mais je vais m’ y plonger ce soir après manger.

[quote]Mais à dire vrai, plutôt que commenter chroot_local_user=NO, je préférerai que tu le décommentes, ainsi que la ligne #chroot_list_file=/etc/vsftpd.chroot_list.

Je m’explique, ces valeurs, mêmes commentées, ont une valeur YES ou NO par défaut, souvent. Si tu commentes la lignes, je ne sais pas quelle sera cette même valeur, pour vsftpd (sans doute NO, justement… Auquel cas, le commenter ne sert à rien). YES, NO ou simplement “pas de chroot” dès que la ligne est commenté?.. Chaipas (ou du moins je n’ai pas le temps de chercher. Si je n’étais pas au taff, je ferai la vérification). A l’inverse, positionné clairement sur YES ou NO, au moins on sait ce qu’on fait et ou on est… Donc vaut mieux décommenter, à mon avis, créer le fichier vsftpd.chroot_list, et mettre ton nom de user ftp dedans.

Bon, c’est juste un avis… Tu n’es pas obligé de suivre, là-dessus. A toi de voir.[/quote]

Non t’ inquiète, je t’ écoute, c’ était juste une idée.

J’ ai donc fait un mkdir /etc/vsftpd.chroot_list Pour créer ce fameux fichier, c’ est bien ça ? Par contre comment ajouter des nouveaux utilisateurs, j’ ai fait un mkdir /etc/vsftpd.chroot_list/monidentifiant c’ est bien comme ça qu’ il faut procéder ?

Sinon j’ ai toujours les mêmes messages d’ erreurs, Il n’ a pas l’ air de vouloir démarrer :

netstat -nltp Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:39554 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:49219 0.0.0.0:* LISTEN 2070/rpc.statd tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN 2889/inetd tcp 0 0 0.0.0.0:39366 0.0.0.0:* LISTEN 2878/rpc.mountd tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2903/smbd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2058/portmap tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 2889/inetd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2524/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2795/exim4 tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2903/smbd tcp6 0 0 :::80 :::* LISTEN 3250/apache2 tcp6 0 0 ::1:631 :::* LISTEN 2524/cupsd

ftp localhost 21 ftp: connect to address 127.0.0.1: Connection refused Trying 127.0.0.1... ftp: connect: Connection refused

ps aux | grep vsftpd root 5868 0.0 0.0 3144 788 pts/1 S+ 22:32 0:00 grep vsftpd

Bonne soirée !

Non, mais je vais m’ y plonger ce soir après manger.
[/quote]

Ben Localhost, c’est juste en “local”. Passez par là te permet de savoir quand il y a un problème, s’il vient du côté réseau ou côté conf.

[quote]Mais à dire vrai, plutôt que commenter chroot_local_user=NO, je préférerai que tu le décommentes, ainsi que la ligne #chroot_list_file=/etc/vsftpd.chroot_list.

Je m’explique, ces valeurs, mêmes commentées, ont une valeur YES ou NO par défaut, souvent. Si tu commentes la lignes, je ne sais pas quelle sera cette même valeur, pour vsftpd (sans doute NO, justement… Auquel cas, le commenter ne sert à rien). YES, NO ou simplement “pas de chroot” dès que la ligne est commenté?.. Chaipas (ou du moins je n’ai pas le temps de chercher. Si je n’étais pas au taff, je ferai la vérification). A l’inverse, positionné clairement sur YES ou NO, au moins on sait ce qu’on fait et ou on est… Donc vaut mieux décommenter, à mon avis, créer le fichier vsftpd.chroot_list, et mettre ton nom de user ftp dedans.

Bon, c’est juste un avis… Tu n’es pas obligé de suivre, là-dessus. A toi de voir.[/quote]

Non t’ inquiète, je t’ écoute, c’ était juste une idée.

J’ ai donc fait un mkdir /etc/vsftpd.chroot_list Pour créer ce fameux fichier, c’ est bien ça ? Par contre comment ajouter des nouveaux utilisateurs, j’ ai fait un mkdir /etc/vsftpd.chroot_list/monidentifiant c’ est bien comme ça qu’ il faut procéder ?
[/quote]

Nan nan! vsftpd.chroot_list est un fichier, pas un répertoire. :slightly_smiling:. Donc soit “touch”, soit tu entres direct dans vim, tu mets ton user dans le fichier (tu écris le login dedans, quoi), et tu fermes en escape “:x vsftpd.chroot_list”

Déjà on va configurer ce truc là. On verra le reste ensuite.

Salut !

[quote]Nan nan! vsftpd.chroot_list est un fichier, pas un répertoire. :slightly_smiling:. Donc soit “touch”, soit tu entres direct dans vim, tu mets ton user dans le fichier (tu écris le login dedans, quoi), et tu fermes en escape “:x vsftpd.chroot_list”
[/quote]

Justement c’ est ça que je ne comprends pas. J’ avais essayé non pas avec vim, mais avec gedit (mais avec vim c’ est le même résultat) : /etc/vsftpd.chroot_list est un répertoire (dixit mon éditeur de texte) .

J’ ai surement oublié quelque chose, désolé !

ok, mais c’est normal, tu as fait un mkdir (contraction de “make directory” - créer un répertoire). lol. Pour créer un fichier vide : commande “touch” ou directement vim, puis “:x” "ou “:w” si tu ne quittes pas le fichier.

ok supprime ton… répertoire vsftpd.chroot_list (rmdir ou rm -r s’il te casse les roub…). Fais à ma façon, dans ce cas :

-mkdir /etc/vsftpd (ou mkdir vsftpd si tu es déjà dans /etc quand tu lances ta commande).
-cd /etc/vsftpd (pour rentrer dans le répertoire. Ou… cd vsftpd, si tu es déjà dans /etc)
-vim (puis tu appuies sur “i” pour “integer” : afin de pouvoir écrire dans l’éditeur de texte). tu y mets le login de ton user. Tu appuies sur entrée. Puis sur appuie sur esc et tu tapes “:x chroot_list” (ce faisant tu enregistres “sous”, en quelque sorte, et tu “quittes” vim en même temps).
-dans le fichier /etc/vsftpd.conf, cette fois, tu rouvres le fichier de configuration et tu modifies la ligne #chroot_list_file=/etc/vsftpd.chroot_list, en la décommentant (bien sûr), et en mettant à la place #chroot_list_file=/etc/vsftpd/chroot_list.

Tout ça en root, bien sûr, et de façon à ce que root ait au moins un droit de lecture, d’ecriture et d’exécution sur le répertoire, et un droit de lecture et d’écriture sur le fichier (c’est le minimum. s’il y a plus de droit, why not, pour l’instant). Si c’est le cas par défaut, pas de pb.

En fait, ça ne change rien de choisir de faire ainsi plutôt que créer un fichier vsftpd.chroot_list dans /etc, mais je préfère avoir - en dehors de vsftpd.conf - mes fichiers de configuration de vsftpd dans un répertoire, plutôt qu’à l’air libre dans /etc. Question de goûts, disons…
:slightly_smiling:

Tu vas y arriver… La patience est la maman de la vertu, en info (de toute façon, c’est soit la patience, soit tu perds tes cheveux…).