GNU/Linux >> Tutoriales Linux >  >> Panels >> Webmin

Servidor WU-FTPD


En este capítulo el Servidor WU-FTPD para el protocolo FTP y se enumeran los pasos a seguir para configurarlo para muchas tareas comunes.

Contenido

Introducción a WU-FTPD

WU-FTPD (WU significa Universidad de Washington) es probablemente el servidor FTP de Unix más popular en Internet y se incluye de forma predeterminada con la mayoría de los sistemas operativos Unix y Linux. Su gran cantidad de opciones configurables lo hacen superior al servidor FTP 'clásico' o BSD que todavía usan algunas variantes de Unix, pero en mi opinión, no se implementa de manera tan flexible o limpia como ProFTPD, que se trata en el capítulo 40. Ese capítulo también tiene una breve introducción al protocolo FTP, que debe leer antes de continuar si no está familiarizado con conceptos como clientes y servidores FTP.

En su configuración predeterminada normal, WU-FTPD permitirá que cualquier usuario de Unix (excepto los usuarios del sistema) inicie sesión con sus nombres de usuario y contraseñas estándar y cargue, descargue y manipule archivos en el sistema del servidor con los mismos permisos que tendrían si estuvieran conectados a través de telnet o SSH. También se puede configurar para admitir inicios de sesión anónimos, de modo que cualquiera pueda conectarse sin necesidad de una cuenta válida de Unix, aunque los clientes anónimos generalmente están restringidos a un directorio determinado y no pueden cargar archivos.

El archivo de configuración principal de WU-FTPD se llama /etc/ftpaccess, pero también utiliza otros archivos como /etc/ftpusers y /etc/ftphosts. El archivo ftpaccess contiene una serie de directivas, una por línea, cada una de las cuales tiene un nombre y varios valores. Cada directiva establece una sola opción, como la ruta a un archivo de mensajes o un alias de directorio.

Al igual que ProFTPD, WU-FTPD se puede ejecutar como un proceso daemon independiente permanente o desde un súper servidor como inetd o xinetd. Por lo general, se usa la última opción, ya que esto elimina la necesidad de que un proceso de servidor adicional esté ejecutándose en todo momento esperando una conexión FTP. En lo que respecta a los clientes y el archivo de configuración, no hay diferencia entre ninguno de los dos modos aparte del rendimiento.

El módulo del servidor WU-FTPD

Para configurar el servidor FTP desde Webmin, haga clic en el icono *Servidor WU-FTPD* en la categoría Servidores. Si está correctamente instalado y funcionando, se mostrará la página principal del módulo, como se muestra en la Figura 41-1. Cada uno de los iconos te llevará a un formulario para configurar una clase de opciones configurables, como las relacionadas con el registro o los mensajes y banners.

No hecho

 Figure 41-1 “The WU-FTPD Server module” 

Si el módulo no puede encontrar el ejecutable del servidor WU-FTPD, aparecerá un mensaje de error como *El servidor FTP /usr/sbin/in.ftpd no se pudo encontrar en su sistema* o *El archivo de configuración del servidor FTP /etc/ftpaccess no existe * será mostrado. Por lo general, esto significa que el programa no está instalado; verifique el paquete wu-ftpd en su CD de distribución de Linux o sitio web e instálelo usando el módulo Paquetes de software, que se trata en el capítulo 12. También puede significar que el módulo está buscando en la ubicación incorrecta para el programa del servidor o el archivo de configuración. Si está seguro de que WU-FTPD está instalado, consulte la sección "Configuración del módulo del servidor WU-FTPD" más adelante en este capítulo para obtener información sobre cómo ajustar las rutas en las que Webmin los busca.

A veces, aunque WU-FTPD esté instalado, estará deshabilitado de forma predeterminada. Si ejecuta ftp localhost en el símbolo del sistema y recibe el mensaje de error Conexión rechazada, no se está ejecutando ningún servidor FTP. Esto puede deberse a que aún no se ha creado ningún servicio inetd o xinetd para FTP, o porque existe uno pero está deshabilitado. Siga las instrucciones a continuación para explicar cómo configurar o activar un servicio de superservidor para ProFTPD.

Si realmente necesita instalar WU-FTPD, primero debe eliminar cualquier otro servidor FTP (como ProFTPD o PureFTP) que esté instalado actualmente en su sistema. Asegúrese de eliminar todos sus procesos también, para que no quede nada escuchando en el puerto FTP. Puede verificar que el otro servidor se haya apagado por completo ejecutando ftp localhost en el símbolo del sistema; debe mostrarse el mensaje de error Conexión rechazada, que indica que no hay nada escuchando en el puerto 21.

Después de instalar WU-FTPD, deberá configurar inetd o xinetd para escuchar en el puerto FTP y ejecutar el programa del servidor. Antes de que pueda hacer esto, averigüe dónde se instaló realmente el programa en su sistema; por lo general, estará en /usr/sbin/in.ftpd, pero esto puede diferir según su sistema operativo.

Si su sistema utiliza el súper servidor superior xinetd, siga estas instrucciones para configurar el servicio FTP. Debido a que muchos paquetes incluyen un archivo de configuración /etc/xinetd.d para el servidor, es posible que algunos de los campos que se explican a continuación ya estén completados correctamente.

  1. Vaya a la categoría Redes de Webmin y haga clic en el icono *Servicios de Internet extendidos*. Si no existe, xinetd no está instalado y deberá configurar el servidor usando inetd en su lugar.
  2. En la página principal del módulo, busque un servicio existente llamado ftp o wu-ftpd. Si existe, haga clic en él; de lo contrario, siga las instrucciones Crear un nuevo servicio de Internet enlace encima o debajo de la tabla.
  3. En el Nombre del servicio campo, ingrese ftp (a menos que ya se haya rellenado).
  4. Asegúrese de se selecciona la opción en ¿Servicio habilitado? campo.
  5. Deje el Enlazar a la dirección campo establecido en Todos y el *Número de puerto* a Estándar o 21 .
  6. Seleccione Transmitir del Tipo de socket menú y Predeterminado o TCP del Protocolo lista.
  7. En el Servicio gestionado por campo, seleccione el programa Servidor e ingrese la ruta al ejecutable WU-FTPD con los argumentos –l –a (como /usr/sbin/in.ftpd –l -a ) en el cuadro de texto adyacente.
  8. En Ejecutar como usuario campo, ingrese raíz .
  9. Seleccione No para ¿Esperar hasta completar? campo.
  10. Deje todos los demás campos configurados con sus valores predeterminados y presione Guardar o Crear botón en la parte inferior del formulario.
  11. De vuelta en la página principal del módulo, haga clic en Aplicar cambios botón debajo de la lista de servicios.

Alternativamente, para configurar un servicio inetd para WU-FTPD utilizando el módulo Protocolos y servicios de Internet, siga estos pasos:

  1. Vaya a la categoría Redes de Webmin y haga clic en el icono *Protocolos y servicios de Internet*. Si no existe, su sistema probablemente esté usando xinetd.
  2. En la página principal del módulo, haga clic en ftp en la tabla *Servicios de Internet*. Si no está visible, ingrese ftp en el campo *Editar servicio* y presione el botón. De cualquier manera, se mostrará la misma página para editar el servicio de protocolo FTP.
  3. En el Programa del servidor sección, seleccione Programa habilitado .
  4. En el campo Programa , seleccione el Comando e ingrese la ruta completa al ejecutable del servidor WU-FTPD en el campo junto a él, como /usr/sbin/in.ftpd . En los argumentos campo, ingrese in.ftpd –l -a .
  5. Configure el modo de espera para No esperar y escriba raíz en Ejecutar como usuario campo. Todos los demás se pueden dejar sin cambios.
  6. Haga clic en Guardar y luego en la página principal del módulo presione Aplicar cambios .

Una vez que WU-FTPD se haya configurado para ejecutarse desde inetd o xinetd, puede probarlo utilizando el cliente FTP de Unix de línea de comandos para conectarse a su propio sistema. Simplemente ejecute ftp localhost y asegúrese de que puede iniciar sesión como un usuario que no sea root. Si no es así, revise sus archivos de registro (usando el módulo Registros del sistema, cubierto en el capítulo 13) para ver si hay algún mensaje de inetd o xinetd que pueda explicar qué salió mal.

Limitar quién puede iniciar sesión

En su configuración normal, WU-FTPD permitirá que cualquier usuario de Unix inicie sesión con la excepción de cuentas del sistema como root, bin y daemon. El usuario raíz casi siempre se niega de forma predeterminada porque el protocolo FTP no cifra las contraseñas a medida que se envían a través de la red, lo que significa que un inicio de sesión remoto como raíz podría exponer su contraseña a los atacantes. Para cambiar los usuarios y grupos que pueden iniciar sesión en su sistema, siga estos pasos:

  1. En la página principal del módulo, haga clic en Usuarios y clases para abrir el formulario que se muestra en la Figura 41-2.
  2. Agregar a los usuarios de Unix para denegar elimine las cuentas que desee evitar que utilicen su servidor FTP o elimine las que desee permitir. Esto actualizará el archivo /etc/ftpaccess, que es utilizado por otros servidores FTP como ProFTPD en caso de que algún día decida cambiar.
  3. Para denegar usuarios cuyos UID se encuentran dentro de ciertos rangos, complete los Usuarios de Unix y UID para denegar campo. Puede ingresar un rango de UID como %3000-4000 , que bloquearía a todos los usuarios con UID entre 3000 o 4000. O puede ingresar rangos como %-100 o %5000- que denegará a los usuarios con UID inferiores a 100 o superiores a 5000 respectivamente. Se pueden ingresar múltiples rangos, separados por espacios. Los nombres de usuario normales también se pueden usar en este campo, aunque esto tiene el mismo efecto que ponerlos en Usuarios de Unix para denegar campo.
  4. Para denegar a los usuarios cuyas ID de grupo principal se encuentran dentro de ciertos rangos, complete los grupos de Unix y GID para denegar campo. Nuevamente, puede ingresar rangos de ID como %100-200 o %-10 , así como nombres de grupos como usuarios . Solo cuenta la membresía del grupo principal:si un usuario es un miembro secundario de uno de los grupos enumerados, no será bloqueado.
  5. Para excluir a algunos usuarios o grupos de las listas de denegación definidas en los dos pasos anteriores, complete los Usuarios de Unix y UID para no denegar y Grupos Unix y GIDs que no se deben negar los campos. El primer campo aceptará rangos de UID o nombres de usuario, y el segundo rango de ID de grupo o nombres de grupo. Estos campos son útiles si desea permitir solo un par de usuarios mientras bloquea a todos los demás con un rango de UID que cubre todas las cuentas.
  6. Presiona Guardar en la parte inferior de la página para guardar y activar las nuevas restricciones de usuario.

No hecho

Figure 41-2 “The users and classes page” 

WU-FTPD normalmente también evitará que los usuarios cuyo shell no esté incluido en el archivo /etc/shells inicien sesión. Esto normalmente se hace para permitir la creación de cuentas que pueden iniciar sesión en un servidor POP3, pero no pueden conectarse a través de telnet, SSH o FTP. Desafortunadamente, no hay una opción de configuración de WU-FTPD que se pueda cambiar para desactivar esta verificación de shell. Está codificado en el programa o se aplica mediante el servicio ftp PAM que realmente se usa para autenticar a los usuarios.

Si WU-FTPD en su sistema usa PAM (como lo hace en la mayoría de las distribuciones de Linux), siga estos pasos para desactivar la comprobación de /etc/shells:

  1. Vaya al módulo de Autenticación PAM, que se puede encontrar en la categoría Sistema en el menú principal de Webmin.
  2. Haga clic en ftp o wu-ftpd servicio en la página principal.
  3. En el formulario de edición que aparece, haga clic en pam_shells.so en el módulo PAM columna en los Pasos de autenticación sección.
  4. Desde el Nivel de falla menú seleccione Opcional , de modo que el éxito o el fracaso de la comprobación del archivo de shells se ignore con fines de autenticación.
  5. Haga clic en Guardar botón. Los usuarios con un shell no válido no podrán iniciar sesión en su servidor FTP.

En otros sistemas operativos, los pasos anteriores son inútiles, ya que el módulo de autenticación PAM solo está disponible en Linux.

Configuración de FTP anónimo

Configurar WU-FTPD para aceptar inicios de sesión anónimos es un poco más complejo de lo que cabría esperar, debido al uso del comando ls para generar listados de directorios. Para que este comando (y otros usados ​​por el servidor) no puedan escapar del directorio al que están restringidos los clientes anónimos, el servidor usa la llamada del sistema chroot de Unix para restringirse a sí mismo y a todos los programas que ejecuta a ese directorio. Esto significa que el directorio raíz debe contener todos los programas, archivos y bibliotecas compartidas que necesitan ejecutar WU-FTPD y el comando ls.

De forma predeterminada, el directorio de inicio del ftp de usuario especial de Unix se utiliza como la raíz FTP anónima, pero se pueden asignar diferentes raíces a diferentes clases de clientes. Sin embargo, cualquiera que sea el directorio elegido, debe contener un subdirectorio bin con los comandos ls, gzip, tar, recompress, cpio y zcat. También debe tener un subdirectorio lib que contenga las bibliotecas compartidas que necesitan esos comandos, un subdirectorio etc con archivos passwd y group, y un directorio pub en el que se almacenan los archivos descargables.

Como puede imaginar, copiar todos estos archivos en su lugar y asegurarse de que funcionen es bastante complicado. Afortunadamente, muchas distribuciones de Linux que incluyen un paquete wu-ftpd también tienen un paquete llamado anonftp que coloca todos los archivos necesarios en el directorio de inicio del usuario de ftp. En la mayoría de los casos, todo lo que necesita hacer es instalar este paquete y WU-FTPD permitirá que los clientes inicien sesión de forma anónima.

Independientemente de los permisos en el directorio raíz, WU-FTPD siempre evitará que los clientes anónimos carguen, cambien el nombre o eliminen archivos. Todo lo que podrán hacer es descargar los archivos que coloque en el subdirectorio pub para su distribución pública.

Los inicios de sesión anónimos se pueden configurar aún más siguiendo estos pasos:

  1. Haga clic en FTP anónimo icono en la página principal del módulo.
  2. Los directorios raíz FTP anónimos table le permite especificar diferentes raíces para ser utilizadas para diferentes clases de clientes. Todos los directorios existentes (aparte del predeterminado de ~ftp) se enumeran en la tabla para su edición, y siempre habrá una fila vacía para agregar una nueva. Tan pronto como se agregue una entrada, reemplazará la predeterminada, así que asegúrese de agregarla explícitamente si desea que siga funcionando. Si desea agregar más de un directorio, deberá guardar y volver a abrir esta página para que aparezca una nueva fila en blanco. Cada fila tiene dos campos, a saber:Directorio En este campo debe ingresar la ruta completa a un directorio FTP anónimo válido (uno que contenga los subdirectorios etc, bin, lib y pub y todos los programas necesarios). Para la clase Desde este menú, debe elegir una clase de cliente para la que se debe usar el directorio, suponiendo que los clientes de esa clase inicien sesión de forma anónima. Si Alguno se selecciona, se usará para clientes que no estén en ninguna otra clase en esta tabla. Consulte la sección "Administración de clases de usuario" para obtener detalles sobre cómo definir sus propias clases.
  3. Cuando un usuario inicia sesión en su servidor FTP de forma anónima, aún debe proporcionar una contraseña aunque no se use para la autenticación. Por lo general, esta contraseña es la dirección de correo electrónico del usuario, que se puede usar para tener una idea aproximada de qué dominio provienen los clientes. Sin embargo, por razones de privacidad, muchos clientes FTP y navegadores modernos ya no envían una dirección de correo electrónico real, sino que inician sesión con una falsa como [email protected]. Puede configurar WU-FTPD para verificar el formato de las contraseñas de inicio de sesión anónimo para asegurarse de que se vean como direcciones de correo electrónico utilizando la Verificación de contraseña de FTP anónimo campo en esta página. Si Predeterminado está seleccionado, no se realizará ninguna comprobación. Sin embargo, si se elige la segunda opción, el nivel de comprobación depende de la elección que realice en su menú:Permitir cualquier cosa Se permite cualquier contraseña, incluso una en blanco (esto es lo mismo que el modo predeterminado). Debe contener @ La contraseña debe contener el símbolo @. Debe ser una dirección de correo electrónico RFC882 La contraseña debe parecerse a una dirección de correo electrónico válida, con letras y números antes y después de una @. El segundo menú determina si el servidor FTP solo advierte a los clientes que violan la verificación (si Advertir solo es elegido), o los bloquea por completo (si Denegar inicio de sesión está seleccionado).
  4. Para bloquear ciertas contraseñas anónimas por completo (incluso si son válidas), complete las Contraseñas de FTP anónimo para denegar campo con una lista de direcciones de correo electrónico completas o parciales. Esto puede ser útil para bloquear clientes FTP que están configurados de manera predeterminada para usar una dirección falsa. Sin embargo, recomiendo no usar esta función, ya que bloqueará a muchas personas, especialmente a aquellas que usan navegadores web.
  5. Presiona Guardar en la parte inferior de la página para activar la nueva configuración de FTP anónimo.

Gestionar clases de usuario

El servidor FTP clasifica a los clientes en clases según sus direcciones de origen y tipos de inicio de sesión. La clasificación se puede usar en varios lugares diferentes en la configuración de WU-FTPD para definir configuraciones que se aplican solo a ciertos clientes. También se puede usar para bloquear inicios de sesión no anónimos (o incluso todos los inicios de sesión) desde fuera de su red. Esto puede ser útil si solo desea permitir que ciertos hosts de confianza carguen datos en su servidor, pero permitir que cualquier persona en Internet inicie sesión de forma anónima para descargar.

Cada clase tiene un nombre, una lista de tipos de inicio de sesión y una lista de direcciones de clientes, nombres de host o redes. Solo los clientes que coinciden con los tipos de inicio de sesión y las direcciones se consideran en la clase, y si coincide más de una clase, se utiliza la primera. Los clientes que no pertenecen a ninguna clase no pueden usar el servidor FTP.

WU-FTPD reconoce los siguientes tres tipos de inicio de sesión:

Unix
Usuarios normales de Unix que pueden iniciar sesión a través de telnet o SSH y acceder a todos los archivos del sistema con sus permisos habituales.
Invitado
Usuarios de Unix que han sido designados como invitados, y esto está limitado a un directorio (generalmente su hogar) de la misma manera que lo son los usuarios anónimos. Consulte la sección "Configuración de usuarios invitados" para obtener más detalles.
Anónimo
Usuarios que inician sesión de forma anónima y, por lo tanto, están limitados a un directorio determinado.

Para definir y editar clases usando el módulo, siga estas instrucciones:

  1. Haga clic en Usuarios y clases icono en la esquina superior izquierda de la página principal del módulo. El formulario que se muestra en la Figura 41-2 aparecerá en su navegador.
  2. En la parte superior de la página hay una tabla etiquetada como Clases de usuario . Cada fila define una clase, y siempre habrá al menos una en la lista (por lo general, todas las clases que coinciden con todos los clientes). La tabla siempre tiene una sola fila vacía en la parte inferior para que agregue una nueva clase; si desea agregar más de una, deberá crearlas una a la vez. Puede editar las clases existentes cambiando sus campos o eliminar una clase borrando su campo de nombre. Sin embargo, asegúrese de no eliminarlos todos, ya que esto evitará que todos los usuarios inicien sesión. Los campos para cada clase son:Nombre de la clase Un nombre corto para esta clase que debe constar solo de letras y números, como homenet o de confianza . Más de una fila puede tener el mismo nombre de clase, y un cliente que coincida con el tipo de usuario y las direcciones en cualquier fila se considerará miembro de la clase. *Tipos de usuario *Los tipos de inicio de sesión que coincide con esta clase, como se explicó anteriormente. Debe seleccionar al menos una de las tres casillas de verificación. Direcciones coincidentes Este campo es donde puede ingresar las direcciones de los clientes que coinciden con la clase. Puede ingresar direcciones IP individuales (como 192.168.1.1 ), nombres de host (como www.foo.com ), direcciones IP comodín y nombres de host (como 10.254.1.* o *.ejemplo.com ) o incluso rutas a archivos que contienen más direcciones y nombres de host. Las entradas múltiples deben estar separadas por espacios. Entradas negadas como !*.foo.com incluso están permitidos, lo que coincidiría con todos los clientes cuyos nombres de host están fuera de foo.com dominio. Tenga cuidado al usar nombres de host, ya que WU-FTPD debe buscar los nombres de host de los clientes a partir de sus direcciones IP, cuyo resultado puede ser falsificado por un atacante.
  3. Cuando haya terminado de definir las clases, presione Guardar botón en la parte inferior del formulario. Ahora puede usarlos en otras páginas del módulo.

Denegar el acceso a los archivos

A veces es útil restringir los tipos de archivos que los usuarios pueden descargar, especialmente para clientes anónimos que no son de confianza. Puede bloquear el acceso a un nombre de archivo en cualquier directorio (como secret.txt ), una ruta absoluta (como /etc/passwd ) o incluso un directorio y todo su contenido (como /var/log ). Los caracteres comodín de shell * y ? también se puede usar en nombres de archivos y rutas, lo que proporciona flexibilidad adicional. Esto puede ser útil si desea proteger archivos que contienen información secreta o limitar la descarga de los clientes desde un directorio determinado (como /home ). Sin embargo, no hay forma de evitar la lista de directorios usando esta función.

Para configurar restricciones de descarga de nombre de archivo, los pasos a seguir son:

  1. En la página principal, haga clic en Límites y control de acceso para abrir el formulario que se muestra en la Figura 41-4.
  2. Cada fila en Denegar acceso a archivos table define una restricción de nombre de archivo único. Al igual que con otras tablas en este módulo, en la parte inferior de la tabla hay una sola fila en blanco para agregar un nuevo nombre de archivo o ruta, y si es la primera vez que usa esta función, una sola fila es todo lo que contendrá la tabla. De lo contrario, se enumerarán las restricciones existentes, lo que le permitirá editarlas o eliminarlas. Los campos de cada fila y sus significados son:Archivos para denegar Una lista de nombres de archivo o patrones relativos o absolutos para denegar el acceso, separados por espacios. Los caracteres comodín * y ? se puede usar para ambos, permitiéndole ingresar archivos como secret.* o /home/*/public_html . ¿Relativo a chroot? Si está seleccionado, cualquier ruta absoluta ingresada en el primer campo se considera relativa al directorio raíz FTP anónimo. Si No se elige, las rutas se consideran relativas al directorio raíz real. Denegar para clases En este campo debe seleccionar las casillas de verificación de las clases a las que se aplica la restricción. Consulte la sección "Administración de clases de usuario" para obtener más información sobre cómo agregar sus propias clases. Esto puede ser útil si desea bloquear el acceso de clientes anónimos a algún archivo, pero permitir el acceso a usuarios reales de Unix.
  3. El Permitir el acceso a los archivos incluso si está denegado La tabla tiene exactamente la misma estructura que la tabla de denegación, pero es para ingresar nombres de archivo y rutas a las que se debe permitir el acceso, incluso si son denegados por una entrada en la tabla anterior. Esto se puede usar para denegar el acceso a todo (introduciendo _*_ en un Archivos para denegar fila) y luego devolver los derechos de descarga solo en archivos que coincidan con un patrón (como *.html por ejemplo).
  4. Haga clic en Guardar en la parte inferior de la página para guardar y activar cualquier nueva restricción de archivos. Si desea agregar más de una entrada en cualquiera de las tablas, haga clic en el ícono *Límites y control de acceso* nuevamente para volver a mostrar el formulario y completar las nuevas filas vacías que aparecen.

No hecho

Figure 41-4 “The limits and access control form” 

También hay una función similar para restringir los nombres de los archivos que los clientes pueden cargar. Esto puede ser útil para bloquear la creación de archivos o directorios ocultos cuyos nombres comienzan con un punto, o nombres difíciles de comprender que contienen espacios y caracteres de control. Estos son a menudo utilizados por personas astutas para ocultar archivos en su servidor FTP anónimo si permite la carga. Debido a que las personas de confianza pueden tener buenas razones para crear dichos archivos, puede definir restricciones que se apliquen solo a usuarios anónimos o invitados.

Para agregar y editar límites de nombre de archivo de carga, siga estos pasos:

  1. En la página principal del módulo, haga clic en Permisos icono.
  2. En el formulario que aparece, Nombres de archivo de carga no permitidos La tabla en la parte inferior enumera los nombres de archivo que están permitidos y denegados para diferentes tipos de usuarios. Las restricciones existentes se pueden editar simplemente cambiando sus campos en la tabla, y se puede crear uno nuevo completando la última fila en blanco (que será todo lo que contiene la tabla si no ha usado este formulario antes). Las columnas de la tabla y los significados de sus campos son:Caracteres permitidos Una sola expresión regular de Perl que todos los archivos cargados deben coincidir. Por ejemplo, si ingresó ^[a-z]+$ , solo se permitirían nombres de archivo formados por letras minúsculas. Expresiones regulares de archivo para denegar Una lista separada por espacios de expresiones regulares que no están permitidas en los nombres de archivo. Un buen ejemplo es ^\. , que bloquea cualquier nombre que comience con un punto, lo que oculta el archivo. Tipos de usuario Los tipos de usuarios a los que se aplica esta restricción. A menudo querrá establecer límites más estrictos para los clientes anónimos que para los usuarios reales o invitados. Archivo de mensaje de error La ruta completa a un archivo que se enviará a cualquier cliente que intente cargar un archivo cuyo nombre no coincida con la expresión permitida o coincida con una de las expresiones denegadas.
  3. Como de costumbre, haga clic en Guardar en la parte inferior de la página para activar nuevas restricciones cuando haya terminado.

Si se define más de una restricción para el mismo tipo de usuario, se verificarán todas para determinar si se permite un nombre de archivo cargado.

Configuración de usuarios invitados

Un usuario de FTP invitado es un usuario real de Unix que está limitado por WU-FTPD a un directorio determinado, al igual que los clientes anónimos están restringidos. Sin embargo, todavía tienen privilegios completos dentro de ese directorio, incluidos los derechos para cargar archivos, cambiar el nombre y chmod archivos. Limitar a un usuario al acceso de invitado puede ser útil si desea evitar que vea partes de su sistema de archivos fuera de su directorio de inicio o algún directorio principal como /home.

Cada usuario designado como invitado por la configuración del servidor FTP puede tener un directorio raíz diferente, o algunos pueden ser iguales. Sin embargo, los directorios raíz elegidos deben configurarse de la misma manera que la raíz FTP anónima:con subdirectorios bin, lib, etc. que contengan todos los programas y archivos que necesita WU-FTPD. Sin embargo, puede simplemente copiar esos directorios a través de la raíz anónima, por lo que el proceso de configuración no es tan difícil.

Para configurar un usuario como invitado, su directorio de inicio debe modificarse especialmente. Los pasos a continuación explican cómo hacer esto usando Webmin:

  1. Vaya al módulo Usuarios y grupos (tratado en el capítulo 4) y haga clic en el nombre del usuario que desea restringir.
  2. Cambie su directorio de inicio a guestroot_/./_homedir , en el que guestroot es el directorio raíz que ha preparado y homedir un subdirectorio debajo de él. Si está utilizando /home como raíz, /home/./jcameron podría ser el directorio para el usuario jcameron. Esta entrada especial /./ en la ruta le dice a WU-FTPD dónde está la raíz, pero no debe confundir a otros programas.
  3. Haga clic en Guardar botón en la parte inferior de la página. Webmin moverá su directorio de inicio a la nueva ubicación si es necesario.

Por supuesto, también puede especificar dicho hogar al crear un nuevo usuario. Sin embargo, este es solo el primer paso:para configurar WU-FTPD para tratar a ciertos usuarios como invitados, deberá seguir estos pasos:

  1. En el módulo Servidor WU-FTPD, haga clic en Usuarios y clases para abrir el formulario que se muestra en la Figura 41-2.
  2. En los Usuarios de Unix y UID para tratar como invitados , ingrese una lista separada por espacios de nombres de usuario, UID o rangos de UID (como %1000-2000 _or %5000-_) de usuarios que se designarán como invitados. También puede ingresar una lista de nombres de grupos, ID y rangos de ID en el campo *Grupos de Unix y GID para tratar como invitados* para que todos sus miembros principales también sean tratados como invitados.
  3. Para evitar que algunos usuarios se conviertan en invitados incluso si están en las listas o rangos establecidos en el paso 2, complete los Usuarios de Unix y UID que no se tratarán como invitados y grupos Unix y GID que no deben tratarse como invitados los campos. Esto puede ser útil si desea que todos sean invitados, excepto algunos usuarios de confianza.
  4. Haga clic en Guardar en la parte inferior de la página para activar las nuevas designaciones de invitados.

Si un usuario ha sido configurado como invitado pero no tiene /./ en su directorio de inicio, no estará restringido a ningún directorio raíz.

Editar alias de directorio

Para simplificar la vida de los usuarios que necesitan acceder con frecuencia a directorios con rutas largas, WU-FTPD le permite definir alias de directorio que se pueden usar al cambiar a un directorio diferente. Esto significa que alguien que utilice un cliente FTP de línea de comandos puede ingresar cd cosas:en lugar de cd /usr/local/etc/stuff, suponiendo que se haya creado un alias adecuado.

Para configurar alias, siga estos pasos:

  1. En la página principal del módulo, haga clic en Alias ​​y rutas icono.
  2. Los alias de directorio de CD El campo es en realidad una tabla que enumera los alias existentes (si los hay) y siempre tiene una fila en blanco para agregar una nueva. En el primer campo vacío debajo del Nombre de alias columna, ingrese el nombre de un nuevo alias como cosas: o basura: . No es necesario que un alias termine con dos puntos; sin embargo, esta es una buena idea, ya que reduce el riesgo de que un nombre de alias sea el mismo que un directorio relativo real. En el campo correspondiente bajo Alias ​​al directorio , ingrese una ruta de directorio completa como /usr/local/junk que el alias es igual a. Si desea agregar más de un alias, deberá guardar y volver a abrir esta página para que aparezca una nueva fila vacía. Para eliminar uno, simplemente borre sus dos campos en la tabla.
  3. La ruta de búsqueda del directorio de CD El cuadro de texto le permite ingresar una lista de directorios que se buscarán si un cliente intenta cambiar a un subdirectorio relativo que no está en el directorio actual. Por ejemplo, si /usr/local se incluyó y un cliente intentó cambiar al directorio bin, se colocaría en /usr/local/bin (suponiendo que no exista un subdirectorio bin real).
  4. Presiona Guardar botón en la parte inferior de la página para activar los nuevos alias.

Los alias no son particularmente útiles en clientes FTP gráficos que presentan al usuario una lista de directorios para hacer clic. Debido a que los usuarios no cambian y, a menudo, no pueden cambiar a un pseudodirectorio explícito como cosas:y los alias no se incluyen en las listas, son difíciles de usar. Sin embargo, los clientes FTP similares a comandos como ncftp y el clásico programa ftp de Unix son más adecuados para usarlos.

Mensaje y archivos Léame

WU-FTPD se puede configurar para enviar el contenido de varios archivos de mensajes a los clientes cuando inician sesión o ingresan a ciertos directorios. Esto puede ser útil para mostrar información sobre su servidor FTP (como quién lo ejecuta y qué archivos están alojados) o detalles del contenido de un directorio en particular para los usuarios de FTP. Cada archivo se envía una sola vez a un cliente en una sola sesión, para evitar molestar al usuario con mensajes repetidos.

El servidor también se puede configurar para notificar a los clientes que existen ciertos archivos e informarles de sus últimas fechas de modificación. Esto se usa típicamente para archivos README que contienen información un poco menos importante sobre un directorio o el servidor, que los usuarios pueden querer leer. Nuevamente, a los clientes solo se les notifica una vez por sesión para cada uno de estos archivos.

Para definir archivos de mensajes y banners, siga estos pasos:

  1. Haga clic en Mensajes y anuncios en la página principal del módulo, que lo llevará al formulario que se muestra en la Figura 41-3.
  2. Los archivos de mensajes La sección es una tabla para especificar archivos cuyo contenido se enviará a los clientes. Como es habitual con las tablas en Webmin, enumera los archivos existentes y sus contextos, y tiene una fila en blanco en la parte inferior para agregar uno nuevo. Los significados de los campos son:Ruta La ruta al archivo cuyo contenido debe enviarse al cliente. This can be either an absolute path like /etc/login.message or a relative filename like message.txt . In the latter case, it is looked for in each directory that the client enters. If you enter a full path and want anonymous clients to be able to see it, it must be under the anonymous FTP root directory. When to display If At login is selected, the file will be sent to clients after logging in. If Entering any dir is chosen, the file will be searched for and sent when changing to any directory. When Entering dir is chosen, the file will only be sent when the directory whose path you specify in the adjacent text box is entered. Again, this must be relative to the root directory for anonymous clients. Classes to display for If this field is left blank, the message is sent to all clients. However, if one or more classes of client is entered (separated by spaces) it will only be used for clients that fall into those classes. This can be useful for defining message files just for anonymous users, especially when using absolute paths.
  3. To define files that clients will be notified of the existence of, you will need to fill in the README files mesa. Again, this lists all existing files and has a blank row for adding a single new one. The meanings of the fields in this table's columns are:Path' The path to the file whose existence and modification time should be sent to the client. This can be either an absolute path like /etc/README or a filename relative to the directory being entered like README.txt . You can even use shell wildcard characters like * and ? in the filename to match multiple files, for example README* . When to display last modified date If At login is selected, the information will be sent to clients after logging in. If Entering any dir is chosen, the file will be searched for and its modification date sent when changing to any directory. When Entering dir is chosen, the modification date will only be sent when the directory whose path you specify in the adjacent text box is entered. Classes to display for If this field is left blank, the modification is sent to all clients. However, if one or more classes of client is entered (separated by spaces) it will only be used for clients that fall into those classes.
  4. To change the amount of information that WU-FTPD sends to clients when they connect, adjust the Greeting level campo. If Hostname and version is selected, both the system's hostname and the FTP server version will be sent. If just Hostname is chosen only the hostname will be displayed, while if Neither is selected no information will be sent. The latter two options are the most secure, as an attacker may be able to use your FTP server's version to find a bug in it that could be exploited to take over your system.
  5. If you want to have the server sent a message to clients as soon as they connect, put it in a file and select the From file option for the Pre-login banner file campo. Then enter the full path to the message file into the text box next to it.
  6. To change the hostname that WU-FTPD sends in the greeting and other messages, select the second option in the Hostname for messages field and enter some alternative name in the text box. This can be useful if your system's real hostname does not match the name the FTP clients use (server5.example.com instead of ftp.example.com for example).
  7. When you are done with this form, click the Save button to activate your changes. They will apply to all new FTP clients that connect from now on.

On many operating systems, the WU-FTPD configuration will include one or two message and README file definitions by default. Typically the .message file is searched for in every directory and sent to clients, as is the modification time of any file whose name matches the README* pattern.

Any message files that you define that can contain special codes starting with % that are replaced when the file is sent by dynamically generated text. For example, %U is replaced with the client's FTP login name, so a file containing the line _Welcome %U to the example.com FTP server_ would be sent to the client as something like Welcome jcameron to the example.com FTP server . According to the WU-FTPD manual page, the available codes are:

Not done

Configuring logging

In a typical default configuration, WU-FTPD will log all uploads and downloads to the file /var/log/xferlog. However, you can choose the types of users that logging will be done for (Unix, anonymous or guest), have the log written to syslog instead, and select to record commands are security violations for some types of users. Logging to the system log gives you more flexibility, as you can choose which file messages are written to – although they will be mixed in with other daemon facility messages. See chapter 13 and the System Logs module for more information on how syslog works and which files it ultimately writes to.

Enabling logging of all commands allows you to track exactly what clients are doing, but can consume a large amount of disk space. The logging of security violations (attempts to violate WU-FTPD's file restrictions, covered in the “Denying access to files” section) can be useful for detecting hackers, and is unlikely to use up much space as such violations are not usually very frequent.

To edit FTP logging-related options in Webmin, the steps to follow are:

  1. On the module's main page, click on the Logging icon to bring up the small logging options form.
  2. To have all FTP commands executed by clients (including trivial ones such as CWD and LIST) recorded in the system log, select types of users for which they should be logged from the Log all commands for campo.
  3. To change the types of users that transfer logging is done for, select them from the Log transfers for campo. The *In directions* sub-field lets you choose whether uploads (Inbound ), downloads (Outbound ) or Both are recorded. On an anonymous FTP server, it may make sense to only record uploads due to the large number of downloads.
  4. To have transfers written to syslog, select System log in the Log transfers to campo. Or to tell WU-FTPD to write to the /var/log/xferlog file instead, select XFER log file . If Both is chosen, transfers will be logged to both destinations. If you want to use a program like Webalizer (covered in chapter 39) to analyze your FTP server's logs, they must be written to xferlog as the lines that end up being written out by syslog have additional information added and thus cannot be parsed. Anything written to the system log will use the daemon facility, unless WU-FTPD has been compiled to use a different one, such as local7. This can in fact be quite useful, as it allows you to separate out the FTP messages and have them written to a different file, while still enjoying all the benefits of syslog.
  5. To enable the logging of attempted filename security violations, select the types of users that this should be enabled for from the Log security violations for campo. These will always been written to syslog.
  6. Haga clic en Guardar button at the bottom of the page to save and activate the new logging settings.

Limiting concurrent logins

If your system is configured to allow anonymous FTP logins and you expect to receive a lot of traffic, it makes sense to limit the number of connections that can be open to the FTP server at any one time. This puts a ceiling on the network and CPU load that FTP transfers can generate, which is important if the system is being used for some other purpose (such as running a web server).

WU-FTPD allows you to define limits on a per-class basis, so that anonymous clients can be restricted while real Unix users are not. It also lets you specify the times during which restrictions apply, so that a higher limit can be granted when the server is not as heavily used for other purposes (such as at night).

To set up concurrent login limits, follow these instructions:

  1. On the module's main page, click on the Limits and Access Control icono. The form shown in Figure 41-4 will appear in your browser.
  2. The Concurrent user limits table is where limits on the number of connections can be entered. Each row defines a limit that applies to a certain class at certain times. As usual with tables in this module, there will be one empty row at the bottom for adding a new limit (and if this is the first one, the table will only contain that one row). Existing limits can be edited by changing their fields in the table, or deleted by selecting the empty option from the class menu. The fields in each row should be filled in as follows:Apply to class' You must select the name of the class that this limit will apply to from the menu. Multiple limits can be defined for the same class at different times. Maximum users To set a limit for the chosen class, select the second radio button and enter the maximum number of concurrent connections into the adjacent text box. If the Unlimited button is selected, no limit will apply to the class at the specified times. For example, you could add a row that turns off restrictions at night above another row that sets them for the entire day. At times If Any time is selected, the limit will apply all the time. However, if you choose the second option and enter a UUCP-style time specification into the text box, only connections made during that period will be restricted. For example, Any0900-1700 means 9am to 5pm every day, Mo,Tu,We means Mondays, Tuesdays and Wednesdays, Wk means weekdays and and Wk1700-0900,Sa,Su means times outside office hours. WU-FTPD always checks the table in order for an entry that matches a connecting client's class and the current time, and stops when it finds one. This means that entries that specify times (such as Any0900-1700 ) should be placed above those that have Any time selected so that the specific entry is actually used when appropriate. Error message file The full path to a file containing a message that will be sent to clients whose connections exceed the limit. This should explain why they are being rejected, and suggest other times or FTP servers to try.
  3. Presiona Guardar button at the bottom of the page to activate the connection limits. To add more than one, you will need to re-visit the form so that a new blank row appears in the table.

Restricting clients by IP address

Even though it is possible to block clients from certain addresses by ensuring that they do not fall into any class, there is a feature in the module dedicated specifically to blocking clients based on their IP addresses or hostnames. This can be used to lock out specific hosts that are abusing your FTP server, or to restrict access to clients from only your own company or home network.

The steps to define banned client systems are:

  1. Click on the Limits and Access Control icon on the module's main page to open the form shown in Figure 41-4.
  2. Each row in the Deny access from table specifies an IP address, hostname or pattern to block logins from. As with other tables in this module, it will always an additional empty row for adding a new restricted address. In the Deny from address field you can also enter the full path to a file containing banned addresses, use negated patterns like !192.168.1.* or even the special address !nameserved which matches all clients that do not have a valid reverse DNS address. Only one can be entered though – to block additional addresses, you will need to add more rows. In the Error message file field you must enter the full path to a file containing a message that will be sent to blocked clients. This should explain to connecting users that they have been blocked, and perhaps give a reason why. If you want to add more than one row, you will need to save this form and re-open it so that a new empty row appears at the bottom of the table. Existing restrictions can be edited by just changing their fields, or deleted by clearing out the address.
  3. When you are done, hit the Save button at the bottom of the form to activate the new address restrictions.

Restricting access to FTP commands

WU-FTPD can be configured to restrict the FTP commands that certain types and classes of users can use. This is useful for stopping anonymous clients modifying files, as on most FTP servers they are only allowed to download, not upload, rename or delete. In fact, in its usual default configuration this is exactly how WU-FTPD is configured.

There are five commands that you can restrict access to, all related to server-side data modification. They are:

chmod
Change the Unix permissions of a file on the server (chmod in the Unix FTP client).
delete
Delete a file or directory on the server (del or rmdir in the Unix FTP client).
rename
Change the name of a file or directory (rename in the FTP client).
overwrite
Upload a file with the same name as one that already exists.
umask
Change the default Unix permissions for newly created files (umask in the Unix FTP client).

It is not possible to stop clients using directory listing or download commands. Neither is it possible using this feature to prevent the upload of files that do not already exist – however, this can be achieved by setting directory permissions appropriately, or blocking all uploaded filenames as explained in the “Denying access to files” section.

To define which clients can use which commands, follow these steps:

  1. Click on the Permissions icono en la página principal del módulo.
  2. On the form that appears, the Command restrictions table lists existing commands and the user types and client classes that are or are not allowed to use them. As usual, you can add a new command using the blank row at the bottom, edit existing entries or delete the restrictions on a command altogether by selecting the blank option from the Command menú. The FTP server processes this table in order when a client tries to do something, and uses the selection in the Allow? column for the first entry that matches to decide if it is allowed or not. This means that the order matters, and thus if two entries match the first one will decide what happens. The fields for each row and their meanings are:Command You must select types. The restriction will only apply to the types of user selected in this column. See the “Managing user classes” section earlier in the chapter for details on what each means. For classes Only the client classes selected in this column will be effected by the restriction.
  3. When you are done editing or adding to the table, hit the Save button to activate your changes.

If a client command does not match any entry in the table, it will be allowed by the FTP server (unless blocked by some other filename restriction set elsewhere).

Configuring the WU-FTPD Server module

To change the paths that the module uses for the WU-FTPD configuration files and programs, you will need to click on the standard Module Config link in the top-left corner of the main page. Unlike other modules there are no options related to the user interface, so you will probably not need to adjust anything on the configuration form if the module is working for you. By default, all the configuration fields are set to match the WU-FTPFD package included with your operating system or Linux distribution.

Even though there are fields for configuration files other than ftpaccess, at the time of writing the module does not actually edit those files yet.


Webmin
  1. Servidor de mensajería instantánea Jabber

  2. Servidor ProFTPD

  3. Instalar servidor FTP en Debian 10 - ¿Una guía paso a paso?

  4. ¿Servidor FTP básico de Ubuntu?

  5. ¿Cómo conectarse al servidor local?

Cómo instalar un servidor FTP en Manjaro 20

Cómo instalar un servidor FTP en CentOS 8

¿Cómo Instalar Un Servidor Ftp?

¿Cómo instalar un servidor FTP en Ubuntu?

¿Cómo instalar FTP en Ubuntu 18.04?

Instalar FTP en Windows Server 2012 (R2)

    Nota: Como los clientes FTP modernos admiten SSH, considere usar un servidor SSH en lugar de un servidor FTP, para (mucha) más seguridad de la que cualquier servidor FTP puede prometer