educación, informática y demás

2412 - Caso practico global

Servicios HTTP y Accesos remotos

Hoy vamos a instalar una serie de aplicaciones y servicios en el sistema GNU/Linux fileserver para proporcionar servicios a los usuarios del dominio de nuestra organización.

La idea es contar con servicio FTP para que los usuarios puedan compartir información a través de FTP y subir sus sitios webs personales y que puedan contar con una página web personal accesible por todos los miembros de la organización.

Para ello, primero instalaremos el software base necesario y después configuraremos el sistema para automatizar la disponibilidad de estos serviciso en las cuentas de los usuarios del dominio que inicien sesión en el sistema.

No estamos seguros de si podremos llevar a cabo todas las operaciones que nos solicitan, pero vamos a intentar proporcionar estos servicios, acceso y gestión remota a sitio web personal de usuario, con los conocimientos que tenemos y con información que podamos encontrar en Internet o servicios disponibles.

Resumen: queremos dotar de sitios webs funcionales a los usuarios del dominio en el sistema fileserver y que puedan gestionarlos (crear, borrar, modificar) sus sitios webs de forma remota.

Instalando el software base

Necesitamos un servidor HTTP y un servidor FTP. Las aplicaciones seleccionadas serán: apache2 y vsftpd.

Actualizamos la lista de paquetes disponibles en los repositorios. Ahora instalamos el software necesario

Vamos a comprobar que esto funciona

Por defecto el DocumentRoot de apache, es decir el directorio dónde está alojado el directorio raíz de los sitios webs disponibles desde el servidor HTTP en apache es /var/www/html. Es decir, todos los sitios webs (ficheros dentro de jerarquías de directorios) que estén ahí están disponibles desde este servidor.

Vamos a probar desde un sistema Win10 unido al dominio

Con esto tenemos acceso a sitios webs que queramos crear en nuestro servidor fileserver. Tan solo tendremos que crearlos dentro del DocumentRoot (/var/www/html)

Módulo UserDir

Tenemos disponible un módulo que permite crear sitios webs personales a los usuarios del sistema de forma sencilla. Este módulo es userdir. Vamos a echar un vistazo a la configuración de userdir, que estará dentro del directorio de configuración de apache2, dentro del directorio mod-available

El fichero de configuración de userdir será userdir.conf.

Bien, según la configuración el directorio public_html es el directorio del sitio web personal de los usuarios del sistema. Está ubicado dentro del directorio personal de cada usuario. Ya conocemos la ruta del directorio web personal del usuario, ahora tenemos que habilitar este módulo y vamos a configurar el usuario alumno para que tenga este sitio web funcionando.

Una vez habilitado userdir, reiniciamos apache2.

Vamos a crearnos un sitio web básico para el usuario alumno. Esto nos servirá como ayuda para crear un sitio web básico para los usuarios del dominio que tengan directorio personal en este sistema.

Con la configuración actual de permisos del directorio podrá acceder para realizar cualquier operación el usuario alumno y www-data, el grupo de apache2, podrá acceder para realizar operaciones de lectura (así garantizamos este acceso). El resto de usuarios, por ahora, también podrá acceder para realizar operaciones de lectura.

Vamos a crear un fichero de índice html básico para el usuario alumno.

Creamos el sitio web básico

Ya tenemos nuestra página web, ¿será accesible? ¿Cómo podemos acceder? Vamos a Windows 10 y vamos escribir la siguiente URL: http://fileserver.jpedrerom.ex/~alumno

Oh! No tenemos permiso… Pero, si todo el mundo tiene permiso de acceso y lectura, ¿cómo es posible?

El problema está en la configuración de permisos del directorio personal del usuario. Para poder acceder al directorio public_html que está dentro del directorio personal del usuario, primero tenemos que poder acceder al directorio personal del mismo. Así que, vamos a ver qué permisos tenemos configurados.

¿Funcionará?. Vamos a probarlo..

Vamos a hacer uso del directorio /etc/skel para contar con directorios web personales de los usuarios.

Ejercicios

Crear sitio web personal base automáticamente

Queremos que los usuarios del dominio que utilizan el sistema fileserver cuenten con un sitio web personal base que puedan modificar de forma automática. Para ello vamos a investigar tanto el directorio /etc/skel como la configuración del sistema para configurar los permisos de acceso del directorio personal del usuario recién creado.

La página web base por defecto puede ser similar a esta:

Solución

Vamos a probar una cosilla…

Vamos a probarlo

Oh!

Tenemos un problema con los permisos…

Vamos a modificarlo para que los permisos de los ficheros y directorios que se creen sean 0755 para que el grupo y el resto puedan acceder, por ahora, para lectura.

Pero antes, vamos a solucionar el problema de mcasasm

Tenemos que cambiar los permisos del directorio personal

Voy a probar acceso desde Windows

No funciona, pero tenemos un problema con la configuración de userdir

Crear sitios webs gestionados por usuarios

Vamos un sitio web para cada departamento (sales, developers y sysadmins), de forma que los únicos que puedan acceder para gestionar estos directorios sean los jefes de cada departamento. Estos sitios webs serán accesibles a través de la URL:

  • http://fileserver.jpedrerom.ex/sales
  • http://fileserver.jpedrerom.ex/developers
  • http://fileserver.jpedrerom.ex/sysadmins

Tan solo podrán acceder al contenido de estos directorios cada uno de los jefes de departamento concreto con todos los permisos y apache2 solo con permisos de lectura. El resto de usuarios del sistema no debería poder acceder.

Permite el acceso para gestión remota de los directorios a través de samba. Comparte, por ejemplo, cada sitio web como recurso compartido con acceso completo o comparte el raíz de apache y configura los permisos de acceso en local.

Los jefes de cada departamento son los siguientes

Permitir acceso remoto a sitios webs gestionados por usuarios

Comprueba si desde Samba puedes dar acceso a los directorios personales de los usuarios del sistema, aunque utilicen cuentas del dominio. Con esto, posiblemente, tengamos problemas.

Vídeo con solución propuesta

Dejar una respuesta