"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. 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.
PUERTOS QUE UTILIZA FTP:20 Y 21
PUERTO 20: Utilizado para el flujo de datos entre el cliente y el servidor (Por donde pasan los datos)
PUERTO 21:Para el flujo de control, es decir para enviar órdenes o comandos ejecutados por el cliente e interpretados por el shell.
Mientras se transfieren datos a través del flujo de datos, el flujo
de control permanece a la espera trabajando en una
arquitectura cliente -servidor.
ACCESO ANONIMO
Los servidores FTP anónimos ofrecen sus servicios libremente a todos
los usuarios, permiten acceder a sus archivos sin necesidad de tener un
'USER ID' o una cuenta de usuario. Es la manera más cómoda fuera del
servicio web de permitir que todo el mundo tenga acceso a cierta
información sin que para ello el administrador de un sistema tenga que
crear una cuenta para cada usuario.
Si un servidor posee servicio 'FTP anonymous' solamente con teclear
la palabra «anonymous», cuando pregunte por tu usuario tendrás acceso a
ese sistema. No se necesita ninguna contraseña preestablecida, aunque
tendrás que introducir una sólo para ese momento, normalmente se suele
utilizar la dirección de correo electrónico propia.
ACCESO DE USUARIO LOCAL
Si se desea tener privilegios de acceso a cualquier parte del sistema de
archivos del servidor FTP, de modificación de archivos existentes, y de
posibilidad de subir nuestros propios archivos, generalmente se suele
realizar mediante una cuenta de usuario. En el servidor se guarda la
información de las distintas cuentas de usuario que pueden acceder a él,
de manera que para iniciar una sesión FTP debemos introducir una autentificación (en inglés: login) y una contraseña (en inglés: password) que nos identifica unívocamente.
CLIENTE FTP BASADO EN WEB
Un «cliente FTP basado en Web» no es más que un cliente FTP al cual
podemos acceder a través de nuestro navegador web sin necesidad de tener
otra aplicación para ello. El usuario accede a un servidor web (HTTP)
que lista los contenidos de un servidor FTP. El usuario se conecta
mediante HTTP a un servidor web, y el servidor web se conecta mediante
FTP al servidor FTP. El servidor web actúa de intermediario haciendo
pasar la información desde el servidor FTP en los puertos 20 y 21 hacia
el puerto 80 HTTP que ve el usuario.
Siempre hay momentos en que nos encontramos fuera de casa, no
llevamos el ordenador portátil encima y necesitamos realizar alguna
tarea urgente desde un ordenador de acceso público, de un amigo, del
trabajo, la universidad, etc. Lo más común es que no estén instaladas
las aplicaciones que necesitamos y en muchos casos hasta carecemos de
los permisos necesarios para realizar su instalación. Otras veces
estamos detrás de un proxy o cortafuegos que no nos permite acceder a
servidores FTP externos
ACCESO INVITADO
El acceso sin restricciones al servidor que proporcionan las cuentas
de usuario implica problemas de seguridad, lo que ha dado lugar a un
tercer tipo de acceso FTP denominado invitado (guest), que se puede
contemplar como una mezcla de los dos anteriores.
La idea de este mecanismo es la siguiente: se trata de permitir que
cada usuario conecte a la máquina mediante su login y su password, pero
evitando que tenga acceso a partes del sistema de archivos que no
necesita para realizar su trabajo, de esta forma accederá a un entorno
restringido, algo muy similar a lo que sucede en los accesos anónimos,
pero con más privilegios.
MODOS DE CONEXIÓN CLIENTE FTP
FTP admite dos modos de conexión del cliente. Estos modos se denominan activo
(o Estándar, o PORT, debido a que el cliente envía comandos tipo PORT
al servidor por el canal de control al establecer la conexión) y pasivo
(o PASV, porque en este caso envía comandos tipo PASV). Tanto en el
modo Activo como en el modo Pasivo, el cliente establece una conexión
con el servidor mediante el puerto 21, que establece el canal de control.
MODO ACTIVO
En modo Activo, el servidor siempre crea el canal de datos en su
puerto 20, mientras que en el lado del cliente el canal de datos se
asocia a un puerto aleatorio mayor que el 1024. Para ello, el cliente
manda un comando PORT al servidor por el canal de control indicándole
ese número de puerto, de manera que el servidor pueda abrirle una
conexión de datos por donde se transferirán los archivos y los listados,
en el puerto especificado.
Lo anterior tiene un grave problema de seguridad, y es que la máquina
cliente debe estar dispuesta a aceptar cualquier conexión de entrada en
un puerto superior al 1024, con los problemas que ello implica si
tenemos el equipo conectado a una red insegura como Internet. De hecho,
los cortafuegos
que se instalen en el equipo para evitar ataques seguramente rechazarán
esas conexiones aleatorias. Para solucionar esto se desarrolló el modo pasivo.
MODO PASIVO
Cuando el cliente envía un comando PASV sobre el canal de control, el
servidor FTP le indica por el canal de control, el puerto (mayor a 1023
del servidor. Ejemplo:2040) al que debe conectarse el cliente. El
cliente inicia una conexión desde el puerto siguiente al puerto de
control (Ejemplo: 1036) hacia el puerto del servidor especificado
anteriormente (Ejemplo: 2040).1
Antes de cada nueva transferencia tanto en el modo Activo como en el
Pasivo, el cliente debe enviar otra vez un comando de control (PORT o
PASV, según el modo en el que haya conectado), y el servidor recibirá
esa conexión de datos en un nuevo puerto aleatorio (si está en modo
pasivo) o por el puerto 20 (si está en modo activo). En el protocolo FTP
existen 2 tipos de transferencia en ASCII y en binarios.
LINEA DE COMANDOS SERVIDOR FTP
COMANDO FUNCIÓN |
---|
open servidor | Inicia una conexión con un servidor FTP. |
close disconnect | Finaliza una conexión FTP sin cerrar el programa cliente. |
bye o quit | Finaliza una conexión FTP y la sesión de trabajo con el programa cliente. |
cd directorio | Cambia el directorio de trabajo en el servidor. |
delete archivo | Borra un archivo en el servidor |
mdelete patrón | Borra múltiples archivos basado en un patrón que se aplica al nombre. |
dir | Muestra el contenido del directorio en el que estamos en el servidor. |
get archivo | Obtiene un archivo |
noop No Operation | Se le comunica al servidor que el cliente está en modo de no operación, el servidor usualmente responde con un «ZZZ» y refresca el contador de tiempo inactivo del usuario. |
mget archivos | Obtiene múltiples archivos |
lcd directorio | Cambia el directorio de trabajo local. |
ls | Muestra el contenido del directorio en el servidor. |
prompt | Activa/desactiva la confirmación por parte del usuario de la ejecución de comandos. Por ejemplo al borrar múltiples archivos. |
put archivo | Envía un archivo al directorio activo del servidor. |
mput archivos | Envía múltiples archivos. |
pwd | Muestra el directorio activo en el servidor. |
rename archivo | Cambia el nombre a un archivo en el servidor. |
rmdir directorio | Elimina un directorio en el servidor si ese directorio está vacío. |
status | Muestra el estado actual de la conexión. |
bin- binary | Activa el modo de transferencia binario. |
ascii | Activa el modo de transferencia en modo texto ASCII. |
! | Permite salir a línea de comandos temporalmente sin cortar la conexión. Para volver, teclear exit en la línea de comandos. |
? nombre de comando | Muestra la información relativa al comando. |
? o help | Muestra una lista de los comandos disponibles. |
append nombre del archivo | Continua una descarga que se ha cortado previamente. |
bell | Activa/desactiva la reproducción de un sonido cuando ha terminado cualquier proceso de transferencia de archivos. |
glob | Activa/desactiva la visualización de nombres largos de nuestro PC. |
literal | Con esta orden se pueden ejecutar comandos del servidor de forma remota. Para saber los disponibles se utiliza: literal help. |
mkdir | Crea el directorio indicado de forma remota. |
quote | Hace la misma función que literal. |
send nombre del archivo | Envía el archivo indicado al directorio activo del servidor. |
user | Para cambiar nuestro nombre de usuario y contraseña sin necesidad de salir de la sesión ftp. |
CONFIGURACIÓN SERVIDOR FTP
"VSFTPD" Es denominado como el archivo de configuración global del ftp, en el cual se pueden configurar las lineas respectivas para obtener el buen funcionamiento del servidor ftp. Se deberán configurar las siguientes lineas.
NOTA: Recordemos que al quitarle el carácter # lo cual se llama " descomentar" de esta forma activamos su funcionamiento.
Anonymous_enable=NO: Se utiliza para definir si se permitirán los accesos anónimos delservidor. Establezca como valor YES - NO de acuerdo al resultado que se requiera. e utiliza para definir si se permitirán los accesos
Local_enable=YES: Para habilitar o denegar los accesos autenticados de los usuarios locales del
servidor FTP.
ftpd_banner=Bienvenido al Servidor FTP Linux : Este parámetro sirve para establecer un
mensaje de bienvenida el cual será mostrado cada vez que un usuario acceda al servidor de archivos.
Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar
esta función.
chroot_list_enable=YES |NO: Para limitar a los usuarios a trabajar en su propia carpeta
trabajo.
chroot_list_file=/etc/vsftpd/chroot_list: Habilitar este parámetro indicara al servidor
que el usuario solo podrá trabajar dentro de su carpeta de trabajo, para
ello solo habrá que teclear la palabra YES, en caso contrario use la palabra NO El siguiente parámetro se encuentra en función del anterior, de forma que si usted lo habilito también tendrá que habilitar este ultimo, para ello solo deberá borrar el carácter de numero (#).
ello solo habrá que teclear la palabra YES, en caso contrario use la palabra NO El siguiente parámetro se encuentra en función del anterior, de forma que si usted lo habilito también tendrá que habilitar este ultimo, para ello solo deberá borrar el carácter de numero (#).
EN LA LISTA "USER_LIST" AGREGAMOS LOS USUARIOS QUE QUEREMOS ENJAULAR.
EN LA LISTA CHROOT_LIST AGREGAREMOS LOS USUARIOS QUE NO QUERAMOS ENJAULAR
EN EL ARCHIVO "etc/passwd" ESPECIFICAMOS LA RUTA DE LOS USUARIOS
DE ESTA MANERA COMPROBAMOS SI LOS USUARIOS HAN SIDO ENJAULADOS CORRECTAMENTE
No hay comentarios:
Publicar un comentario