SERVICIOS EN RED
TEMA 3. INSTALACIÓN Y ADMINISTRACIÓN DE
SERVIDORES WEB
MIGUEL VIDAL NAVAS.
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
IMPORTANTE
Datos iniciales
• Dominio: [Link]
• Servidor: [Link]
• IP servidor: [Link]
• DNS: [Link]
Instalación del servidor Apache
Primero hacemos un
apt-get update
apt-get upgrade
Para tener todos los paquetes actualizados. Después, instalamos Apache con
apt-get install apache2
2
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Vemos que funciona poniendo en la URL “localhost”.
O desde otro equipo dentro de la misma red (PC2):
3
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Inicio, parada, reinicio y estado del servidor
Los comandos son STOP, START Y RESTART. Se puede ver en la captura:
También se puede utilizar el comando
systemctl <comando> apache2
Localización de los sitios WEB por defecto
La ruta por defecto para los sitios WEB (salvo que se modifique en el fichero de configuración)
será:
/var/www/html
4
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Configuración de los puertos de escucha
El fichero se localiza en la siguiente ruta:
/etc/apache2/[Link]
Vemos su contenido:
Nos está indicando que el servidor escucha:
En el puerto 80 para conexiones no seguras (http)
En el puerto 443 para conexiones seguras (https)
ssl_module: Módulo que aplicará criptografía en las conexiones seguras
mod_gnutls.c: similar a ssl_module pero con algunas otras características.
5
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Módulos de apaches habilitados y disponibles (sin habilitar)
Las carpetas en donde podemos llevar a cabo dicha visualización son:
• Módulos habilitados: /etc/apache2/mods-enabled
• Módulos disponibles: /etc/apache2/mods-available
6
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Directivas típicas de configuración en apache
El fichero de configuración en Apache lo encontraremos en:
/etc/apache2/[Link]
Algunas directivas típicas son las siguientes:
DIRECTIVA EJEMPLOS
NOMBRE DEL (con nombre>
ServerName
SERVIDOR Servername <nombre> [Link]
(con IP)
ServerName [Link]
IP Y PUERTO Listen <nombre> Listen [Link]:80
DOCUMENTO DocumentRoot <ruta>
DocumentRoot
RAÍZ /var/web/miguelvidal
FICHEROS INDEX DirectoryIndex <lista DirectoryIndex [Link]
ficheros> [Link]
SERVIDORES <VirtualHost <ip:puerto> <VirtualHost [Link]:80>
VIRTUALES </VirtualHost> </VirtualHost>
7
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Primeros pasos con WEBMIN
Vamos a usar webmin para crear en Apache un servidor virtual de nombre
[Link], que escucha en la dirección IP 192.68.N.1 y en el puerto 80. La carpeta
raíz del sitio es /var/web/tudominio y los archivos índices son [Link] y [Link].
Accederemos con el navegador web a la página principal del sitio que habremos modificado
para que muestre tu nombre y tus apellidos.
Lo primero que vamos a hacer es crear la carpeta /var/web/miguelvidal para usarla en el
proceso de configuración de Apache a través de Webmin (aunque no muestro las capturas) y
un documento HTML dentro de dicha carpeta:
Posteriormente, accederíamos a WEBMIN y en el menú lateral seleccionaríamos APACHE.
Pulsaríamos sobre la opción de añadir un nuevo Host Virtual y rellenaríamos con los datos del
enunciado:
8
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Añadimos los archivos índices. Para ello entramos en el Virtual Host creado anteriormente y en
sus opciones de DIRECTORY INDEXING:
Hay que configurar el servidor DNS BIND9 añadiendo un alias a PCServer para que traduzca del
siguiente modo:
[Link] → [Link] → [Link]
Y de esta manera, al poner la url: [Link] nos aparece un documento
HTML creado:
9
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Para ver que todo se ha creado correctamente, podemos ver que se ha añadido un fichero con
la configuración del sitio virtual en:
/etc/apache2/sites-available
Y que dicho fichero es: [Link]
NOTA: Si nos fijamos en el fichero de configuración de Apache, tenemos incluido ese directorio
para la definición de los sitios WEB virtuales:
Habilitar y deshabilitar sitios WEB
Consiste básicamente en mover/quitar el fichero de configuración de la ruta:
/etc/apache2/sites-enabled
Existen dos comandos para ello:
HABILITAR
a2ensite /etc/apache2/sites-available/<nombreficheroconf>
DESHABILITAR
a2dissite /etc/apache2/sites-available/<nombreficheroconf>
10
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Autenticación sobre carpetas
Lo primero que tenemos que hacer es crear una carpeta y dentro el fichero HTML
correspondiente. En este caso, se llamará ‘descargas’. No muestro el proceso de creación, pero
sí que está creado:
En la carpeta de DESCARGAS voy a crear dos ficheros:
• Un fichero .htpasswd con un usuario “pepe” y contraseña “pepe”. Este fichero se
encargará de almacenar quien puede y quien no puede acceder al contenido de la
carpeta. Usaremos el comando HTPASSWD. Vemos su contenido después para
comprobar que se ha creado el usuario.
• Ahora vamos a crear un fichero .htaccess que indique que sólo los usuarios
almacenados en el fichero del apartado anterior puedan acceder. Vemos el contenido
de dicho fichero:
Necesitaríamos un fichero como este por cada directorio que deseemos securizar.
Normalmente se puede gestionar de modo general en el fichero de configuración
general pero de este modo controlamos directorio a directorio.
11
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Una vez realizado lo anterior, usamos WEBMIN para proteger el directorio. Lo primero es crear
el Directorio para poder trabajar con él. Entramos dentro de nuestro directorio virtual desde la
pantalla principal de APACHE WEBSERVER:
Posteriormente, nos aseguramos de que tengamos el módulo de autenticación (auth_basic)
habilitado. Vamos a CONFIGURACION GLOBAL – CONFIGURACION DE MÓDULOS DE APACHE
12
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Después creamos el directorio protegido. Nos vamos en el menú izquierdo a OTHERS/TOOLS -
PROTECTED WEB DIRECTORIES:
Añadimos protección para un nuevo directorio:
Aquí aparece creado:
13
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Añadimos un nuevo usuario para indicar que sólo ese usuario tendrá acceso (SI NO HA SIDO
AÑADIDO EN EL PROCESO ANTERIOR DE FORMA AUTOMÁTICA):
Aquí lo vemos ya creado:
Volvemos ahora a la opción del menú lateral derecho de APACHE WEBSERVER y nos vamos a la
carpeta creada (abajo a la derecha, ver la siguiente captura)
14
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Una vez dentro pulsamos en Control de acceso (ACCESS CONTROL):
Y allí establecemos que queremos una autentificación básica e indicamos donde está el fichero
"htaccess"
15
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Nos falta configurar una directiva en el fichero de configuración para indicar que se permita
modificar el tipo de autenticación. Para ello, vamos a APACHE - HOST VIRTUAL – PULSAMOS
SOBRE EL QUE HEMOS CREADO – EDITAR DIRECTIVAS:
Como se puede observar, hemos añadido la directiva:
AllowOverride AuthConfig
Para indicar que se permite personalizar nuestro modo de autenticación con usuario y
contraseña.
Y aquí vemos una vez accedido a la página de descargas creada:
16
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Añadiendo seguridad por dominio
Imaginemos que ahora queremos proteger los accesos para los usuarios del dominio y que
nadie más pudiera acceder. Lo primero que hacemos es visualizar el contenido de nuestro
fichero de configuración para este apartado, que será:
/etc/apache2/sites-available/[Link]
Y nos fijamos en el recuadro señalado:
Lo tendríamos que cambiar por:
<Directory “/var/web/miguelvidal”>
order deny, allow
deny from all
allow from .*miguelvidal\.com.*
</Directory>
17
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Configuración de un sitio web para acceso HTTPS
Vamos a usar Webmin para crear en Apache un servidor virtual HTTPS de
nombre [Link], que escucha en la dirección IP [Link] y en el puerto 443.
Previamente tenemos que realizar un proceso para crear un certificado autofirmado. La
carpeta raíz del sitio va a ser /var/web/seguro y el archivo índice será [Link].
GENERACIÓN DEL CERTIFICADO AUTOFIRMADO
Tenemos que crear un certificado autofirmado. Lo primero que hacemos es crear el directorio
SSL donde se guardarán el Certificado y las Claves:
mkdir /etc/apache2/ssl
Una vez hecho eso, nos situamos en él y ejecutamos la sentencia que nos generará la llave
para la firma ([Link]) y el fichero para firmar ([Link]):
Y aquí podemos ver ambas generadas en la carpeta elegida:
18
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
CREACIÓN DEL SITIO WEB VIRTUAL
El sitio Web virtual seguro se va a almacenar en la carpeta /var/web/seguro. Tendríamos
que empezar creándola (no lo detallo) Y UN DOCUMENTO dentro de ella.
Una vez hecho eso, creamos el Sitio Web Virtual Seguro. Nos vamos a WEBMIN - SERVERS -
APACHEWEBSERVER y pulsamos en CREATE VIRTUAL HOST y rellenamos los datos:
Tras aceptar, tenemos creado el nuevo sitio Web virtual (junto con los que ya teníamos):
19
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Ahora tenemos que activar el módulo de SSL. Para ello, desde la página principal de APACHE
WEBSERVER, nos vamos a GLOBAL CONFIGURATION - CONFIGURE APACHE MODULES:
Y habilitamos el módulo SSL (junto con socache_shmcb):
El último paso, es añadir el certificado autofirmado creado. Para ello, entramos dentro del
nuevo Sitio Virtual que hemos creado (pulsamos en el símbolo del mundo):
Y nos vamos a SSL OPTIONS:
20
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Y rellenamos la información del fichero para la firma y la llave para firmar:
Tras guardar todo y reiniciar el servidor, podemos ver que se ha añadido el nuevo HOST
VIRTUAL en el fichero
/etc/apache2/sites-available/[Link]
21
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
PRUEBA DE FUNCIONAMIENTO
PREVIO: Tras reiniciar el servidor, verificamos que todo esté correcto. De no ser así, comprobar
el fichero [Link]
Creamos un fichero [Link] que guardamos en la carpeta
/var/web/seguro
Y accederíamos al sitio seguro con la URL:
[Link]
Como vemos, nos indica que la conexión no es segura ya que el Certificado no está validado. Si
desplegamos con el botón AVANZADO, veremos la siguiente pantalla:
22
SERVICIOS EN RED - MIGUEL VIDAL NAVAS
Que el certificado no es seguro ya que está autofirmado. No está registrado por ninguna
autoridad de certificación oficial. Pero ello no es problema de cara a la tarea.
Tendríamos que añadir la excepción pulsando en el botón AÑADIR EXCEPCIÓN
Y tras CONFIRMAR EXCEPCIÓN DE SEGURIDAD nos aparecería la web segura cargada:
Si no nos deja acceder por culpa de un error relacionado con SSL, podríamos tener que
cambiar en el fichero de configuración:
/etc/apache2/sites-available/[Link]
La entrada:
<VirtualHost [Link]:443>
Por
<VirtualHost _default_:443>
23