Aquí encontrará un excelente tutorial que explica también el funcionamiento interno y los problemas que puede encontrar tratando de configurar un servidor ftp en la instancia Amazon EC2.
También explica por qué solo abrir el puerto 21 en el firewall de Amazon no funcionará. El ejemplo allí utiliza el servidor y cliente ftp freezion, pero se puede usar cualquiera.
http://me-ol-blog.blogspot.com/2011/03/how-to-install-ftp-server-on-amazon-aws.html
Editado (24-sep-2013):
Debido a la mejor práctica de políticas para stackoverflow dice no confiar en los enlaces, he copiado la información de mi blog aquí:
Cómo instalar un servidor FTP en Amazon AWS EC2
This seems to be a big issue as people usually waste a lot of time on this.
The problem lies with 2 elements: the security group settings & the ftp server settings.
FTP is not considered a good solution for passing files between EC2 instances and your computer as it is not firewall "friendly" - you can't just open port 21/TCP on the amazon security group settings because the server is actually sitting on a NAT address and when an ftp client connects to an FTP server using PASV mode then the server tells the client which port and which address to use for the data stream (like directory listing).
If you want an alternate easy solution for transferring files between yourself and the EC2 instance then setup a dropbox on both machines - it doesn't get easier than this... :)
If you still want to set up an FTP server on your EC2 instance then read on...
Typically, people just try to open port 21 and then try to connect and get something similar to:
Status: Server sent passive reply with unroutable address. Using server address instead.
Command: MLSD
Response: 425 Can't open data connection.
The solution is (and for this example I will explain how to perform the setting on FileZilla FTP server on windows):
1. FileZilla FTP server: Edit-> settings -> Passive mode settings:
(x) Retrieve external IP from:
http://ip.filezilla-project.org/ip.php
[ this tells the ftp server to perform a 'whatismyip' and give that to the ftp client, you can also specifically put the address DNS name you use in your remote desktop in the "Use the following IP:", e.g., ec2-6-100-129-60.compute-1.amazonaws.com ]
(x) Use custom port range:
1024-1048
[ these are the ports that will be given to the ftp client - we will open them in the following step in the Firewall ]
2. Amazon security groups: open ports -
a. Custom TCP rule , Port range:21
b. Custom TCP rule, Port range:1024-1048
3. Turn off the windows firewall on the EC2 machine (you don't need it - you have the amazon firewall)
That's it, and just as side note, you don't need to use Elastic IP feature for this to work.
Also don't forget to set your client to use PASV mode (which is typically the default).
You can verify this works by reading the answer the server gives the client when it enters PASV mode:
Command: PASV
Response: 227 Entering Passive Mode (174,149,71,102,4,7)
This response means: "Yo FTP client, use 174.149.71.102 and port 4*256+7=1031"
esto es ayudar a cumplir – Arsalan
Por otra parte, como la cuestión está centrada en AWS, no se olvide de esto: Acceder a la gestión de EC2 consola, vaya a grupos de seguridad, seleccione el grupo de seguridad al que pertenece su instancia, haga clic en pestaña de entrada, cree una nueva regla TCP personalizada, permita el puerto 21. De lo contrario, el método de video anterior nunca funcionará ya que el firewall de Amazon anulará el firewall de Windows. – Zeeshan
Y después de eso estoy atascado en: 'Estado: \t El servidor envió una respuesta pasiva con una dirección no enrutable. Usando la dirección del servidor instead.' 'Comando: \t list' ' Respuesta: \t 150 Apertura connection.' datos de modo binario 'Respuesta: \t canal 550 de datos programada out.' ' Error: No se ha podido recuperar \t directorio listing' – Zeeshan