You are on page 1of 28

José María Jiménez López

Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Consideraciones finales sobre el servidor Apache en Ubuntu

Índice
1. Creación de 3 hosts virtuales con dominios verdaderos que apuntan a un equipo en casa............................2
2. Activación de la seguridad (https) en un host virtual en Apache 2..............................................................19
3. Restricciones de acceso a una página web y creación de página web para el error 404 del servidor..........23

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 1/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

1. Creación de 3 hosts virtuales con dominios verdaderos que apuntan a un equipo en


casa.
Se desea crear 3 hosts virtuales en un servidor Apache2 que tenemos en casa y poder acceder a
ellos desde Internet.
Los pasos previos para la creación de 3 hosts virtuales con dominios verdaderos
(josejl68.cloudns.cx, tintivalero.cloudns.cl y josejl68.ddns.net, respectivamente) son los siguientes:

1.0.1 Tener fija la dirección IP del ordenador o máquina virtual donde está instalado apache. Si es
una máquina virtual, la tarjeta de red tiene que estar configurada como "puente".
1.0.2 Conocer la dirección IP de Internet de tu router. Para ello, puedes acceder desde un
navegador de Internet a www.cualesmiip.com, como hacemos aquí:

1.1. Disponer de los 3 dominios. Los dominios normalmente se alquilan y son de pago, pero
también los hay gratuitos.
A continuación se indican dos lugares para obtener dominios gratuitos:
a) www.cloudns.net

Como ejemplo, vamos a crear un dominio gratuito y vamos a hacer que apunte a la dirección IP
pública de nuestro router:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 2/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Revisamos nuestro correo para confirmar la activación de nuestra cuenta:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 3/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 4/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Aparece la estructura básica del dominio creado. Salen registros que indican que los servidores
DNS que almacenarán este dominio tintivalero.cloudns.cl son 4:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 5/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Hay que añadir 4 registros en nuestro dominio:

Le damos abajo a la derecha a

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 6/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 7/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

¡Ya está! Debe quedar nuestro dominio gratis así:

De la misma forma he creado otro dominio, llamado josejl68.cloudns.cx


El tercer dominio se llama josejl68.ddns.net y ha sido creado en freeddns.noip.com

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 8/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

1.2 Abrir los puertos del router.

Este punto es el más difícil, ya que cada persona tiene un router en casa que puede ser diferente.
Pasos:
- Pedirle a tu compañía de Internet que te diga nombre de usuario y contraseña de tu router.
- Ver qué modelo de router tienes y buscar en Internet "abrir puertos router mimodeloderouter".
Seguro que aparece algún tutorial que lo hace.
- Acceder a tu router. Para ello recuerda que tu router es la puerta de enlace de tu ordenador, y
tiene una dirección IP interna de tu red local (diferente de su dirección IP externa, de la que
hemos hablado a la hora de configurar un dominio). Puedes averiguar la IP interna de tu router
así:
a) En Windows, dando en el icono de abajo a la derecha con el botón derecho, y elegir "
Abrir configuración de red e internet"
b)

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 9/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

c) Se da a botón derecho sobre nuestra tarjeta de red:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 10/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

A continuación se expone cómo abrir los puertos en mi router:

Ahora vamos a incluir la dirección ip del ordenador donde está instalado el servidor web Apache2
en la zona desmilitarizada, DMZ, del router (lo cual permitirá que se acceda al servidor desde
Internet)

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 11/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Ahora se hace lo que es la apertura de puertos propiamente dicha:

Ahora se ve la línea llamada http: 192.168.0.15, que es el ordenador o máquina virtual con
Apache, donde se abre el puerto 80

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 12/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Ahora se ve la línea donde se abre el puerto 443

Si lo hemos hecho todo bien hasta ahora, si tienes apache2 instalado en tu ordenador (el mío está
instalado en 192.168.0.15), cuando escribas en un navegador de Internet uno de los dominios
que has creado, ya podrás ver su página web.

1.3 Crear las páginas Web de cada host virtual (con Bluegriffon, por ejemplo) y guárdalas en su
carpeta correspondiente (las mías son /var/www/cloudns, /var/cwww/cloucl y /var/www/ddns). La
página principal de cada host virtual debe llamarse index.html.
En mi caso, los dominios en Webmin están así:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 13/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Los hosts virtuales están configurados así:

a) josejl68.cloudns.cx

Observa que este dominio usará el puerto 443 (https)

b) tintivalero.cloudns.cl

c) josejl68.ddns.net

Por último, activamos los hosts virtuales. En una terminal hacemos:

sudo su y das la contraseña


a2ensite Escribe * cuando te pregunte, y le das luego a la tecla Enter

6.- Por último, en una terminal como root, escribes

service apache2 reload

para que cargue la nueva configuración.

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 14/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Comprobemos que los 3 dominios son accesibles: (cómo activar https se verá más adelante en
este documento)

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 15/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 16/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 17/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Los 3 hosts virtuales han sido configurados en un servidor Apache en una máquina virtual de
Ubuntu:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 18/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

2. Activación de la seguridad (https) en un host virtual en Apache 2

En este tutorial se explica cómo hacer que un host virtual pueda ser accedido de manera cifrada,
usando https con el puerto 443 del servidor web Apache.
Pasos:
0.- Se supone que hay un host virtual instalado y funcionando en Apache. Yo voy a usar un host
virtual llamado josejl68.cloudns.cx
sudo a2enmod ssl Esto activa el https en Apache
service apache2 restart Reiniciamos apache2, ya con ssl
1.- Desde una terminal de Ubuntu creamos certificados digitales para el host virtual (todo esto es
un solo comando):

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
/etc/ssl/private/josejl68.cloudns.cx.key -out
/etc/ssl/certs/josejl68.cloudns.cx.crt

Con esta orden se crean certificados digitales que no están certificados por ninguna autoridad de
certificación de confianza (FNMT, policía nacional), sino que lo hemos hecho nosotros para esta
práctica.

Se harán varias preguntas para crear el certificado. La más importante es la que dice "Common
Name", donde tendrás que escribir el nombre del dominio del host virtual, en mi caso
josejl68.cloudns.cx

2.- En webmin, entramos en Servidores->Servidor web Apache, elegimos el host virtual, en mi


caso josejl68.cloudns.cx y vemos lo siguiente:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 19/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Hay que dejar el archivo /etc/apache2/sites-available/josejl68.cloudns.cx.conf (es el archivo de


configuración del host virtual) así (tú debes poner tu propio dominio):

3.- Cambia en Webmin el puerto donde trabaja el host virtual a 443. Debe quedar algo así:

4.- Habilitar el sitio web. Desde la terminal hacemos:

sudo a2ensite josejl68.cloudns.cx

Para ver que todo está bien, hacemos

sudo apache2ctl configtest

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 20/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Debe de dar un aviso, y al final "Syntax OK" si todo va bien

Por último, recargamos el servidor con su nueva configuración:

sudo service apache2 reload

Ya está. Si todo ha salido bien, debemos teclear en el navegador el nombre de dominio precedido
por https://

El navegador avisa de que el certificado no es de confianza, damos a Avanzado y luego

Y sale la página ya cifrada con https

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 21/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

NOTA MUY IMPORTANTE:

Si al activar https resulta que la página web que se ve NO ES la que debiera, puede ser porque hay en
Apache 2 hosts virtuales que hay que eliminar:

Al final quedará así:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 22/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

3. Restricciones de acceso a una página web y creación de página web para el error 404
del servidor

Para restringir el acceso a páginas web, hay 2 opciones:

a) OPCIÓN 1: usando Webmin, en "Editar directivas" de tu host virtual, dentro de la


etiqueta <Directory> en su archivo de configuración, borrando lo que haya dentro y
dejando lo siguiente:

En este caso, solamente se permite el acceso a la página web al usuario llamado cati, cuya
contraseña está guardada en el archivo /var/www/passwd/passwords

Para crear al usuario cati y su contraseña se hace con el comando htcpasswd, disponible si
instalamos antes

sudo apt-get install apache2-utils

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 23/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Luego hacemos
mkdir /var/www/passwd
htpasswd -c /var/www/passwd/passwords cati

Nos preguntará qué contraseña se le pone al usuario cati

Luego haz service apache2 restart para reiniciar el servidor.

Es importante destacar que el fichero de contraseñas NO DEBE estar en la misma carpeta que
las páginas web (por si alguien remotamente puede hacerse con él).
Cuando se ponga en el navegador la dirección de la web, se pedirá nombre de usuario y
contraseña, como se ha visto anteriormente:

Al dar nombre de usuario y contraseña correctos, podemos entrar en la web:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 24/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

b) OPCIÓN 2: tener un fichero .htaccess (es oculto en Linux al comenzar su nombre por un
punto) en la carpeta donde estén las páginas web a proteger.
Para ello es necesaria la instrucción AllowOverride All en el archivo de configuración del sitio web
en cuestión. En nuestro caso, hacemos esto en Webmin para el host virtual josejl68.ddns.net

El archivo .htaccess usado en este ejemplo es:

require valid-user permite el acceso de cualquier usuario registrado en el archivo


/var/www/passwd/passwords

ErrorDocument permite personalizar páginas web de errores en el servidor web. En este


ejemplo, si alguien pide una página que no existe, se mostrará el archivo noexiste.html

Por último pero no menos importante, se reinicia el servidor web, con

service apache2 restart

Entramos en la página:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 25/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Y se entra en la página:

En el archivo de configuración .htaccess la línea ErrorDocument permite hacer que cuando se


haga una petición a una página que no existe en nuestra web (es el error 404 del servidor web,
página web no encontrada), salga una página personalizada que hayamos creado nosotros.
Creamos dicha página web, la llamamos por ejemplo noexiste.html y la guardamos en la carpeta
donde esté la página index.html de nuestro sitio web:

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 26/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Nuestra página web está diseñada con una imagen obtenida de Internet:

Una vez guardada la página web para el error 404, entramos en nuestra web pero poniendo una
página web (sevilla.html) que no existe, por ejemplo

http://josejl68.ddns.net/betis.html

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 27/28


José María Jiménez López
Servicios en Red
I.E.S. “Isidro de Arcenegui y Carmona”
Marchena (Sevilla) Andalucía

Saldrá nuestra página web para errores 404:

Actividades:

1.- Haz que el dominio www.1smr.com (realizado en el tutorial anterior) se pueda acceder
mediante https

2.- Haz que para entrar en www.1smr.com se pida nombre de usuario y contraseña con la primera
opción explicada.

3.- Haz que para entrar en www.2smr.com se pida nombre de usuario y contraseña con la
segunda opción explicada.

4.- Haz que el host virtual del dominio www.1smr.com tenga una página personalizada para el
error 404

Consideraciones finales sobre el servidor Apache en Ubuntu- Página 28/28

You might also like