Foros del Web » Administración de Sistemas » Seguridad y redes »

Duda de conexión FTP a través de NAT

Estas en el tema de Duda de conexión FTP a través de NAT en el foro de Seguridad y redes en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/12/2010, 08:49
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
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
__________________
No hay cuerda desafinada sino músico progresivo
  #2 (permalink)  
Antiguo 06/12/2010, 11:04
Avatar de ressett_182  
Fecha de Ingreso: junio-2010
Ubicación: Medellin
Mensajes: 186
Antigüedad: 13 años, 10 meses
Puntos: 0
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 !
  #3 (permalink)  
Antiguo 06/12/2010, 14:14
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
Respuesta: Duda de conexión FTP a través de NAT

Cita:
Iniciado por ressett_182 Ver Mensaje
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)
__________________
No hay cuerda desafinada sino músico progresivo
  #4 (permalink)  
Antiguo 06/12/2010, 15:54
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 11 meses
Puntos: 2
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).
__________________
Un Lannister siempre cumple sus promesas
  #5 (permalink)  
Antiguo 06/12/2010, 16:22
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
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
__________________
No hay cuerda desafinada sino músico progresivo
  #6 (permalink)  
Antiguo 07/12/2010, 02:04
Avatar de HookerSP  
Fecha de Ingreso: diciembre-2004
Mensajes: 983
Antigüedad: 19 años, 4 meses
Puntos: 12
Respuesta: Duda de conexión FTP a través de NAT

NATea los puertos 20 y 21 (no solo el 21)

Hooker
  #7 (permalink)  
Antiguo 07/12/2010, 05:39
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
Respuesta: Duda de conexión FTP a través de NAT

Cita:
Iniciado por HookerSP Ver Mensaje
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
__________________
No hay cuerda desafinada sino músico progresivo
  #8 (permalink)  
Antiguo 07/12/2010, 11:24
Avatar de ressett_182  
Fecha de Ingreso: junio-2010
Ubicación: Medellin
Mensajes: 186
Antigüedad: 13 años, 10 meses
Puntos: 0
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,
  #9 (permalink)  
Antiguo 08/12/2010, 05:29
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
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 ~
__________________
No hay cuerda desafinada sino músico progresivo
  #10 (permalink)  
Antiguo 09/12/2010, 08:56
Avatar de ressett_182  
Fecha de Ingreso: junio-2010
Ubicación: Medellin
Mensajes: 186
Antigüedad: 13 años, 10 meses
Puntos: 0
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 ..
  #11 (permalink)  
Antiguo 10/12/2010, 09:16
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
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.
__________________
No hay cuerda desafinada sino músico progresivo
  #12 (permalink)  
Antiguo 11/12/2010, 17:24
Avatar de Smolky  
Fecha de Ingreso: mayo-2006
Ubicación: Cartagena
Mensajes: 177
Antigüedad: 18 años
Puntos: 14
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
__________________
No hay cuerda desafinada sino músico progresivo

Etiquetas: ftp, nat
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:27.