joomala

FTP Ayuda

Introducción

Una de las preguntas más comúnmente cuando se trata de servidores de seguridad y otros problemas de conectividad a Internet es la diferencia entre activo y pasivo de FTP y cómo apoyar mejor a uno o ambos de ellos. Esperemos que el siguiente texto le ayudará a aclarar algo de la confusión sobre la forma en que el soporte de FTP en un entorno de cortafuegos.
Esto no puede ser la explicación definitiva, como afirma el título, sin embargo, he oído comentarios bastante bueno y he visto este documento vinculado en lugares bastante para saber que muy pocas personas han encontrado para ser útil. Yo siempre estoy buscando formas de mejorar las cosas, sin embargo, y si encuentras algo que no está muy claro o si necesita más explicación, por favor hágamelo saber! Las recientes adiciones a este documento incluyen los ejemplos de los activos y pasivos de línea de comandos sesiones FTP. Estos ejemplos sesión debe ayudar a hacer las cosas un poco más clara. También proporcionan un buen panorama de lo que pasa detrás del escenario durante una sesión de FTP. Ahora, a la información ...

Los Fundamentos

FTP es un servicio TCP basado exclusivamente. No hay ningún componente de UDP FTP. FTP es un servicio inusual, ya que utiliza dos puertos, un puerto de 'datos' y un 'comando' del puerto (también conocido como el puerto de control).Tradicionalmente, estos son el puerto 21 para el puerto de mando y el puerto 20 para el puerto de datos. La confusión comienza sin embargo, cuando nos encontramos con que, dependiendo del modo, el puerto de datos no siempre es en el puerto 20.

FTP activo

En el modo activo de FTP el cliente se conecta a un puerto aleatorio sin privilegios (N> 1023) al puerto de comandos del servidor FTP, puerto 21. A continuación, el cliente empieza a escuchar en el puerto N +1 y envía el comando FTP PORT N +1 en el servidor FTP. El servidor se conectará de nuevo a puerto de datos del cliente se especifica desde su puerto de datos local, que es el puerto 20.
Desde la perspectiva del firewall del lado del servidor, para apoyar el modo activo de FTP siguientes canales de comunicación deben estar abiertos:
Servidor FTP puerto 21 desde cualquier lugar (la conexión del cliente se inicia)
Puerto del servidor FTP de 21 a puertos> 1023 (El servidor responde con el puerto de control del cliente)
Puerto del servidor FTP de 20 a puertos> 1023 (servidor inicia la conexión de datos a los datos de puerto del cliente)
Puerto del servidor FTP de 20 puertos> 1023 (El cliente envía ACK al puerto de datos del servidor)
Cuando se extrae, la conexión aparece como sigue:

En el paso 1, en contacto con el cliente comando de puerto el puerto del servidor de comando y envía el comando PORT 1027. El servidor envía un ACK de vuelta al puerto de comandos del cliente en el paso 2. En el paso 3 en el servidor inicia una conexión en su puerto de datos local al puerto de datos del cliente se especifica anteriormente. Finalmente, el cliente envía un ACK de vuelta, como se muestra en el paso 4.
El principal problema con el modo activo de FTP en realidad cae en el lado del cliente. El cliente FTP no hace que la conexión real con el puerto de datos del servidor - que simplemente le dice al servidor qué puerto está escuchando en el servidor y se conecta de nuevo al puerto especificado en el cliente. Desde el lado del cliente firewall esto parece ser un sistema fuera de iniciar una conexión a un cliente interno - algo que suele estar bloqueado.

Ejemplo FTP activo

A continuación se muestra un ejemplo real de una sesión activa de FTP. Las únicas cosas que han cambiado son los nombres de los servidores, direcciones IP y nombres de usuario. En este ejemplo, una sesión de FTP se inicia a partir testbox1.slacksite.com (192.168.150.80), un Linux ejecutando el comando estándar de cliente FTP de la línea, a testbox2.slacksite.com (192.168.150.90), un Linux ejecutando ProFTPd 1.2. 2RC2. La depuración (-d) El indicador se utiliza con el cliente FTP para mostrar lo que está sucediendo detrás del escenario. Todo en rojo es la salida de depuración que muestra el actual comandos FTP que se envían al servidor y las respuestas generadas a partir de los comandos. La producción normal del servidor se muestra en negro, y la entrada del usuario está en negrita.
Hay algunas cosas interesantes a considerar sobre este cuadro de diálogo. Tenga en cuenta que cuando el comando PORT se emite, se especifica un puerto en el cliente (192.168.150.80) del sistema, en lugar de en el servidor. Vamos a ver el comportamiento opuesto cuando utilizamos FTP pasivo. Ya que estamos en el tema, una breve nota sobre el formato del comando PORT. Como se puede ver en el ejemplo siguiente es el formato de una serie de seis números separados por comas. Los primeros cuatro octetos son la dirección IP, mientras que los últimos dos octetos forman el puerto que se utilizará para la conexión de datos. Para encontrar el puerto real de multiplicar el quinto octeto por 256 y luego añadir el octeto sexto del total. Así, en el siguiente ejemplo, el número de puerto es ((14 * 256) + 178), o 3762. Una revisión rápida con netstat debe confirmar esta información.
testbox1: {/ home / pt / vago / public_html}% ftp-d testbox2
Conectado a testbox2.slacksite.com.
220 testbox2.slacksite.com FTP lista de servidores.
Nombre (testbox2: vago): flojo
---> USUARIO vago
331 Password required for holgazán.
Contraseña: TmpPass
---> PASE XXXX
230 vago Usuario conectado pulg
---> SIST
215 UNIX Type: L8
Tipo de sistema remoto es UNIX.
Utilizando el modo binario para transferir archivos.
ftp> ls
ftp:setsockopt (ignorado): Permiso denegado
---> PUERTO 192,168,150,80,14,178
200 PUERTO comando correcto.
---> LISTA
150 de apertura de datos en modo ASCII de conexión de la lista de archivos.
drwx ------ 3 usuarios más flojo 104 27 de julio public_html 01:45
226 Transferencia completa.
ftp> quit
---> Salir
221 Adiós.

FTP pasivo


Con el fin de resolver el problema del servidor de inicio de la conexión con el cliente un método diferente para las conexiones FTP se desarrolló. Esto fue conocido como el modo pasivo o PASV, después de que el comando utilizado por el cliente para decirle al servidor que está en modo pasivo.
En el modo pasivo de FTP el cliente inicia las conexiones con el servidor, la solución del problema de cortafuegos de filtrado de la conexión de datos de entrada de puerto para el cliente desde el servidor. Al abrir una conexión FTP, el cliente abre dos puertos sin privilegios al azar a nivel local (N> 1023 y N +1). Los contactos del primer puerto del servidor en el puerto 21, pero en lugar de después de emitir un comando PORT y permitir que el servidor se conecte de nuevo a su puerto de datos, el cliente emite el comando PASV. El resultado de esto es que el servidor se abre un puerto aleatorio sin privilegios (p> 1,023) y envía el comando PORT P de vuelta al cliente. El cliente inicia la conexión del puerto con el puerto N +1 P en el servidor de transferencia de datos.
Desde la perspectiva del firewall del lado del servidor, para apoyar FTP en modo pasivo siguientes canales de comunicación deben estar abiertos:
Servidor FTP puerto 21 desde cualquier lugar (la conexión del cliente se inicia)
Puerto del servidor FTP de 21 a puertos> 1023 (El servidor responde con el puerto de control del cliente)
Servidor FTP puertos> 1023 desde cualquier parte (el cliente inicia la conexión de datos de puerto aleatorio especificado por el servidor)
Los puertos del servidor FTP> 1023 a puertos remotos> 1023 (Server envía ACKs (y datos) en el puerto de datos del cliente)
Cuando se dibuja, de un modo pasivo de conexión FTP se parece a esto:

En el paso 1, el cliente contacta con el servidor en el puerto de comandos y ejecuta el comando PASV. Después, el servidor responde en el paso 2 con el puerto 2024, decirle al cliente que el puerto está escuchando a la conexión de datos. En el paso 3 el cliente se inicia la conexión de datos desde su puerto de datos con el servidor especificado puerto de datos. Finalmente, el servidor envía un ACK en el paso 4 al puerto de datos del cliente.
Mientras modo pasivo de FTP resuelve muchos de los problemas del lado del cliente, se abre toda una serie de problemas en el servidor. El mayor problema es la necesidad de permitir cualquier conexión remota a alta puertos numerados en el servidor. Afortunadamente, muchos demonios FTP, entre ellos el popular WU-FTPD permiten al administrador especificar un rango de puertos que el servidor FTP va a utilizar. Véase el Apéndice 1 para más información.
La segunda cuestión consiste en el apoyo a los clientes y resolución de problemas que hacen (o no) soportan el modo pasivo. A modo de ejemplo, la línea de comandos FTP utilidad suministrada con Solaris no es compatible con el modo pasivo, lo que exige un cliente FTP de terceros, tales como ncftp.
Con la gran popularidad de la World Wide Web, muchas personas prefieren usar su navegador web como un cliente FTP. La mayoría de navegadores sólo soportan el modo pasivo cuando se accede a las direcciones URL ftp://. Esto puede ser bueno o malo dependiendo de lo que los servidores y servidores de seguridad están configurados para admitir.

Ejemplo FTP pasivo

A continuación se muestra un ejemplo real de una sesión de FTP pasivo. Las únicas cosas que han cambiado son los nombres de los servidores, direcciones IP y nombres de usuario. En este ejemplo, una sesión de FTP se inicia a partir testbox1.slacksite.com (192.168.150.80), un Linux ejecutando el comando estándar de cliente FTP de la línea, a testbox2.slacksite.com (192.168.150.90), un Linux ejecutando ProFTPd 1.2. 2RC2. La depuración (-d) El indicador se utiliza con el cliente FTP para mostrar lo que está sucediendo detrás del escenario. Todo en rojo es la salida de depuración que muestra el actual comandos FTP que se envían al servidor y las respuestas generadas a partir de los comandos. La producción normal del servidor se muestra en negro, y la entrada del usuario está en negrita.
Note la diferencia en el comando PORT en este ejemplo en comparación con el ejemplo activo de FTP. Aquí, vemos a un puerto que se abre en el servidor (192.168.150.90) del sistema, no en el cliente. Véase la discusión sobre el formato del comando PORT por encima, en la sección Ejemplo FTP activo.
testbox1: {/ home / pt / vago / public_html}% ftp-d testbox2
Conectado a testbox2.slacksite.com.
220 testbox2.slacksite.com FTP lista de servidores.
Nombre (testbox2: vago): flojo
---> USUARIO vago
331 Password required for holgazán.
Contraseña: TmpPass
---> PASE XXXX
230 vago Usuario conectado pulg
---> SIST
215 UNIX Type: L8
Tipo de sistema remoto es UNIX.
Utilizando el modo binario para transferir archivos.
ftp> pasiva
El modo pasivo.
ftp> ls
ftp:setsockopt (ignorado): Permiso denegado
---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
---> LISTA
150 de apertura de datos en modo ASCII de conexión de la lista de archivos
drwx ------ 3 usuarios más flojo 104 27 de julio public_html 01:45
226 Transferencia completa.
ftp> quit
---> Salir
221 Adiós.

Otras notas

Un lector, Maarten Sjouw, señaló que activa FTP no funcionará cuando se utiliza junto con un cliente NAT (Network Address Translation) dispositivo que no es lo suficientemente inteligente como para alterar la información de dirección IP en los paquetes de FTP.

Resumen

El siguiente cuadro debe ayudar a los administradores de recordar cómo cada modo de FTP funciona:
 
FTP Activo:
     
comando: cliente> 1023 -> servidor 21
     
datos: el cliente> 1023 <- 20 servidores

 
FTP pasivo:
     
comando: cliente> 1023 -> servidor 21
     
datos: el cliente> 1023 -> servidor> 1023
Un breve resumen de los pros y los contras de activo contra pasivo FTP es también el fin de:
FTP activo es beneficioso para el administrador del servidor FTP, pero en detrimento de la administración del lado del cliente. El servidor FTP intenta establecer conexiones a puertos aleatorios de alta en el cliente, que es casi seguro que ser bloqueado por un cortafuegos en el lado del cliente. FTP pasivo es beneficioso para el cliente, pero perjudicial para el administrador del servidor FTP.El cliente hará dos conexiones con el servidor, pero uno de ellos va a ser un puerto aleatorio de alta, que es casi seguro que ser bloqueado por un cortafuegos en el lado del servidor.
Afortunadamente, hay algo así como un compromiso. Puesto que los administradores con servidores FTP tendrá que hacer sus servidores accesibles al mayor número de clientes, es casi seguro que necesitará el apoyo pasivo de FTP.La exposición de los puertos de alto nivel en el servidor pueden ser minimizados mediante la especificación de un rango de puertos limitado para el servidor FTP para su uso. Por lo tanto, todo a excepción de este rango de puertos puede ser un cortafuegos en el servidor. Aunque esto no elimina todos los riesgos en el servidor, lo que disminuye enormemente. Véase el Apéndice 1 para más información.
Referencias

Una excelente referencia sobre cómo internet varios protocolos de trabajo y las cuestiones relacionadas con cortafuegos que se pueden encontrar en el libro de O'Reilly y Asociados, construir cortafuegos de Internet, 2 ª Ed., por Brent Chapman y Zwicky Elizabeth.
Por último, la referencia definitiva de FTP sería RFC 959, que establece las especificaciones oficiales del protocolo FTP. RFC se puede descargar desde numerosos lugares, incluyendo http://www.faqs.org/rfcs/rfc959.html.


Articulo original en ingles


Introduction

One of the most commonly seen questions when dealing with firewalls and other Internet connectivity issues is the difference between active and passive FTP and how best to support either or both of them. Hopefully the following text will help to clear up some of the confusion over how to support FTP in a firewalled environment.

This may not be the definitive explanation, as the title claims, however, I've heard enough good feedback and seen this document linked in enough places to know that quite a few people have found it to be useful. I am always looking for ways to improve things though, and if you find something that is not quite clear or needs more explanation, please let me know! Recent additions to this document include the examples of both active and passive command line FTP sessions. These session examples should help make things a bit clearer. They also provide a nice picture into what goes on behind the scenes during an FTP session. Now, on to the information...


The Basics

FTP is a TCP based service exclusively. There is no UDP component to FTP. FTP is an unusual service in that it utilizes two ports, a 'data' port and a 'command' port (also known as the control port). Traditionally these are port 21 for the command port and port 20 for the data port. The confusion begins however, when we find that depending on the mode, the data port is not always on port 20.


Active FTP

In active mode FTP the client connects from a random unprivileged port (N > 1023) to the FTP server's command port, port 21. Then, the client starts listening to port N+1 and sends the FTP command PORT N+1 to the FTP server. The server will then connect back to the client's specified data port from its local data port, which is port 20.

From the server-side firewall's standpoint, to support active mode FTP the following communication channels need to be opened:

  • FTP server's port 21 from anywhere (Client initiates connection)
  • FTP server's port 21 to ports > 1023 (Server responds to client's control port)
  • FTP server's port 20 to ports > 1023 (Server initiates data connection to client's data port)
  • FTP server's port 20 from ports > 1023 (Client sends ACKs to server's data port)

 

When drawn out, the connection appears as follows:

In step 1, the client's command port contacts the server's command port and sends the command PORT 1027. The server then sends an ACK back to the client's command port in step 2. In step 3 the server initiates a connection on its local data port to the data port the client specified earlier. Finally, the client sends an ACK back as shown in step 4.

 

The main problem with active mode FTP actually falls on the client side. The FTP client doesn't make the actual connection to the data port of the server--it simply tells the server what port it is listening on and the server connects back to the specified port on the client. From the client side firewall this appears to be an outside system initiating a connection to an internal client--something that is usually blocked.


Active FTP Example

Below is an actual example of an active FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.

There are a few interesting things to consider about this dialog. Notice that when the PORT command is issued, it specifies a port on the client (192.168.150.80) system, rather than the server. We will see the opposite behavior when we use passive FTP. While we are on the subject, a quick note about the format of the PORT command. As you can see in the example below it is formatted as a series of six numbers separated by commas. The first four octets are the IP address while the last two octets comprise the port that will be used for the data connection. To find the actual port multiply the fifth octet by 256 and then add the sixth octet to the total. Thus in the example below the port number is ( (14*256) + 178), or 3762. A quick check with netstat should confirm this information.

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST 215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied ---> PORT 192,168,150,80,14,178
200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for file list.
drwx------   3 slacker    users         104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.

Passive FTP

In order to resolve the issue of the server initiating the connection to the client a different method for FTP connections was developed. This was known as passive mode, or PASV, after the command used by the client to tell the server it is in passive mode.

In passive mode FTP the client initiates both connections to the server, solving the problem of firewalls filtering the incoming data port connection to the client from the server. When opening an FTP connection, the client opens two random unprivileged ports locally (N > 1023 and N+1). The first port contacts the server on port 21, but instead of then issuing a PORT command and allowing the server to connect back to its data port, the client will issue the PASV command. The result of this is that the server then opens a random unprivileged port (P > 1023) and sends the PORT P command back to the client. The client then initiates the connection from port N+1 to port P on the server to transfer data.

From the server-side firewall's standpoint, to support passive mode FTP the following communication channels need to be opened:

  • FTP server's port 21 from anywhere (Client initiates connection)
  • FTP server's port 21 to ports > 1023 (Server responds to client's control port)
  • FTP server's ports > 1023 from anywhere (Client initiates data connection to random port specified by server)
  • FTP server's ports > 1023 to remote ports > 1023 (Server sends ACKs (and data) to client's data port)

 

When drawn, a passive mode FTP connection looks like this:

In step 1, the client contacts the server on the command port and issues the PASV command. The server then replies in step 2 with PORT 2024, telling the client which port it is listening to for the data connection. In step 3 the client then initiates the data connection from its data port to the specified server data port. Finally, the server sends back an ACK in step 4 to the client's data port.

 

While passive mode FTP solves many of the problems from the client side, it opens up a whole range of problems on the server side. The biggest issue is the need to allow any remote connection to high numbered ports on the server. Fortunately, many FTP daemons, including the popular WU-FTPD allow the administrator to specify a range of ports which the FTP server will use. See Appendix 1 for more information.

The second issue involves supporting and troubleshooting clients which do (or do not) support passive mode. As an example, the command line FTP utility provided with Solaris does not support passive mode, necessitating a third-party FTP client, such as ncftp.

With the massive popularity of the World Wide Web, many people prefer to use their web browser as an FTP client. Most browsers only support passive mode when accessing ftp:// URLs. This can either be good or bad depending on what the servers and firewalls are configured to support.


Passive FTP Example

Below is an actual example of a passive FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a linux box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.

Notice the difference in the PORT command in this example as opposed to the active FTP example. Here, we see a port being opened on the server (192.168.150.90) system, rather than the client. See the discussion about the format of the PORT command above, in the Active FTP Example section.

testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST 215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode on.
ftp> ls
ftp: setsockopt (ignored): Permission denied ---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
---> LIST
150 Opening ASCII mode data connection for file list
drwx------   3 slacker    users         104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.

Other Notes

A reader, Maarten Sjouw, pointed out that active FTP will not function when used in conjunction with a client-side NAT (Network Address Translation) device which is not smart enough to alter the IP address info in FTP packets.


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

 Passive FTP :
     command : client >1023 -> server 21
     data    : client >1023 -> server >1023

 

A quick summary of the pros and cons of active vs. passive FTP is also in order:

Active FTP is beneficial to the FTP server admin, but detrimental to the client side admin. The FTP server attempts to make connections to random high ports on the client, which would almost certainly be blocked by a firewall on the client side. Passive FTP is beneficial to the client, but detrimental to the FTP server admin. The client will make both connections to the server, but one of them will be to a random high port, which would almost certainly be blocked by a firewall on the server side.

Luckily, there is somewhat of a compromise. Since admins running FTP servers will need to make their servers accessible to the greatest number of clients, they will almost certainly need to support passive FTP. The exposure of high level ports on the server can be minimized by specifying a limited port range for the FTP server to use. Thus, everything except for this range of ports can be firewalled on the server side. While this doesn't eliminate all risk to the server, it decreases it tremendously. See Appendix 1 for more information. 

References

An excellent reference on how various internet protocols work and the issues involved in firewalling them can be found in the O'Reilly and Associates book, Building Internet Firewalls, 2nd Ed, by Brent Chapman and Elizabeth Zwicky.

Finally, the definitive reference on FTP would be RFC 959, which sets forth the official specifications of the FTP protocol. RFCs can be downloaded from numerous locations, including http://www.faqs.org/rfcs/rfc959.html.

Hoy habia 1 visitantes (2 clics a subpáginas) ¡Aqui en esta página!

Reparacion Lavadoras ,Buscador Personalizado, Aprende a reparar, Camaras IP, Web, Acondicionadores, Reparaciones en madrid, Compramos Tu Television Estropeada, camaras foscam camaras web baratas Reparacion Lavadoras Reparacion Lavadoras Reparacion Lavadoras baleares eiwissa Buscador Buscador Web finder Chiste jetstreamtec camarasIp Camaras IP, Camaras IP, Camaras IP, Comra tele Sevicio tecnico online Reparacion Lavadoras Reparacion Lavadoras Reparaciones En Madrid Reparaciones En Madrid Reparaciones En Madrid Compramos televizores En Madrid Compramos televizores En Madrid Compramos televizores En Madrid Online,Reparacion televizores En Madrid Online,Reparacion de televizores En Madrid aire.yoreparoo baleares.yoreparoo calderas.yoreparoo calentadores.yoreparoo cocina.yoreparoo congeledores.yoreparoo eivissa.yoreparoo gamablanca.yoreparoo hornos.yoreparoo hosteleria.yoreparoo ibiza.yoreparoo lavadoras.yoreparoo lavaplatos.yoreparoo lavavajillas.yoreparoo madrid.yoreparoo Dm0z.es yoreparoo Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?

Registrarse gratis