FTP (File Transfer Protocol) es un protocolo de transferencia de ficheros entre sistemas conectados a una red TCP basado en la arquitectura cliente-servidor, de manera que desde un equipo cliente nos podemos conectar a un servidor para descargar ficheros desde él o para enviarle nuestros propios 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. 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 fichero, se realiza en texto plano sin ningún tipo de encriptación, con lo que un posible atacante lo tiene muy fácil para capturar este tráfico, acceder al servidor, o apropiarse de los ficheros transferidos.
Para solucionar este problema son de gran utilidad aplicaciones como scp y sftp, incluidas en el paquete SSH, que permiten transferir ficheros pero cifrando todo el tráfico.
El servicio utiliza los puertos 20 y 21:
-El puerto 20 es utilizado para el flujo de datos entre cliente y servidor.
-El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor.
Voy a explicar como instalar y configurar Vsftpd en Fedora o Centos(este es el que yo he utilizado). Si lo que buscas en un servidor para Windows puedes usar la version de evaluación de Serv-U(lo he utilizado y es bastante fácil de instalar y configurar) o FileZilla Server.
Vsftp
Vsftp(Very Secure Ftp), es un servidor ftp para sistemas UNIX. Tiene licencia GPL. Se caracteriza por ser seguro, rapido y sencillo de configurar.
1.-Instalación del servidor
Descargamos en instalamos la última versión de vsftpd, bien mediante rpm:
# rpm -Uvh vsftpd-xxxxxx.rpm
O bien utilizando la herramienta yum:
# yum install vsftpd
Ambas opciones dejarán configurado con las funciones básicas un servidor de ftp en nuestro sistema.
Si queremos que vsftp se inicie cada vez que arracamos el sistema:
# chkconfig -add vsftpd
# /etc/rc.d/init.d/vsftpd restart
Por defecto, el servidor ftp "escucha" en el puerto 21, así que la siguiente orden nos confirmará la ejecución correcta como demonio en el servidor:
# netstat -an|grep LISTEN|grep 21 , esto nos debe devolver:
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
2.-Configuración de vsftpd
El fichero de configuración de vsftpd lo podemos encontrar en /etc/vsftpd/vsftpd.conf.
Este fichero permite configurar multitud de opciones, algunas de ellas son:
- nonymous_enable=YES, permitir accesos anónimos.
- local_enable=YES, permitir los accesos de los usuarios locales del sistema.
- write_enable=YES, permitir escritura en el servidor.
- max_clients, max_per_ip, esto sirve para establecer el número máximo de lientes, totales y por dirección IP.
- ftpd_banner=xxxxxx, muestra un mensaje cuando conectamos al servidor.
- anon_max_rate, limitar la tasa de transferencia en bytes por segundo para los usuarios anónimos
- max_clients, número máximo de clientes que podrán acceder simultáneamente hacia el servidor.
- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
- touch /etc/vsftpd/vsftpd.chroot_list
- /etc/rc.d/init.d/vsftpd start iniciar servicio
- /etc/rc.d/init.d/vsftpd stop parar servicio
- /etc/rc.d/init.d/vsftpd restart reiniciar servicio
En la primera se ve el servicio funcionando desde un terminal y en la segunda desde una ventana de firefox.
Un saludo y hasta la próxima!!!