Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Seguridad y redes (http://www.forosdelweb.com/f20/)
-   -   Duda de conexión FTP a través de NAT (http://www.forosdelweb.com/f20/duda-conexion-ftp-traves-nat-866216/)

Smolky 06/12/2010 08:49

Duda de conexión FTP a través de NAT
 
Hola. Recientemente he instalado un servidor Ubuntu-Server en una máquina virtual y he instalado el servidor FTP proftpd.

Lo tengo configurado en modo activo (creo) tanto el cliente como el servidor y he establecido un puerto distinto al 21. En conexión local funciona perfectamente, es decir, poniendo una IP del rango 192.168.2.x

Ahora, he configurado el enrutador añadiendo en la parte de Servidor Virtual del NAT que las conexiones que me entren por ese puerto las redirija a mi IP local.

El caso es que cuando hago la conexión esto es lo que me devuelve el servidor:

Código:

Comando:        PORT 192,168,2,146,198,169
Respuesta:        500 Illegal PORT command
Comando:        PASV
Respuesta:        227 Entering Passive Mode (192,168,2,57,177,203).
Estado:        El servidor envió una respuesta pasiva con una dirección no enrutable. Usando en su lugar la dirección del servidor.

Destaco en negrita lo del modo pasivo.


He conseguido arreglarlo añadiendo ese equipo como una DMZ (Zona desmilitarizada) pero creo que eso es un grave problema de seguridad ¿No?

En el fichero de configuración del FTP tengo comentada una línea llamada PassivePorts y activa una línea que se llama Port. ¿Eso es ponerlo en modo activo o hay que hacer alguna otra cosa?



Muchas gracias

ressett_182 06/12/2010 11:04

Respuesta: Duda de conexión FTP a través de NAT
 
1 - Instala gadminproftpd, para configurar el FTP en modo grafico, ..

2 - Intenta configurar el FTP por el puerto por defecto ..

3 - Prueba un protocolo de enrutamiento como OSPF, para que habra primero la ruta mas corta ..

Nos cuentas como te ha ido ..

Saludos !

Smolky 06/12/2010 14:14

Respuesta: Duda de conexión FTP a través de NAT
 
Cita:

Iniciado por ressett_182 (Mensaje 3661864)
1 - Instala gadminproftpd, para configurar el FTP en modo grafico, ..

2 - Intenta configurar el FTP por el puerto por defecto ..

3 - Prueba un protocolo de enrutamiento como OSPF, para que habra primero la ruta mas corta ..

Nos cuentas como te ha ido ..

Saludos !

Hola Ressett_182. En primer lugar gracias por tu tiempo. Te contesto por puntos:

1.- Actualmente tengo instalada la versión servidor de Ubuntu sin entorno gráfico y por lo que he visto en fotos este es un entorno gráfico para usarlo por GNOME/KDE, no de estos entornos diseñados para trabajar por consola. Así que preferiría no tener que instalar ningún entorno gráfico en el servidor.

2.- Esa fue mi primera prueba. El hecho de tener otro puerto por FTP fue más bien por probar en un puerto que no fuera el estándar por si fuera problema del router

3.- No entiendo bien que quieres decir. El OSPF es un protocolo de enrutamiento. ¿No está fuera eso del ámbito de lo que yo quiero hacer? Es decir... yo quiero sacar paquetes TCP fuera de mi red y que sea accesible a través de Internet. Ya será la propia red la que se encargue de enrutar los paquetes de la forma más conveniente (Quizás esté metiendo la pata hasta el fondo y me venga bien alguna explicación de esto)

Mort20 06/12/2010 15:54

Respuesta: Duda de conexión FTP a través de NAT
 
Realmente lo del OSPF no tiene nada que ver. Y además está claro que el router puede comunicarse con ambos extremos por lo de que el servidor recibe la petición.

Así con los datos facilitados es complicado ayudar, pero todo parece ser un error en las direccions IP o los puertos, así que solo puedo aconsejarte usar tcpdump en ambos extremos para ver las traducciones que hace y los puertos que envia, si el error está ahí con eso se ve muy rapidamente. En caso que todas las traducciones sean correctas entonces sería un problema de configuración del proftp (que personalmente poca idea tengo de ese programa en concreto).

Smolky 06/12/2010 16:22

Respuesta: Duda de conexión FTP a través de NAT
 
Hola. He ejecutado el siguiente comando en la terminal:

Código:

sudo tcpdump -i eth0 | grep 192.168.2.57:30205 > $HOME/resultado.txt
Y luego, analizando el fichero obtenido tras intentar realizar una conexión al servidor FTP he visto que hay muchas líneas del estilo a:

Código:

IP 192.168.2.1.60610 > 192.168.2.57.30205 Flags F seq ... ack ... win ... length 0
IP 192.168.2.57.30205 > 192.168.2.1.60612 Flags F seq ... ack ... win ... length 80
...
...
...
...

Bueno. El puerto 30205 es el de mi servidor FTP y supongo que el puerto 60610 y el 60612 son puertos que se le asignan al cliente del FTP.

Todo esto es en la configuración que funciona, es decir, en el que está el servidor 192.168.2.57 en la zona desmilitarizada

HookerSP 07/12/2010 02:04

Respuesta: Duda de conexión FTP a través de NAT
 
NATea los puertos 20 y 21 (no solo el 21)

Hooker

Smolky 07/12/2010 05:39

Respuesta: Duda de conexión FTP a través de NAT
 
Cita:

Iniciado por HookerSP (Mensaje 3662802)
NATea los puertos 20 y 21 (no solo el 21)
Hooker

Hola HookerSP. Ya hice la prueba (puertos 20 y 21 en Virtual Server redirigidos a mi servidor 192.168.2.57 y con la DMZ desactivada) pero tampoco conseguía conectar desde fuera de la LAN

ressett_182 07/12/2010 11:24

Respuesta: Duda de conexión FTP a través de NAT
 
si puedes, muestra algunas lineas del fichero proftod.conf, obviamente tapando direcciones IP y demas,

Smolky 08/12/2010 05:29

Respuesta: Duda de conexión FTP a través de NAT
 
Gracias. Aquí está el fichero donde lo único que he cambiado es el nombre del servidor para subirlo aquí. Gracias

Código:

#
# /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                                on
# If set on you can experience a longer connection delay in many cases.
IdentLookups                off

ServerName                        "ftp.nombre-de-mi-servidor"
ServerType                        standalone
DeferWelcome                off

MultilineRFC2228                on
DefaultServer                        on
ShowSymlinks                        on

TimeoutNoTransfer                600
TimeoutStalled                        600
TimeoutIdle                                1200

DisplayLogin                    welcome.msg
DisplayChdir                      .message true
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                                30205

# 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                  49152 65534

# 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                1.2.3.4

# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

# 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 via NSS to retrieve passwords:
# PersistentPasswd                off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder                        mod_auth_pam.c* mod_auth_unix.c

# 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

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

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</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        off
ControlsMaxClients    2
ControlsLog          /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

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

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf

#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.con

# 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
#  DisplayChdir                .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>

# Configuración del usuario web
<Directory /var/www/>
  Umask                    077 077
  AllowOverwrite          On
  <Limit READ WRITE STOR>
      AllowAll
  </Limit>
</Directory>

DefaultRoot ~


ressett_182 09/12/2010 08:56

Respuesta: Duda de conexión FTP a través de NAT
 
Una pregunta, fuera de todo esto, en la configuracion de la maquina virtual, la configuracion , la tienes en puente ? o en NAT, ? debe de estar puente .. Yo veo el fichero bn .. la verdad es que no se me ocurre nada mas .. si no puedes .. intenta con vsftpd :S ..

Saludos ..

Smolky 10/12/2010 09:16

Respuesta: Duda de conexión FTP a través de NAT
 
Hola. Si, la tengo en Bridge y con la casilla de Replicate physical network connection state desactivada.

Si realmente parece que todo es correcto, pero dudo por ejemplo en el error que me daba el FTP diciendo algo del modo pasivo. Voy a intentar conectar con otro cliente FTP (Ahora mismo uso Filezilla) a ver.

Smolky 11/12/2010 17:24

Respuesta: Duda de conexión FTP a través de NAT
 
Bueno... pues sigo con problemas. He vuelto a activar el puerto 21 y he desactivado la DMZ y, tal como antes, funciona cuando pongo la IP privada del servidor pero falla al poner la IP pública del enrutador.

Ampliando información aquí:
http://slacksite.com/other/ftp.html

Cita:

Summary
The following chart should help admins remember how each FTP mode works:
Active FTP :
command : client >1023 -> server 21
data : client >1023 <- server 20

Para funcionar sólo tengo que abrir el 21 en el router.

El caso es que volviendo a hacer TCPDUMP veo los mensajes que hay entre mi router 192.168.2.1 y el servidor (ya que al hacer NAT y usar mi IP pública, los datos deben de pasar por allí) y veo conexiones por el puerto FTP.

Ahora, si conecto usando la IP local veo datos por los puertos FTP y FTP-data y todo funciona correctamente.

El caso, es que he probado a conectar desde el mismo servidor usando la terminal de comandos por FTP y al hacer:

Código:

OPEN [nombre-del-servidor]
Y, antes de pedir usuario y contraseña me dice:
Cita:

Conected to [mi-ip-publica].dyn.user.ono.com
421 Service not avaliable, remote server has closed connection


La zona horaria es GMT -6. Ahora son las 05:58.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.