Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2008, à 14:18

Julien GUERIN

[Résolu] proftpd accessible en local et pas depuis l'extérieur

Bonjour,

Je souhaite installer mon propre serveur FTP sur mon portable afin que je puisse échanger de gros fichiers avec des amis. Ils doivent donc avoir un accès limité à un répertoire de mon choix (sans pouvoir remonter dans l'arborescence) dans lequel ils peuvent faire ce qu'ils veulent : copier des fichiers, renommer, supprimer, etc.

Dans un premier temps, je veux d'abord faire fonctionner le serveur et le rendre accessible pour un utilisateur anonymous. Je verrai dans un second temps la mise en place d'un utilisateur avec mot de passe.

D'abord, voici ma config :
- Ubuntu 7.10
- Serveur FTP : proftpd (dernière version)
- Neufbox v4 + connexion Wifi
- Firestarter

J'ai donc :

1) Installé proftpd conformément à ce qui est indiqué ici : http://doc.ubuntu-fr.org/proftpd

Voici mon fichier proftpd.conf.

# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
# 

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6				off

ServerName			"Serveur FTP - Julien GUERIN"
ServerType			standalone
DeferWelcome			off

MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on

TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200

DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
ListOptions                	"-l"

DenyFilter			\*.*/

# Use this to jail all users in their homes 
# DefaultRoot			~

# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
# RequireValidShell		off

# Port 21 is the standard FTP port.
Port				21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
PassivePorts                  5000 5100

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
MasqueradeAddress		192.168.1.20 // J'ai mis la valeur indiquée au niveau de wlan0/inet addr quand je fais un ifconfig en ligne de commande... Sans trop savoir si c'est ça qu'il faut faire !!

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances			30

# Set the user and group that the server normally runs at.
User				proftpd
Group				nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask				022  022
# Normally, we want files to be overwriteable.
AllowOverwrite			on

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
# PersistentPasswd		off

# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile			off

# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend 
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
#<IfModule mod_sql.c>
# SQLBackend			mysql
#</IfModule>

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

<IfModule mod_tls.c>
TLSEngine off
</IfModule>

<IfModule mod_quota.c>
QuotaEngine on
</IfModule>

<IfModule mod_ratio.c>
Ratios on
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default. 
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        on
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine on
</IfModule>

# A basic anonymous configuration, no upload directories.

<Anonymous ~ftp>
  User				ftp
  Group				nogroup
  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias			anonymous ftp
  # Cosmetic changes, all files belongs to ftp user
  DirFakeUser	on ftp
  DirFakeGroup on ftp

  RequireValidShell		off

  # Limit the maximum number of anonymous logins
  MaxClients			10

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin			welcome.msg
  DisplayFirstChdir		.message

  # Limit WRITE everywhere in the anonymous chroot
  <Directory *>
    <Limit WRITE>
      DenyAll
    </Limit>
  </Directory>

  # Uncomment this if you're brave.
  # <Directory incoming>
  #   # Umask 022 is a good standard umask to prevent new files and dirs
  #   # (second parm) from being group and world writable.
  #   Umask				022  022
  #            <Limit READ WRITE>
  #            DenyAll
  #            </Limit>
  #            <Limit STOR>
  #            AllowAll
  #            </Limit>
  # </Directory>

</Anonymous>

2) Installé firestarter pour ouvrir les ports FTP (mode actif et passif)

Voici les ports ouverts dans l'onglet "Policy" :
- Allow service = FTP, Port = 20-21, For = everyone
- Allow service = FTP (passif), Port = 5000-5100, For = everyone

3) Paramétré ma Neufbox pour le NAT et Dyndns

- Dyndns : pas d'erreur je pense... Il est bien renseigné avec les paramètres que j'ai sur mon compte dyndns.com et bien activé...

- NAT : 3 lignes paramétrées comme suit :

#;Nom;Protocole;Type;Ports externes;Adresse IP de destination;Ports de destination;Activation
1;FTP;TCP;Port;21;192.168.1.20;21;Activé
1;FTP;TCP;Port;20;192.168.1.20;20;Activé   
3;FTPpassif;TCP;Plage;5000-5100;192.168.1.20;5000-5100;Activé

=> pour le 192.168.1.20, comme pour dans le fichier proftpd, j'ai mis la valeur indiquée au niveau de wlan0/inet addr quand je fais un ifconfig en ligne de commande... Sans trop savoir si c'est ça qu'il faut faire !! C'est aussi l'adresse IP indiquée dans ma Neufbox dans l'onglet "Réseau", dans le bloc "Postes connectés".

4) Le constat est le suivant :

- J'arrive, semble t'il, à me connecter au serveur FTP en local : quand je fais un ftp localhost en ligne de commande et après avoir renseigné le login de connexion "ftp", je suis connecté...

julien@ASUS:/etc/proftpd$ ftp localhost
Connected to localhost.
220 ProFTPD 1.3.0 Server (Serveur FTP - Julien GUERIN) [192.168.1.20]
Name (localhost:julien): ftp
331 Anonymous login ok, send your complete email address as your password.
Password:
230-Welcome, archive user ftp@localhost !
230-
230-The local time is: Sat Aug  2 10:51:46 2008
230-
230-This is an experimental FTP server.  If have any unusual problems,
230-please report them via e-mail to <root@192.168.1.20>.
230-
230 Anonymous access granted, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
150 Opening ASCII mode data connection for file list
-rw-r--r--   1 ftp      ftp           166 Jun 15  2007 welcome.msg
226 Transfer complete.
ftp>

Idem, avec Filezilla, ça fonctionne très bien...

- En revanche, si j'essaye de me connecter depuis l'extérieur en passant par dyndns, via filezilla par exemple, ça ne fonctionne pas. La connexion ne se fait pas. Ci-dessous, un extrait de la console de Filezilla :

Status:	Resolving IP-Address for ****.net
Status:	Connecting to ******:21...

Remarque : le port 21 est bien ouvert car le test que je fais sur http://check.sdv.fr/ me le confirme (cf. un extrait du compte-rendu du diagnostic). S'il le dit, moi pas con, je le crois !!

Votre ip	**** (******.net)
Votre systéme	Linux i686
Liste des ports visibles:
Nom	Status	Numero	Information
ftp 	ouvert 	21/tcp 	File Transfer [Control]

Voilà !! Je pense avoir été exhaustif dans les infos que je peux fournir !

Ainsi, si un pro du FTP peut m'aider à comprendre ce qui ne va pas, j'en serai fort heureux !! J'ai épluché quelques forums, etc. et là, je sèche !

Merci beaucoup pour votre aide,

#2 Le 02/08/2008, à 14:26

manslipkorn

Re : [Résolu] proftpd accessible en local et pas depuis l'extérieur

A priori, la config est bonne, ça ne vient donc pas de /etc/proftpd/proftpd.conf

Si au lieu de tester avec DynDNS tu essayais avec ton adresse IP ?

Ca permettrait déjà de cibler le problème.

ps : tu la trouvera ici

/edit

De plus, quand tu fais des tests de connexion extérieurs, le fais-tu vraiment de l'extérieur de ton réseau local ou pas.

Tout simplement parce que certains routeurs ne permettent pas de faire une boucle. Fais un test de l'extérieur pour être fixé.

Dernière modification par manslipkorn (Le 02/08/2008, à 15:13)

Hors ligne

#3 Le 02/08/2008, à 14:32

manslipkorn

Re : [Résolu] proftpd accessible en local et pas depuis l'extérieur

Bon, plutôt que de faire un edit, je préfères reposter pour que tu ne loupes pas ma réponse.

Donc, ça marche.

Je viens de faire un test avec le NDD que tu as fournis.

Je me suis bel et bien connecté (mis à part le pseudo/MDP que je ne connais pas, mais il me les demande).

Donc, en gros, c'est ton routeur qui ne te permet pas de faire "la boucle", rien de bien méchant en soit.

Preuve si besoin en est :

manslipkorn@manslipkorn-desktop:~$ ftp *****.dnsalias.net
Connected to *****.dnsalias.net.
220 ProFTPD 1.3.0 Server (Serveur FTP - Julien G***) [192.168.1.20]
Name (*****.dnsalias.net:manslipkorn):

Dernière modification par manslipkorn (Le 02/08/2008, à 15:18)

Hors ligne

#4 Le 02/08/2008, à 14:52

JulienGuerin94

Re : [Résolu] proftpd accessible en local et pas depuis l'extérieur

D'abord, un très grand merci pour cette réactivité fort appréciable !!

Donc si je reformule, cela veut dire que mon serveur FTP est bien accessible depuis  l'extérieur ?

Si oui, je peux donc pas passer à la mise en place d'un utilisateur avec login/mdp plus sécurisé que anonymous.

Il faut que je modifie mon fichier proftpd.conf, c'est ça ?

Saurais-tu me dire ce que je dois y modifier ?

Merci encore pour ton aide,

Hors ligne

#5 Le 02/08/2008, à 14:59

manslipkorn

Re : [Résolu] proftpd accessible en local et pas depuis l'extérieur

Pas de quoi pour l'aide, tout le plaisir fût pour moi wink.

Désolé, j'avais pas vu avant que les connexions anonymes étaient en place.
Histoire d'être sûr, je me suis permis de me reconnecter en anonyme pour confirmer, et cela marche toujours (il n'y a rien, excepté le fichier welcome.msg).

Pour la gestion des utilisateurs, je te conseilles fortement d'installer le paquet gproftpd qui est une interface graphique pour proftpd qui facilite vraiment la gestion des utilisateurs.

Dernière modification par manslipkorn (Le 02/08/2008, à 15:01)

Hors ligne

#6 Le 02/08/2008, à 15:14

JulienGuerin94

Re : [Résolu] proftpd accessible en local et pas depuis l'extérieur

Bon ok, je vais essayer avec cet outil !

En attendant, je vais mettre fièrement [Résolu] à ce post ! Yes !

Merci encore et bonne journée,

Hors ligne

#7 Le 02/08/2008, à 15:17

manslipkorn

Re : [Résolu] proftpd accessible en local et pas depuis l'extérieur

Pas de quoi, en espérant que tout se passe bien (sinon, n'hésites pas à revenir sur ce topic).

Sinon, je te conseilles d'éditer ton premier post pour enlever ton nom de domaine DynDNS, on ne sait jamais wink. (pour ma part, j'édites mon 3ème post pour que ce dernier n'apparaisse plus).

Bonne continuation

Hors ligne

#8 Le 02/08/2008, à 15:22

JulienGuerin94

Re : [Résolu] proftpd accessible en local et pas depuis l'extérieur

Ah ouais bien vu !

Le problème, c'est que je l'ai posté alors que je n'étais pas connecté ! Du coup, j'ai  plus la main dessus !! Je ne peux plus le modifier !

Ouarf.... Pas bien grave !

Hors ligne