# [vsftpd] config anonymous readonly

## novazur

Bonjour,

Des heures que je cherche à faire tourner un serveur vsftpd en anonyme et readonly pur, mais rien à faire.

Si quelqu'un avait une config toute prête sous la main, je suis preneur avec les indications concernant le user à créer, l'emplacement du répertoire pour le ftp (c'est nécessairement le home du user ?), les droits sur ce répertoire, etc...

Je veux juste pouvoir mettre des fichiers à disposition et qu'ils soient récupérables sans aucune identification, sans toutefois que les connectés ne puissent faire autre chose que télécharger ces fichiers, et ceci avec un maximum de sécurité pour le serveur.

NB : je ne peux pas changer de soft serveur.

NB2 : activité légale, les fichiers sont des softs sous GPL.

Grand merci d'avance.

----------

## novazur

Bon ben j'ai beau chercher, faire toute sortes d'essais, rien à faire, si ce n'est que j'ai conclu une chose :

C'est le fait de changer le port par listen_port qui fait dérailler la chose.

Si je remet ce serveur sur le port par défaut (21), tout fonctionne comme je le souhaite. Mais je ne peux pas le laisser sur ce port puisque j'ai déjà un autre serveur ftp qui tourne dessus, et je ne veux pas lier les 2.

config actuelle :

```
listen=YES

listen_port=221

anonymous_enable=YES

local_enable=NO

write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd/xferlog-anon.log

xferlog_std_format=NO

nopriv_user=ftp

ftpd_banner=Welcome to speedbox.fr FTP service.

chroot_list_enable=YES

chroot_local_user=YES

use_localtime=YES

dual_log_enable=YES

text_userdb_names=YES

vsftpd_log_file=/var/log/vsftpd/vsftpd-anon.log

log_ftp_protocol=YES

no_anon_password=YES

ftp_data_port=220

anon_root=/var/ftp/
```

Si ça inspire quelqu'un.

Edit : C'est à priori un problème de port et peut-être de parefeu puisqu'en local cela fonctionne. Pourtant, rien n'est bloqué selon les logs de mes 2 fw (serveur et client). Je poursuis mes recherches.

----------

## boozo

'alute

suis un novice mais à ce que j'en ai lu, il semble qu'il te faille rajouter les options pasv_* et mettant une plage différente du premier serveur (cf. src.)

Si ça ne marche pas, faudrait que tu donnes qq infos sur l'architecture réseau pour les 2 serveurs pour orienter les recherches   :Wink: 

Edit : y'a peut-être un pb en sus sur le port de connection dans ta config (couple 21/20) mais suis pas sûr de mes dires (listen_port=221 ; connect_from_port_20=YES ; ftp_data_port=220)

Edit 2 : nan j'ai ecris une co****** si c'est 2 machines différentes qui hébergent les serveurs c'est avec LISTEN_ADRESS qu'il faudrait jouer ; si c'est des vhosts j'ai pas regardé mais doit aussi y'avoir une conf spécifique pour que ça tourne carré mais y'a aussi des choses à vérifier côté ipatbles j'pense   :Wink: 

----------

## novazur

 *boozo wrote:*   

> suis un novice mais à ce que j'en ai lu,

 

Je suis dessus depuis mon premier post, j'y ai passé des heures en lectures de docs et en recherches et c'est assez tordu comme problème en fait

 *Quote:*   

> il semble qu'il te faille rajouter les options pasv_*

 

Ça, c'est si je veux faire du passif. Mais dans ce cas, côté client, s'il a un parefeu configuré comme tout parefeu traditionnel, il ne monte pas nécessairement le module ip_conntrack_ftp en précisant plusieurs ports. Donc du coup, le mode passif lui impose d'ouvrir tout un tas de ports qu'il ne connait pas nécessairement. Moi, je voudrais que le mode actif fonctionne AUSSI. Je souhaite que ce soit le plus simple et le plus universel possible pour le client, comme cela se passe lorsque j'utilise tout simplement le port 21.

 *Quote:*   

> et mettant une plage différente du premier serveur (cf. src.)

 Ah, ça je n'en ai jamais entendu parler nulle part. Je vais creuser, mais je ne vois pas ce que ça pourra changer de mettre une autre plage que le premier, vu ce que j'ai expliqué juste avant.

 *Quote:*   

> Si ça ne marche pas, faudrait que tu donnes qq infos sur l'architecture réseau pour les 2 serveurs pour orienter les recherches  

 

Je veux bien, mais en même temps, je ne veux pas faire 2 pages d'explications pour des choses qui vont plus embrouiller les choses.

En fait, côté client, je veux prendre le cas général, et pas mon cas particulier (moi, je pourrais régler mon fw et définitivement régler le problème, mais ça ne sera pas le cas du user moyen).

Côté serveur, 2 instances vsftpd qui tournent. La première sans mode anonyme, déjà en place, sur le port 21, et fonctionne parfaitement. La deuxième, un ftp complètement anonyme, juste pour downloader.

A force de triturer les configs, j'en suis arrivé à la conclusion qu'il se passe quelque chose de "bizarre" sur le data-port lorsque le listen_port n'est plus 21.

Il y a bien une option ftp_data_port= mais quoi que je fasse, ça ne semble pas agir.

Et puis, il y a une option connect_from_port_20 assez particulière il faut avouer, pour un serveur qui ne tourne pas sur le port 21. Plusieurs serveurs ftp peuvent-ils tourner avec leur data-port sur le même port (20) ?

Sinon, cette option, je ne sais même pas quoi en faire :

 *Quote:*   

> connect_from_port_20
> 
>               This controls whether PORT style data connections use port 20 (ftp-data) on the server machine.  For  secu-
> 
>               rity  reasons,  some  clients  may  insist that this is the case. Conversely, disabling this option enables
> ...

 

Est-ce vraiment du port 20 dont il est question, ou du ftp_data_port configuré (qui est 20 par défaut) ? Je trouve que cela prête à confusion.

De toutes les façons, j'ai essayé à YES comme à NO, ça ne change rien (pour mon cas). Mais si ça se trouve, c'est parce que c'est combiné à une autre option pas nécessairement bien configuré, allez savoir.

Sinon, à l'heure actuelle, en mode actif, j'ai comme erreur :

```
Sun Jun 14 08:55:21 2009 [pid 4296] CONNECT: Client "IPCLIENT"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", "220 Welcome to speedbox.fr FTP service."

Sun Jun 14 08:55:21 2009 [pid 4296] FTP command: Client "IPCLIENT", "FEAT"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", "211-Features:"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " EPRT??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " EPSV??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " MDTM??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " PASV??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " REST STREAM??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " SIZE??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " TVFS??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", " UTF8??"

Sun Jun 14 08:55:21 2009 [pid 4296] FTP response: Client "IPCLIENT", "211 End"

Sun Jun 14 08:55:22 2009 [pid 4296] FTP command: Client "IPCLIENT", "OPTS UTF8 ON"

Sun Jun 14 08:55:22 2009 [pid 4296] FTP response: Client "IPCLIENT", "200 Always in UTF8 mode."

Sun Jun 14 08:55:22 2009 [pid 4296] FTP command: Client "IPCLIENT", "USER anonymous"

Sun Jun 14 08:55:22 2009 [pid 4295] [ftp] OK LOGIN: Client "IPCLIENT", anon password "<no_password>"

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP response: Client "IPCLIENT", "230 Login successful."

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP command: Client "IPCLIENT", "PWD"

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP response: Client "IPCLIENT", "257 "/""

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP command: Client "IPCLIENT", "PORT 192,168,0,2,225,170"

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP response: Client "IPCLIENT", "500 Illegal PORT command."

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP command: Client "IPCLIENT", "LIST"

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP response: Client "IPCLIENT", "425 Use PORT or PASV first."

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP command: Client "IPCLIENT", "????ABOR"

Sun Jun 14 08:55:22 2009 [pid 4297] [ftp] FTP response: Client "IPCLIENT", "225 No transfer to ABOR."
```

Et merde, je viens juste de voir le 192,168,0,2 qui est l'ip privée de mon client, lui même derrière un parefeu.

Bon ben ça dirige un peu plus mes recherches.

Quand on dit que le ftp est compliqué derrière des parefeu/nat  :Wink: 

Ceci dit, la solution doit bien exister.

----------

## boozo

arf oui ok, j'ai pas encore toutes les sublilités mais c'est sympa comme casse-tête, assez logique quand on y réfléchit  :Wink: 

jette un oeil la-dessus pense que c'est pas loin   :Smile: 

----------

## novazur

 *boozo wrote:*   

> arf oui ok, j'ai pas encore toutes les sublilités mais c'est sympa comme casse-tête, assez logique quand on y réfléchit 
> 
> jette un oeil la-dessus pense que c'est pas loin  

 

Déjà lu ce fil (je me demande si je n'ai pas déjà tout lu sur le net sur le sujet  :Smile:  ) mais il me semble que lui, son problème est différent, c'est son serveur qui est derrière un nat.

De toutes les façons, chez lui la solution a consisté en passage en passif  :Sad: 

----------

## boozo

oui en effet cela semble être la solution de contournement que je vois un peu de partout   :Sad: 

Je crois que ça sort légèrement de mon champ de compétences dsl mais je continue... si je trouve qqch d'utile je dis

bon courage   :Smile: 

----------

## novazur

Il me semble qu'il faudrait dans vsftpd l'option AllowForeignAddress de proftpd, mais le VS de VSFTPD ne doit pas le permettre  :Wink: 

----------

## novazur

 *boozo wrote:*   

> oui en effet cela semble être la solution de contournement que je vois un peu de partout  
> 
> Je crois que ça sort légèrement de mon champ de compétences dsl mais je continue... si je trouve qqch d'utile je dis
> 
> bon courage  

 

Et bien en tout cas, merci d'avoir participé, ça donne un peu plus de courage  :Wink: 

----------

## boozo

J'y pense tout d'un coup : t'as essayé en changeant les ports dans /etc/services ?

----------

## novazur

 *boozo wrote:*   

> J'y pense tout d'un coup : t'as essayé en changeant les ports dans /etc/services ?

 

Non, du tout, côté serveur ? qu'est-ce que ça pourrait changer ? Je ne touche jamais à ce fichier en fait  :Wink: 

A mon sens, il ne sert qu'à faire une association entre nom et numéro de port...

----------

## novazur

 *novazur wrote:*   

> Et merde, je viens juste de voir le 192,168,0,2 qui est l'ip privée de mon client, lui même derrière un parefeu.
> 
> Bon ben ça dirige un peu plus mes recherches.

 

Trop fort !

Je viens juste de réaliser un truc, c'est que malgré tout, tout ça fonctionne très bien sur le port 21, autant en passif qu'en actif, et dans mes logs, j'ai bien :

```
Sun Jun 14 10:07:42 2009 [pid 6467] [ftp] OK LOGIN: Client "IPCLIENT", anon password "<no_password>"

Sun Jun 14 10:07:42 2009 [pid 6469] [ftp] FTP response: Client "IPCLIENT", "230 Login successful."

Sun Jun 14 10:07:43 2009 [pid 6469] [ftp] FTP command: Client "IPCLIENT", "PWD"

Sun Jun 14 10:07:43 2009 [pid 6469] [ftp] FTP response: Client "IPCLIENT", "257 "/""

Sun Jun 14 10:07:43 2009 [pid 6469] [ftp] FTP command: Client "IPCLIENT", "PORT XXX,XXX,XXX,XXX,159,96"

Sun Jun 14 10:07:43 2009 [pid 6469] [ftp] FTP response: Client "IPCLIENT", "200 PORT command successful. Consider using PASV."

Sun Jun 14 10:07:43 2009 [pid 6469] [ftp] FTP command: Client "IPCLIENT", "LIST"

Sun Jun 14 10:07:43 2009 [pid 6469] [ftp] FTP response: Client "IPCLIENT", "150 Here comes the directory listing."

Sun Jun 14 10:07:43 2009 [pid 6469] [ftp] FTP response: Client "IPCLIENT", "226 Directory send OK."
```

et XXX,XXX,XXX,XXX est bien identique à IPCLIENT cette fois !

C'est dingue ce truc.

C'est encore lié au parefeu du client et à son nat ça aussi ? comme pour le mode passif ? Si oui, ben c'est même plus la peine que je m'embête à chercher. C'est direct partir sur un direction port 21, et c'est fini.

Du coup, je me demande vraiment à quoi cela sert de pouvoir avoir plusieurs instances de vsftpd sur des ports différents, parce que des gens derrières des nats, il doit y en avoir quelques-uns tout de même.

C'est décourageant tout ça...

----------

## El_Goretto

Et utiliser l'option suivante pour contourner le pb?

 *man vsftpd.conf wrote:*   

> 
> 
> pasv_address
> 
>               Use this option to override the IP address that vsftpd will advertise in  response  to  the  PASV
> ...

 

----------

## novazur

 *El_Goretto wrote:*   

> Et utiliser l'option suivante pour contourner le pb?
> 
>  *man vsftpd.conf wrote:*   pasv_address 

 

Malheureusement non, c'est ce dont nous parlons plus haut.

Déjà parce que c'est pour du passif quand le serveur est lui-même derrière un nat. De plus, comme je l'ai dit précédemment, le passif a pour défaut qu'il est mal géré par le parefeu du client quand il n'est pas sur le port par défaut (21).

J'ai appris vachement de choses sur le ftp depuis 3 jours, ça doit être la première fois que je connais toutes les options d'un soft  :Very Happy: 

----------

## El_Goretto

 *novazur wrote:*   

>  *El_Goretto wrote:*   Et utiliser l'option suivante pour contourner le pb?
> 
>  *man vsftpd.conf wrote:*   pasv_address  
> 
> Malheureusement non, c'est ce dont nous parlons plus haut.
> ...

 

Bon, ton histoire me chagrine depuis un moment, et je ne comprends toujours pas pourquoi tu impliques le pare-feu client quand on parle de FTP passif... Vu que dans ce cas les 2 connexions control et data sont initiées par le client. Je ne comprends pas pourquoi tu parles d'ouvrir des ports côté client... A moins que tu filtres tout ce qui sort par port sur le client?

----------

## novazur

Parce que nf_conntrack_ftp est chargé par défaut avec comme port configuré, le port 21. Or, si tu veux utiliser un autre port, il faut le charger avec une option : ports=21,49

C'est la raison pour laquelle tout fonctionne parfaitement dès qu'il s'agit du port 21 mais pas dès que je change le port.

----------

## El_Goretto

Et là tu parles du firewall côté serveur?

----------

## novazur

 *El_Goretto wrote:*   

> Et là tu parles du firewall côté serveur?

 

Non, malheureusement.

----------

## El_Goretto

 *novazur wrote:*   

>  *El_Goretto wrote:*   Et là tu parles du firewall côté serveur? 
> 
> Non, malheureusement.

 

???

Mais en quoi tu as besoin d'un conntrack pour le client en FTP passif, vu que c'est lui qui initie les connexions?

Encore une fois, tu filtres les connexions sortantes sur le client?

----------

## novazur

 *El_Goretto wrote:*   

>  *novazur wrote:*    *El_Goretto wrote:*   Et là tu parles du firewall côté serveur? 
> 
> Non, malheureusement. 
> 
> ???
> ...

 

1) Le client n'est pas quelque chose de maîtrisable.

2) j'ai déjà répondu à ça dans de précédents posts :

 *novazur wrote:*   

> Mais dans ce cas, côté client, s'il a un parefeu configuré comme tout parefeu traditionnel, il ne monte pas nécessairement le module ip_conntrack_ftp en précisant plusieurs ports. Donc du coup, le mode passif lui impose d'ouvrir tout un tas de ports qu'il ne connait pas nécessairement. Moi, je voudrais que le mode actif fonctionne AUSSI. Je souhaite que ce soit le plus simple et le plus universel possible pour le client, comme cela se passe lorsque j'utilise tout simplement le port 21.

 

----------

## El_Goretto

1) oui, logique...

2) non, ce n'est pas une réponse à mes 2 questions. Je pense que tu n'as pas compris comment fonctionne le mode passif. Et en quoi c'est le mode "le plus universel" depuis quelques années maintenant.

----------

## novazur

 *El_Goretto wrote:*   

> 2) non, ce n'est pas une réponse à mes 2 questions.

 

Oh que si !

Déjà, tes 2 questions sont liées.

Ensuite, je dis bien que je veux que ce soit le plus universel possible, donc en gros, que ça fonctionne pour tout le monde.

Ta question "tu filtres sur le client ?" n'a donc pas de sens dans ce contexte.

 *Quote:*   

> Je pense que tu n'as pas compris comment fonctionne le mode passif.

 

Voilà, on va dire comme ça. Malheureusement, ce fil est resté un monologue pendant tout le temps où je me débattais avec le problème.

J'ai donc du faire mes recherches, et me forger mon opinion seul.

Maintenant, j'ai solutionné mon problème autrement (tout ramener sur le port 21 et mixer avec l'autre serveur ftp tournant) et je ne vais pas partir dans un débat qui m'est devenu inutile.

C'est dommage que tu ne sois pas venu donner tes éclairages au moment du post, et donc du problème.

 *Quote:*   

> Et en quoi c'est le mode "le plus universel" depuis quelques années maintenant.

  sur le port 21, port par défaut, oui.

----------

## kernelsensei

@novazur : Je pense que El_Goretto veut simplement aider à faire avancer le schmilblick et pour ça il n'est jamais trop tard. Ce n'est pas la peine de lui reprocher que ses questions n'ont pas de sens, elles en ont.

Pourquoi ne passes-tu pas les paramètres au module ip_conntrack_ftp pour suivre le trafic ftp sur ton port alternatif ?

----------

## El_Goretto

Ce que je souhaite surtout pas, c'est que ce thread serve de base de travail à quelqu'un d'autre alors que les conclusions ne me semble pas correct (un impact du mode passif sur le firewall client... alors que c'est précisément le contraire et la raison d'être de ce mode).

Maintenant si ça marche pour toi autrement, j'ai envie de dire tant mieux... mais encore une fois ce n'est pas l'esprit du forum que de ne penser qu'à soi-même et de ne pas chercher à comprendre.

Tant pis.

----------

## novazur

 *El_Goretto wrote:*   

> Maintenant si ça marche pour toi autrement, j'ai envie de dire tant mieux... mais encore une fois ce n'est pas l'esprit du forum que de ne penser qu'à soi-même et de ne pas chercher à comprendre.

 

Si tu veux chercher à comprendre, ne te prive pas.

Je pense en avoir mis assez comme informations, y compris tous les retours de mes divers tests et recherches. Me dire que je ne pense qu'à moi est vraiment très malvenu quand on arrive dans le fil 11 jours après en posant des questions dont les réponses se trouvent dans le fil.

Faut pas non plus de foutre du monde !

----------

## kernelsensei

C'est pas la peine de s'emporter, si les réponses sont dans le fil il peut arriver que le monde passe à coté...

----------

## novazur

 *kernelsensei wrote:*   

> C'est pas la peine de s'emporter, si les réponses sont dans le fil il peut arriver que le monde passe à coté...

 

C'est sa réflexion qui est déplacée, pas le fait qu'il ait vu ou pas les réponses à ses questions.

----------

## kernelsensei

 *novazur wrote:*   

>  *kernelsensei wrote:*   C'est pas la peine de s'emporter, si les réponses sont dans le fil il peut arriver que le monde passe à coté... 
> 
> C'est sa réflexion qui est déplacée, pas le fait qu'il ait vu ou pas les réponses à ses questions.

 

Ta réaction est pas mal excessive. Tu as en face de toi quelqu'un qui cherche une vraie solution à ton problème, il te pose des questions pour faire avancer la situation, et toi tu n'y réponds pas vraiment. Après tu lui reproches de te faire une réflexion déplacée alors qu'elle semble tout de même justifiée étant donné que les informations concernant le mode passif/actif ne sont pas claires, voire erronées, et qu'il serait mieux de mettre ça au clair pour que ce fil puisse, au besoin, servir à quelqu'un d'autre.

----------

