Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes...

48
Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y

Transcript of Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes...

Page 1: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

Unidad 3: Servidor ftp

Ing. Efrain Padilla ValeraTaller de Sistemas Operativos para

Redes

Departamento de Sistemas y Computación

Page 2: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicDefinición

FTP (File Transfer Protocol) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP, 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.

Page 3: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicTCP/IP

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, o apropiarse de los archivos transferidos.

Page 4: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicEl Modelo FTP

En el modelo, el intérprete de protocolo (PI) de usuario, inicia la conexión de control en el puerto 21. Las órdenes FTP estándar las genera el PI de usuario y se transmiten al proceso servidor a través de la conexión de control. Las respuestas estándar se envían desde el PI del servidor al PI de usuario por la conexión de control como respuesta a las órdenes.

Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación y estructura) y la naturaleza de la operación sobre el sistema de archivos (almacenar, recuperar, añadir, borrar, etc.). El proceso de transferencia de datos (DTP) de usuario u otro proceso en su lugar, debe esperar a que el servidor inicie la conexión al puerto de datos especificado (puerto 20 en modo activo o estándar) y transferir los datos en función de los parámetros que se hayan especificado.

Vemos también en el diagrama que la comunicación entre cliente y servidor es independiente del sistema de archivos utilizado en cada computadora, de manera que no importa que sus sistemas operativos sean distintos, porque las entidades que se comunican entre sí son los PI y los DTP, que usan el mismo protocolo estandarizado: el FTP.

También hay que destacar que la conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el tiempo que dura la conexión FTP

Page 5: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicEl Modelo FTP

Page 6: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicServidor FTP

Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet (aunque puede estar conectado a otros tipos de redes, LAN, MAN, etc.). Su función es permitir el intercambio de datos entre diferentes servidores/computadoras.

Por lo general, los programas servidores FTP no suelen encontrarse en los computadoras personales, por lo que un usuario normalmente utilizará el FTP para conectarse remotamente a uno y así intercambiar información con él.

Las aplicaciones más comunes de los servidores FTP suelen ser el alojamiento web, en el que sus clientes utilizan el servicio para subir sus páginas web y sus archivos correspondientes; o como servidor de backup (copia de seguridad) de los archivos importantes que pueda tener una empresa. Para ello, existen protocolos de comunicación FTP para que los datos se transmitan cifrados, como el SFTP (Secure File Transfer Protocol).

Page 7: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicCliente FTP

Cuando un navegador no está equipado con la función FTP, o si se quiere cargar archivos en una computadoras remota, se necesitará utilizar un programa cliente FTP. Un cliente FTP es un programa que se instala en la computadora del usuario, y que emplea el protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos.

Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, la computadora en que reside (servidor, en el caso de descarga de archivos), el ordenador al que se quiere transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en la que se encuentra.

Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica. Aunque muchos navegadores tienen ya integrado FTP, es más confiable a la hora de conectarse con servidores FTP no anónimos utilizar un programa cliente.

Page 8: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicModos de conexión del 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.

Page 9: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicModos de conexión del cliente FTP

Modo Pasivo Cuando el cliente envía un comando PASV sobre el canal de control, el servidor

FTP abre un puerto efímero (cualquiera entre el 1024 y el 5000) e informa de ello al cliente FTP para que, de esta manera, sea el cliente quien conecte con ese puerto del servidor y así no sea necesario aceptar conexiones aleatorias inseguras para realizar la transferencia de datos.

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).

Page 10: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicProgramas que funcionan como

servidor ftpAceFTPCoreFTPFileZillaSmartFTPWS_FTPLE

Page 11: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicServidores FTP

Red Hat Enterprise Linux se entrega con dos servidores FTP diferentes: Acelerador de Contenidos Red Hat — Un servidor

Web basado en el kernel que ofrece un servidor web y servicios FTP de alto rendimiento. Puesto que la velocidad es su objetivo principal de diseño, su funcionalidad es limitada y solamente se ejecuta como FTP anónimo. Para más información sobre la configuración y administración del Acelerador de Contenidos Red Hat, consulte la documentación disponible en línea en http://www.redhat.com/docs/manuals/tux/.

vsftpd — un demonio FTP rápido y seguro, preferido para Red Hat Enterprise Linux. El resto de este capítulo se enfoca en vsftpd.

Page 12: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicvsftpd

El demonio FTP vsftpd (o Very Secure FTP Daemon) está diseñado desde la base para ser rápido, estable y lo más importante, seguro. Su habilidad para manejar grandes números de conexiones de forma eficiente y segura es lo que hace que vsftpd sea el único FTP independiente distribuido con Red Hat Enterprise Linux.

El modelo de seguridad utilizado por vsftpd tiene tres aspectos principales:

• Clara separación de procesos privilegiados y sin privilegios — Procesos separados manejan tareas diferentes y cada uno de estos procesos se ejecuta con los privilegios mínimos requeridos para la tarea.

• Las tareas que requieren altos privilegios son manejadas por procesos con los mínimos privilegios necesarios — Influenciando las compatibilidades encontradas en la biblioteca libcap, las tareas que usualmente requieren privilegios de superusuario se pueden ejecutar de forma más segura desde un proceso menos privilegiado.

Page 13: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicvsftpd

• La mayoría de los procesos se ejecutan enjaulados en un ambiente chroot — Siempre que sea posible, se cambia la raíz de los procesos al directorio compartido; este directorio se considera luego como la jaula chroot. Por ejemplo, si el directorio /var/ftp/ es el directorio compartido principal, vsftpd reasigna /var/ftp/ al nuevo directorio raíz, conocido como /. Esto previene actividades maliciosas de cualquier hacker potencial en algún directorio que no están por debajo del nuevo directorio root.

Page 14: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicvsftpd

El uso de estas prácticas de seguridad tiene el efecto siguiente en cómo vsftpd trata con las peticiones:

El proceso padre se ejecuta con el mínimo de privilegios requerido — El proceso padre calcula dinámicamente el nivel de privilegios requerido para minimizar el nivel de riesgos. Los procesos hijo manejan la interacción directa con los clientes FTP y se ejecutan casi sin ningún privilegio.

Todas las operaciones que requieren altos privilegios son manejadas por un pequeño proceso padre — Similar a Servidor Apache HTTP, vsftpd lanza procesos hijos sin privilegios para manejar las conexiones entrantes. Esto permite al proceso padre privilegiado, ser tan pequeño como sea posible y manejar relativamente pocas tareas.

El proceso padre no confía en ninguna de las peticiones desde procesos hijos sin privilegios — Las comunicaciones con procesos hijos se reciben sobre un socket y la validez de cualquier información desde un proceso hijo es verificada antes de proceder.

Page 15: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicvsftpd

La mayor parte de la interacción con clientes FTP la manejan procesos hijo sin privilegios en una jaula chroot. — Debido a que estos procesos hijo no tienen privilegios y solamente tienen acceso al directorio que está siendo compartido, cualquier proceso fallido solamente permitira al atacante acceder a los archivos compartidos. — El proceso padre calcula dinámicamente el nivel de privilegios requerido para minimizar el nivel de riesgos. Los procesos hijo manejan la interacción directa con los clientes FTP y se ejecutan casi sin ningún privilegio.

Page 16: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicInstalando el Servidor ftp

Para asegurarse que vsftpd esta instalado escribir el siguiente comando en la terminal# rpm -qa | grep vsftpd o# rpm -q vsftpd

De lo contrario#yum install vsftpdo# rpm -Uvh latest_vsftpd.rpm

Page 17: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicArchivos instalados con vsftpd

El RPM vsftpd instala el demonio (/usr/sbin/vsftpd), su archivo de configuración y otros archivos relacionados, así como también directorios FTP en el sistema.

/etc/rc.d/init.d/vsftpd — El script de inicialización (initscript) utilizado por el comando /sbin/service para iniciar, detener o volver a cargar vsftpd

/etc/pam.d/vsftpd — El archivo de configuración de los Pluggable Authentication Modules (PAM) para vsftpd. Este archivo define los requerimientos que debe cumplir un usuario para conectarse a un servidor FTP.

/etc/vsftpd/vsftpd.conf — El archivo de configuración para

vsftpd

/etc/vsftpd/ftpusers — Una lista de los usuarios que no tienen permitido conectarse a vsftpd. Por defecto esta lista incluye a los

usuarios root, bin y daemon, entre otros.

Page 18: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicArchivos instalados con vsftpd

/etc/vsftpd/user_list — Este archivo se puede configurar para negar o permitir el acceso a los usuarios listados, dependiendo de si la directriz userlist_deny está configurada a YES (por defecto) o a NO en /etc/vsftpd/vsftpd.conf. Si se utiliza /etc/vsftpd.user_list para permitir acceso a los usuarios, los nombres de usuarios listados no deben aparecer en /etc/vsftpd.ftpusers.

El directorio /var/ftp/ — El directorio que contiene los archivos servidos por vsftpd. También contiene el directorio /var/ftp/pub/ para los usuarios anónimos. Ambos directorios están disponibles para la lectura de todos, pero sólo el superusuario o root puede escribir en el.

Page 19: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicIniciar y detener vsftpd

Para iniciar el servidor, escriba como usuario root, lo siguiente: #/sbin/service vsftpd startparar#/sbin/service vsftpd stopreiniciar#/sbin/service vsftpd restart

La opción condrestart (reinicio condicional) solamente arranca vsftpd si está ejecutándose en ese momento. Esta opción es muy útil para scripts, puesto que no arranca el demonio si este no se está ejecutando.

#/sbin/service vsftpd condrestart

Page 20: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Opciones de configuración vsftpd

Toda la configuración de vsftpd es manejada por su archivo de configuración, /etc/vsftpd/vsftpd.conf. Cada directriz está en su propia línea dentro del archivo y sigue el formato siguiente:

sintaxis<directive>=<value> Para cada directriz, reemplace <directive> con una directriz válida y <value> con un valor válido.

ImportanteNo deben existir espacios entre la <directive>, el símbolo de igualdad y el <value> en una directriz. Se debe colocar el símbolo de almohadilla (#) antes de una línea en comentarios. El demonio ignorará cualquier línea en comentarios.

Page 21: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Directivas de Opciones de demonios

La lista siguiente presenta las directrices que controlan el comportamiento general del demonio vsftpd. listen — Cuando está activada, vsftpd se ejecuta en modo

independiente. Red Hat Enterprise Linux configura este valor a YES. Esta directriz no se puede utilizar en conjunto con la directriz listen_ipv6. El valor predeterminado es NO.

listen_ipv6 — Cuando esta directriz está activada vsftpd se ejecuta en modo independiente, pero solamente escucha a los sockets IPv6. Esta directriz no se puede utilizar junto con la directriz listen. El valor predeterminado es NO.

session_support — Si está activada, vsftpd intentará mantener sesiones de conexión para cada usuario a través de Pluggable Authentication Modules (PAM). Si no es necesario hacer sesiones de conexión, el desactivar esta opción hace que vsftpd se ejecute con menos procesos y privilegios más bajos. El valor por defecto es YES.

Page 22: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de conexión y control de

acceso anonymous_enable — Al estar activada, se permite que los

usuarios anónimos se conecten. Se aceptan los nombres de usuario anonymous y ftp. El valor por defecto es YES.

banned_email_file — Si la directriz deny_email_enable tiene el valor de YES, entonces esta directriz especifica el archivo que contiene una lista de contraseñas de correo anónimas que no tienen permitido acceder al servidor. El valor predeterminado es /etc/vsftpd.banned_emails.

banner_file — Especifica un archivo que contiene el texto que se mostrará cuando se establece una conexión con el servidor. Esta opción se sobrepone cualquier texto especificado en la directriz ftpd_banner. Esta directriz no tiene un valor predeterminado.

cmds_allowed — Especifica una lista delimitada por comas de los comandos FTP que permite el servidor. Se rechaza el resto de los comandos. Esta directriz no tiene un valor predeterminado.

Page 23: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de conexión y control de

acceso deny_email_enable — Si está activada, se le niega el acceso al servidor a

cualquier usuario anónimo que utilice contraseñas de correo especificadas en /etc/vsftpd.banned_emails. Se puede especificar el nombre del archivo al que esta directriz hace referencia usando la directriz banned_email_file. El valor predeterminado es NO.

ftpd_banner — Si está activada, se muestra la cadena de caracteres especificada en esta directriz cuando se establece una conexión con el servidor. banner_file puede sobreescribir esta opción. Por defecto, vsftpd muestra su pancarta estándar.

local_enable — Al estar activada, los usuarios locales pueden conectarse al sistema. El valor por defecto es YES.

pam_service_name — Especifica el nombre de servicio PAM para vsftpd. El valor predeterminado es ftp, sin embargo, bajo Red Hat Enterprise Linux, el valor es vsftpd.

tcp_wrappers — Al estar activada, se utilizan TCP wrappers para otorgar acceso al servidor. También, si el servidor FTP está configurado en múltiples direcciones IP, la opción VSFTPD_LOAD_CONF se puede utilizar para cargar diferentes archivos de configuración en la dirección IP solicitada por el cliente. El valor predeterminado es YES

Page 24: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de conexión y control de

acceso userlist_deny — Cuando se utiliza en combinación con la directriz

userlist_enable y con el valor de NO, se les niega el acceso a todos los usuarios locales a menos que sus nombres esten listados en el archivo especificado por la directriz userlist_file. Puesto que se niega el acceso antes de que se le pida la contraseña al cliente, al configurar esta directriz a NO previene a los usuarios locales a proporcionar contraseñas sin encriptar sobre la red. El valor por defecto es YES.

userlist_enable — Cuando está activada, se les niega el acceso a los usuarios listados en el archivo especificado por la directriz userlist_file. Puesto que se niega el acceso al cliente antes de solicitar la contraseña, se previene que los usuarios suministren contraseñas sin encriptar sobre la red. El valor predeterminado YES.

userlist_file — Especifica el archivo al que vsftpd hace referencia cuando la directriz userlist_enable está activada. El valor predeterminado es /etc/vsftpd.user_list y es creado durante la instalación.

cmds_allowed — Especifica una lista separada por comas de los comandos FTP que permite el servidor. Cualquier otro comando es rechazado. Esta directriz no tiene un valor predeterminado.

Page 25: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones del usuario local

La siguiente es una lista de las directrices que caracterizan la forma en que los usuarios locales acceden al servidor. Para utilizar estas opciones, la directriz local_enable debe estar a YES. chmod_enable — Cuando está activada, se permite el

comando FTP SITE CHMOD para los usuarios locales. Este comando permite que los usuarios cambien los permisos en los archivos. El valor por defecto es YES.

chroot_list_enable — Cuando está activada, se coloca en una prisión de chroot a los usuarios locales listados en el archivo especificado en la directriz chroot_list_file.

Si se utiliza en combinación con la directriz chroot_local_user, los usuarios locales listados en el archivo especificado en la directriz chroot_list_file, no se colocan en una prisión chroot luego de conectarse. El valor predeterminado es NO.

Page 26: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones del usuario local

chroot_list_file — Especifica el archivo que contiene una lista de los usuarios locales a los que se hace referencia cuando la directriz chroot_list_enable está en YES. El valor por defecto es /etc/vsftpd.chroot_list.

chroot_local_user — Si está activada, a los usuarios locales se les cambia el directorio raíz (se hace un chroot) a su directorio principal luego de la conexión. El valor predeterminado es NO. Aviso: Al activar chroot_local_user se abren varios problemas de seguridad, especialmente para los usuarios con privilegios para hacer cargas. Por este motivo, no se recomienda su uso.

guest_enable — Al estar activada, todos los usuarios anónimos se conectan como guest, el cual es el usuario local especificado en la directriz guest_username. El valor predeterminado es NO.

guest_username — Especifica el nombre de usuario al cual guest está asignado. El valor por defecto es ftp

Page 27: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones del usuario local

local_root — Especifica el directorio al cual vsftpd se cambia después de que el usuario se conecta. Esta directriz no tiene un valor predeterminado.

local_umask — Especifica el valor de umask para la creación de archivos. Observe que el valor por defecto está en forma octal (un sistema numérico con base ocho), que incluye un prefijo de "0". De lo contrario el valor es tratado como un valor entero de base 10. El valor por defecto 022.

passwd_chroot_enable — Cuando se activa junto con la directriz chroot_local_user, vsftpd cambia la raiz de los usuarios locales basado en la ocurrencia de /./ en el campo del directorio principal dentro de /etc/passwd. El valor predeterminado es NO.

user_config_dir — Especifica la ruta a un directorio que contiene los archivos de configuración con los nombres de los usuarios locales. Contiene información específica sobre ese usuario. Cualquier directriz en el archivo de configuración del usuario ignora aquellas encontradas en /etc/vsftpd/vsftpd.conf. Esta directriz no tiene un valor predeterminado

Page 28: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de directorio

La siguiente es una lista de directrices que afectan a los directorios. dirlist_enable — Al estar activada, los usuarios pueden ver los

listados de directorios. El valor por defecto es YES.

dirmessage_enable — Al estar activada, cada vez que un usuario entra en un directorio con un archivo de mensaje. Este mensaje se encuentra dentro del directorio al que se entra. El nombre de este archivo se especifica en la directriz message_file y por defecto es .message. El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux el valor está configurado a YES.

force_dot_files — Al estar activada, se listan en los listados de directorios los mensajes que comienzan con un punto (.), a excepción de los archivos . y ... El valor predeterminado es NO.

hide_ids — Cuando está activada, todos los listados de directorios muestran ftp como el usuario y grupo para cada archivo. El valor predeterminado es NO.

Page 29: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de directorio

message_file — Especifica el nombre del archivo de mensaje cuando se utiliza la directriz dirmessage_enable. El valor predeterminado es .message.

text_userdb_names — Cuando está activado, se utilizan los nombres de usuarios y grupos en lugar de sus entradas UID o GID. Al activar esta opción puede que reduzca el rendimiento del servidor. El valor predeterminado es NO.

use_localtime — Al estar activada, los listados de directorios revelan la hora local para el computador en vez de GMT. El valor predeterminado es NO

Page 30: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Opciones de transferencia de archivos

download_enable — Cuando está activada, se permiten las descargas de archivos. El valor por defecto es YES.

chown_uploads — Si está activada, todos los archivos cargados por los usuarios anónimos pertenecen al usuario especificado en la directriz chown_username. El valor predeterminado es NO.

chown_username — Especifica la propiedad de los archivos cargados anónimamente si está activada la directriz chown_uploads. El valor predeterminado es root.

write_enable — Cuando está activada, se permiten los comandos FTP que pueden modificar el sistema de archivos, tales como DELE, RNFR y STOR. El valor por defecto es YES.

Page 31: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de conexión

A continuación se presenta una lista con las directrices que afectan el comportamiento de conexión de vsftpd. dual_log_enable — Cuando se activa en conjunto con

xferlog_enable, vsftpd escribe simultáneamente dos archivos: un registro compatible con wu-ftpd al archivo especificado en la directriz xferlog_file (por defecto /var/log/xferlog) y un archivo de registro estándar vsftpd especificado en la directriz vsftpd_log_file (por defecto /var/log/vsftpd.log). El valor predeterminado es NO.

log_ftp_protocol — Cuando está activado en conjunto con xferlog_enable y con xferlog_std_format configurada a NO, se registran todos los comandos y respuestas. Esta directriz es muy útil para propósitos de depuración. El valor predeterminado es NO.

syslog_enable — Cuando se activa en conjunto con xferlog_enable, todos los registros que normalmente se escriben al archivo estándar vsftpd especificado en la directriz vsftpd_log_file, se envían al registro del sistema bajo la facilidad FTPD. El valor predeterminado es NO.

Page 32: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de conexión

vsftpd_log_file — Especifica el archivo de registro de vsftpd. Para que se utilice este archivo, xferlog_enable debe estar activado y xferlog_std_format debe ser bien sea NO o, si está en YES, entonces dual_log_enable debe estar activado. Es importante resaltar que si syslog_enable está en YES, se utiliza el registro del sistema en lugar del archivo especificado en esta directriz. El valor por defecto es /var/log/vsftpd.log.

xferlog_enable — Cuando se activa, vsftpd registra las conexiones (solamente formato vsftpd) y la información de transferencia, al archivo de registro especificado en la directriz vsftpd_log_file (por defecto es /var/log/vsftpd.log). Si xferlog_std_format está configurada a YES, se registra la información de transferencia de archivo pero no las conexiones y en su lugar se utiliza el archivo de registro especificado en xferlog_file (por defecto /var/log/xferlog). Es importante observar que se utilizan ambos archivos y formatos de registro si dual_log_enable tiene el valor de YES. El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux el valor está configurado a YES.

Page 33: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de conexión

xferlog_file — Especifica el archivo de registro compatible con wu-ftpd. Para que se utilice este archivo, xferlog_enable debe estar activado y xferlog_std_format debe tener el valor de YES. También se utiliza si dual_log_enable tiene el valor de YES. El valor por defecto es /var/log/xferlog.

xferlog_std_format — Cuando se activa en combinación con xferlog_enable, sólo se escribe un archivo de registro compatible con wu-ftpd al archivo especificado en la directriz xferlog_file (por defecto /var/log/xferlog). Es importante resaltar que este archivo solamente registra transferencias de archivos y no las conexiones al servidor. El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux el valor está configurado a YES.

Page 34: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de red

Lo siguiente lista las directrices que afectan cómo vsftpd interactua con la red. accept_timeout — Especifica la cantidad de tiempo para un cliente

usando el modo pasivo para establecer una conexión. El valor por defecto 60.

anon_max_rate — Especifica la cantidad máxima de datos transmitidos por usuarios anónimos en bytes por segundo. El valor por defecto es 0, lo que no limita el ratio de transferencia.

connect_from_port_20 — Cuando está activada, vsftpd se ejecuta con privilegios suficientes para abrir el puerto 20 en el servidor durante las transferencias de datos en modo activo. Al desactivar esta opción, se permite que vsftpd se ejecute con menos privilegios, pero puede ser incompatible con algunos clientes FTP.

El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux el valor está configurado a YES.

connect_timeout — Especifica la cantidad máxima de tiempo que un cliente usando el modo activo tiene para responder a una conexión de datos, en segundos.

El valor por defecto 60.

Page 35: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de red

data_connection_timeout — Especifica la cantidad máxima de tiempo que las conexiones se pueden aplazar en segundos. Una vez lanzado, se cierra la conexión con el cliente remoto. El valor predeterminado es 300.

ftp_data_port — Especifica el puerto utilizado por las conexiones de datos activas cuando connect_from_port_20 está configurado a YES. El valor predeterminado es 20.

idle_session_timeout — Especifica la cantidad máxima de tiempo entre comandos desde un cliente remoto. Una vez disparado, se cierra la conexión al cliente remoto. El valor predeterminado es 300.

listen_address — Especifica la dirección IP en la cual vsftpd escucha por las conexiones de red. Esta directriz no tiene un valor predeterminado

listen_address6 — Especifica la dirección IPv6 en la cual vsftpd escucha por conexiones de red cuando listen_ipv6 está configurada a YES. Esta directriz no tiene un valor predeterminado.

Page 36: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de red

listen_port — Especifica el puerto en el cual vsftpd escucha por conexiones de red. El valor predeterminado es 21.

local_max_rate — Especifica la máxima tasa de transferencia de datos para los usuarios locales conectados en el servidor en bytes de segundo. El valor por defecto es 0, lo que no limita la tasade transferencia.

max_clients — Especifica el número máximo de clientes simultáneos que tienen permitido conectarse al servidor cuando se ejecuta en modo independiente. Cualquier conexión adicional resultará en un mensaje de error. El valor predeterminado es 0, lo que no limita las conexiones.

max_per_ip — Especifica el máximo número de clientes que tienen permitido conectarse desde la misma dirección IP fuente. El valor predeterminado es 0, lo que no limita las conexiones.

Page 37: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de red

pasv_address — Especifica la dirección IP para la IP del lado público del servidor para los servidores detrás de cortafuegos Network Address Translation (NAT). Esto permite que vsftpd entregue la dirección correcta de retorno para las conexiones pasivas. Esta directriz no tiene un valor predeterminado.

pasv_enable — Cuando está activa, se permiten conexiones en modo pasivo. El valor por defecto es YES.

pasv_max_port — Especifica el puerto más alto posible enviado a los clientes FTP para las conexiones en modo pasivo. Esta configuración es utilizada para limitar el intervalo de puertos para que las reglas del cortafuegos sean más fáciles de crear. El valor predeterminado es 0, lo que no limita el rango de puertos pasivos más alto. El valor no puede exceder de 65535.

pasv_min_port — Especifica el puerto más bajo posible para los clientes FTP para las conexiones en modo pasivo. Esta configuración es utilizada para limitar el intervalo de puertos para que las reglas del cortafuego sean más fáciles de implementar. El valor predeterminado es 0, lo que no limita el intervalo de puertos pasivos más bajo. El valor no debe ser menor que 1024.

Page 38: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicOpciones de red

pasv_promiscuous — Cuando está activada, las conexiones de datos no son verificadas para asegurarse de que se originan desde la misma dirección IP. Este valor solamente es útil para ciertos tipos de tunneling.

Atención no active esta opción a menos que sea absolutamente necesario ya que desactiva una funcionalidad de seguridad muy importante la cual verifica que las conexiones en modo pasivo partan desde la misma dirección IP que la conexìón de control que inicia la transferencia de datos.El valor predeterminado es NO.

port_enable — Cuando está activada, se permiten las conexiones en modo activo. El valor por defecto es YES.

Page 39: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicEjemplo:

si tenemos montado un servidor Web para que los diseñadores y webmasters puedan dejar allí sus creaciones sin molestar a los administradores, nosotros. Con este objetivo, vamos a montar un servidor ftp.

Usuario: client1Acceso a su directorio: /var/www/dominio1Sin shell en el sistema y en un entorno chroot

Usuario: client2Acceso a su directorio: /var/www/dominio2Sin shell en el sistema y en un entorno chroot

Usuario: webmasterAcceso a su directorio: /var/wwwSin shell en el sistema y en un entorno chroot

Page 40: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicEjemplo:

Preparación del sistema

Antes de instalar el servidor ftp vamos a crear los usuarios y securizarlos para que tengan los mínimos permisos y sólo puedan hacer lo que nosotros definamos.

Crearemos un grupo llamado ftp al cual asociaremos los usuarios.

# groupadd ftp

Creamos los usuarios con sus correspondientes características.

#useradd -g ftp -d /var/www/dominio1 -c " Cliente 1 " client1#useradd -g ftp -d /var/www/dominio2 -c " Cliente 2 " client2#useradd -g ftp -d /var/www -c " webmaster " webmaster

Les asignamos un password a los usuarios con el comando passwd. Si no tiene password no funcionará.Ahora creamos una shell fantasma en el directorio correspondiente.#mkdir /bin/ftp

Page 41: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicEjemplo:

Editamos el archivo/etc/shells y la añadimos en la ultima línea /bin/ftp

Editamos el archivo /etc/passwd y buscamos las líneas donde están definidos los usuarios que hemos creado antes y les añadimos el shell falso:client1:x:501:50: Cliente 1 :/var/www/dominio1:/bin/ftpclient2:x:502:50: Cliente 2 :/var/www/dominio2:/bin/ftpwebmaster:x:503:50: webmaster :/var/www:/bin/ftp

Page 42: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicConfiguración del servidor

El archivo de configuración del servidor se encuentra en /etc/vsftpd/vsftpd.conf. Lo editamos para configurarlo a nuestro gusto y objetivo. El contenido es algo parecido, buscamos las líneas indicadas y las modificamos:

# Example config file /etc/vsftpd/vsftpd.conf#Escuchandolisten=YES#................................................# Desactivamos el acceso anónimoanonymous_enable=NO## Descomentamos la línea para que se puedan conectarlocal_enable=YES## Permitimos a usuarios locales escribir

write_enable=YES#

Page 43: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicConfiguración del servidor

# APLICA CONFIGURACIÓN UMASKlocal_umask=003#Mensajes welcomedirmessage_enable=YES

## Activate logging of uploads/downloads.xferlog_enable=YES## Make sure PORT transfer connections originate from port 20 (ftp-data).connect_from_port_20=YES............................## You may override where the log file goes if you like. The default is shown# below.xferlog_file=/var/log/vsftpd.log## If you want, you can have your log file in standard ftpd xferlog formatxferlog_std_format=YES

Page 44: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicConfiguración del servidor

# Se descomenta esto para crear una jaulachroot_local_user=YES# You may specify an explicit list of local users to chroot() to their home# directory. If chroot_local_user is YES, then this list becomes a list of# users to NOT chroot().#chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list## Debian customization# secure_chroot_dir=/var/run/vsftpd# This string is the name of the PAM service vsftpd will use.pam_service_name=vsftpd# This option specifies the location of the RSA certificate to use for SSL# encrypted connections.#rsa_cert_file=/etc/ssl/certs/vsftpd.pemuserlist_enable=YEStcp_wrappers=YESuserlist_deny=NO

Page 45: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicConfiguración del servidor

A continuación creamos el archivo chroot_list el cual tendrá la lista de usuarios que no tendrán acceso al servidor:

# touch /etc/vsftpd/chroot_list

asignamos los datos a este archivo desde etc/password con el comando.

# cat /etc/passwd | awk -F: '{ print $1 }' > /etc/vsftpd/chroot_list

Esto nos genera un archivo con los login de usuarios del sistema del cual quitamos los que si queremos que tengan acceso y los ponemos en el archivo /etc/vsftpd/user_list.

Contenido de chroot_list# usuarios con no accesorootdaemonbinsyssync gamesmanlpmailnews

Page 46: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicConfiguración del servidor

vsftpd.user_list #usuarios con accesowebmasterclient1client2

Afinando aún más

Dentro del archivo de configuración (vsftpd.conf) algunas opciones interesantes que también podemos controlar son las siguientes:

#opciones de transferencia#ancho banda por usuario anónimo 5kbanon_max_rate=5100 #ancho de banda por usuario local 5kblocal_max_rate=5100#número máximo clientes simultáneosmax_clients=5#máximo conexiones por ipmax_per_ip=2#envía al sistemasyslog_enable=YESsession_support=YES

Page 47: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicPara entrar con el navegador

ftp://usuario:contraseña@localhost

Page 48: Unidad 3: Servidor ftp Ing. Efrain Padilla Valera Taller de Sistemas Operativos para Redes Departamento de Sistemas y Computaci ó n.

www.themegallery.com