Hola que tal
En este tutorial vamos a crear un servidor ftp básico en
windows, nos servirá para compartir archivos o para recibir archivos
de nuestras redes locales o internet, etc. Es muy práctico ya que
por aquí puedes intercambiar archivos muy grandes.
Muy bien entonces
Vamos a definir FTP:
FTP (File Transfer Protocol,
'Protocolo de Transferencia de Archivos') en informática, es un protocolo
de red para la transferencia de archivos entre sistemas
conectados a una red TCP (Transmission Control Protocol), basado en
la arquitectura cliente-servidor. Desde un equipo cliente se puede
conectar a un servidor para descargar archivos desde él o para enviarle archivos,
independientemente del sistema operativo utilizado en cada equipo.
El servicio FTP es ofrecido por la capa de aplicación del modelo de
capas de red TCP/IP al usuario, utilizando normalmente el puerto
de red 20 y el 21.
Modelo FTP:
Un problema básico de FTP es que está pensado para ofrecer la máxima
velocidad en la conexión, pero no la máxima seguridad, ya que todo el
intercambio de información, desde el login y password del usuario en el
servidor hasta la transferencia de cualquier archivo, se realiza en texto
plano sin ningún tipo de cifrado, con lo que un posible atacante puede
capturar este tráfico, acceder al servidor y/o apropiarse de los archivos
transferidos.
Para solucionar este problema son de gran utilidad aplicaciones como scp y
sftp, incluidas en el paquete SSH, que permiten transferir archivos
pero cifrando todo el tráfico. Este problema lo resolveremos en
la parte 2 del tutorial.
Las Herramientas que
necesitaremos serán las siguientes
No-Ip
Vitalwerks LLC es la compañía matriz de No-IP, que es un DNS
dinámico proveedor de servicios de pago y gratuitos. No-IP ofrece
servicios de DNS, correo electrónico, monitorización de red y certificados
SSL. Servicios de correo electrónico incluyen POP3 de correo
electrónico, de salida SMTP de correo electrónico, servicios de copia
de seguridad de correo electrónico y la reflexión y el filtrado.
Utilizaremos No-Ip Free
El servicio que utilizaremos
será el Dynamic DNS Updating para
asociar un dominio o subdominio a la IP de nuestro servidor FTP y que se puede
acceder a el desde otra red que no sea LAN.
Aquí realizaremos varios pasos
Darnos de alta como usuarios, como comente anteriormente
utilizaremos No-Ip Free.
Seleccionaremos el recuadro encerrado en rojo
Aquí oprimiremos la opción
de “Sing Up Now!”, para mas información la página nos muestra brevemente todo
lo que nos ofrece la versión gratuita por ejemplo acceso remoto a nuestra pc,
re direccionamiento al puerto 80 y subdominios gratuitos.
Tenemos que rellenar un
simple formulario, y posteriormente No-Ip nos mandara un enlace a nuestro
correo para activar la cuenta.
Descargaremos el Cliente de
Actualización Dinámica DNS, el cual es el encargado de asociar nuestra IP, ya sea
dinámica o estática, al subdominio o a los subdominios, que registremos.
Iremos a la pestaña
“Host/Redirects” y en la opción “Download Client”, después nos pedirá el tipo
de sistema operativo, escogeremos Windows ya que nuestro servidor FTP será Windows.
Una vez descargado e
instalado procederemos a crear un subdominio, No-Ip te deja solamente crear 3
host por cuenta y se pueden asociar a la misma IP o a diferentes IP esto lo
configuramos con el Cliente DNS, volviendo a la imagen anterior, seleccionamos
la opción “Add Host”
Para este ejemplo solo necesitamos, los siguientes
campos:
- Hostname –
Le damos un nombre a nuestro subdominio y seleccionamos un dominio que nos
proporciona No-Ip,
Por ejemplo de acuerdo a lo que llene, el
hostname de mi servidor FTP es vcoregames.myftp.org
- Host
Type
– Seleccionaremos DNS Host(A), el cual nos asocia la dirección IP de nuestro
servidor a nuestro host.
Los Tipos son los siguientes:
DNS Host (A): Esta
es la opción más común. Se asigna el nombre de host a una
dirección IP.
DNS Host (Round Robin): Esta
vinculación asigna el nombre de host a IPs múltiples. Sólo se utiliza para
el balanceo de carga basado en DNS (no es común).
DNS Alias (CNAME): Este asigna el
nombre de un host a otro host. Es útil para señalar muchas
máquinas al mismo lugar y actualizarlas fácilmente.
Port 80 Redirect: El re direccionamiento
del puerto 80 se utiliza para moverse por los ISPs que bloquean el
puerto 80 de entrada. Al utilizar el presente y tener
en funcionamiento el servidor web nos ayuda a que los usuarios pueden acceder
al sitio web sin tener que introducir el número de puerto en la
URL.
Web Redirect: Esta vinculación
asigna el nombre de host a una dirección URL. Sólo funcionan para
HTTP y no se puede utilizar para acceder remotamente a su ordenador.
El
uso de cada uno depende de la aplicación.
- IP
Address – Aquí en automático ponen tu IP actual, si llegara a
cambiar el cliente DNS se encarga de actualizar esta información.
Con
esto es suficiente, seleccionamos “Create Host” y listo.
Ahora
vamos con el cliente DNS su interface es la siguiente:
Configuración
- Edit
– Pondremos nuestro correo con el que nos registramos y la contraseña
- Select
Hosts – Aparecerán los hosts que hayamos creado en los pasos anteriores. En mi
caso solo aparece lo siguiente:
- Refresh
Now – Actualiza el registro que tiene de la anterior IP con la IP actual.
En
el menú File -> Preferences
Podemos
configurar el cliente para que se ejecute como un servicio de Windows o como un
programa de inicio, entre otras cosas, ideal en el caso de que queramos tener
activada esta aplicación todo el tiempo.
FileZilla FTP - Client y Server
FileZilla es libre, de código
abierto, multiplataforma FTP software, que consiste en FileZilla
Cliente y FileZilla Server. Los binarios están disponibles para
los de Windows, Linux y Mac OS X. Soporta FTP, SFTP y FTPS (FTP
sobre SSL / TLS).
FileZilla Client tiene soporte para SFTP (SSH File
Transfer Protocol) no está implementado en el servidor Filezilla.
FileZilla Server es un producto de la hermana del FileZilla
client. Se trata de un servidor FTP con el apoyo del mismo proyecto.
Soporta FTP y FTPS (FTP sobre SSL / TLS).
Descargaremos las 2 versiones Client y Server
Nota: FileZilla Server solo funciona en Windows
Este programa nos servirá para administrar de manera grafica nuestro
servidor, como los usuarios y contraseñas, carpetas que se puedan acceder vía
FTP, seguridad, control en las velocidades de transferencia, ofrece monitoreo
en tiempo real sobre las transferencias realizadas.
En la instalación te
pregunta sobre como el servidor debe de iniciar
Aquí dependerá de lo que se
requiera, si la finalidad de la maquina es que funcione como servidor de tiempo
completo, la primer opción es la adecuada, si no es así la ultima opción sirve
ya que controlas cuando iniciar el servicio.
De igual manera podemos
encender o para el servicio en el administrador de servicios de Windows.
Después de su instalación al
correr por primera vez el programa, nos aparecerá lo siguiente:
(A)
Damos Ok
Bien nuestro servidor
funciona, ahora solo queda, dar una contraseña al administrador, crear un
usuario y crear la carpeta a la cual accederá mediante FTP.
- La
Contraseña del Administrador – En edit->Settings
Nos
vamos a la opción de “Admin Interface settings” y le asignamos una nueva
contraseña. Damos Ok y cerramos la aplicación para verificar que funciona al
iniciar el programa no llenamos el campo de “Administration password”, al igual
que la imagen (A), nos debe de aparecer lo siguiente:
Bien volvemos a iniciar el programa pero ahora
con la contraseña.
- Usuario
– En edit->users, agregamos un usuario y le asignamos una contraseña.
Aquí
también podemos editar el límite de conexiones que puede tener un usuario y también
forzarlo a utilizar SSL. Es recomendable utilizar contraseñas fuertes.
- Carpeta
FTP – Después en “Shared Folders”
Agregamos
la ruta de la carpeta que queremos utilizar para el FTP, de preferencia una que
no contenga nada importante (Archivos de Programa, Mis Documentos, etc). Después
asignamos los privilegios que el usuario seleccionado puede realizar, como leer
(acceder) archivos, modificar archivos, borrar archivos, agregar archivos (opción
write debe estar activada), crear directorios, borrar directorios. El usuario
no puede salir de la carpeta que asignamos. Por ejemplo si asigno la carpeta
FTP “C:/Otro/FTP”, el usuario no puede acceder a la carpeta Otro o a al disco duro
C, solo puede navegar en la carpeta FTP y sus internas.
Para
verificar que funciona en nuestro navegador pondremos ftp://localhost/,
nos pediría usuario y contraseña y veremos lo que tiene dentro la carpeta que
asignamos.
Bien
nuestro servidor funciona. Si quisiéramos acceder a el
desde otra pc, por ejemplo en el navegador pondríamos (en mi caso)
Si fuera el acceso mediante
la consola de comandos seria
>ftp vcoregames.myftp.org
Filezilla
Client
Este programa nos sirve para
acceder a nuestro servidor ftp de manera gráfica
Aquí los campos que nos interesan
son:
- Servidor
– localhost o el registrado en No-Ip
- Usuario
- Contraseña
- Puerto
– Por default es el 21
Como podemos ver el programa
se divide en dos, el sitio local (nuestra maquina) y el sitio remoto (el
servidor).
Aquí las cosas son sencillas
de manejar, ya que puedes hacer lo mismo que en Windows al manipular tus
archivos (arrastrar y soltar, copiar, pegar, editar, etc) de un lado como en el
otro, pero en el sitio remoto dependerá de los permisos del usuario FTP.
Eso es todo en el siguiente
post aprenderemos a implementar una conexión segura mediante SSH, ya que de la
forma actual nuestros datos están expuestos en la red.