UP | HOME |

Configuración de un servidor web seguro mediante Apache

Configuración de un servidor seguro mediante Apache

Con numerosos artículos en formato html mediante Org, llegó el momento de publicar el centón en internet. ¿Cuál será la ventura de tan procelosa singladura?

En la madrugada del 2 al 3 de noviembre de 1805 una goleta de la Marina mercante española regresa cargada de mercancía de América e intenta entrar en la ría de Pontevedra...
Caza al amanecer, Augusto Ferrero Dalmau

Instalación y configuración de un sistema Apache

En El centón de un enano se ha optado por alojar el centón en un servidor propio. La instalación y puesta en marcha se basa en el sistema Apache, que permite configurar un ordenador como un servidor de internet. Instalamos este programa.

sudo apt-get install apache2

Para que el localhost funcione, http://127.0.0.1 o http://localhost, añadimos la instrucción ServerName localhost al fichero de configuración.

cat /etc/apache2/apache2.conf
echo "ServerName localhost" | sudo tee -a /etc/apache2/apache2.conf
cat /etc/apache2/apache2.conf

Reiniciamos el servidor apache.

sudo service apache2 restart
cat /etc/hosts

Comprobamos que el servidor ya funciona. Escribimos en la barra de direcciones de un navegador del ordenador: http://localhost/. Aparecerá una página web sobre Apache. Por defecto, muestra el contenido de /var/www/html/. Creamos una carpeta similar en nuestro home y la enlazamos con ese directorio. Todo lo que aparezca en nuestra carpeta y subcarpetas será de acceso público.

ls /var/www/html
sudo cp -R /var/www/html /var/www/html2
ls /var/www
sudo rm -rf /var/www/html
sudo ln -s ~/www/html /var/www/html
ls /var/www

Recuerde incluir en cada carpeta pública un fichero con el nombre index.html, salvo que desee que se visualicen todos los contenidos del directorio.

Dirección de internet, dominio y puertos

Si desde el ordenador configurado con el apache se contecta al servidor apache mediante http://localhost/, llega el momento de sumergirse en la mar de internet.

Para ello, precisamos de una dirección estática de internet (IP), el nombre de un dominio y que los puertos para ssh, http y https se encuentren abiertos. Por defectos estos puertos se corresponden con 22, 80 y 443, respectivamente. La empresa u organismo que gestiona la internet donde se encuentre su servidor provee esta información y configuración.

El centón de un enano contaba ya con una dirección estática y los puertos se configuraron mediante este acceso.

Una vez que cuente con una dirección IP, un nombre del dominio y los puertos abiertos, verifique el acceso a su página web desde fuera del anillo local de internet, como por ejemplo, utilizando un teléfono celular con acceso a datos: http://torres.epv.uniovi.es/

Configuración ssh del servidor

Si aún no dispone de una conexión ssh a su servidor, proceda según estas instrucciones para configurarlo adecuadamente.

Conversión de un http en https

Una vez que conseguido un sistema apache accesible desde el exterior, (http://torres.epv.uniovi.es/) y que cuente con acceso ssh, procedemos a transformarlo en un servidor https, con conexión segura y certificado digital.

Seguimos estas instrucciones. Instalamos el programa certbot.

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-apache

La siguiente instrucción transforma el http en https con los certificados pertinentes.

sudo certbot --apache

Hemos de introducir el dominio (torres.epv.uniovi.es) y escoger la opción 2 de redirigir el tráfico http a https:


 name(s) (comma and/or space separated)  (Enter 'c' to cancel): torres.epv.uniovi.es

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module

Comprobamos que funciona todo, primero accediendo a nuestra página mediante conexión segura https://torres.epv.uniovi.es y posteriormente revisando el nivel de seguridad del entorno https://www.ssllabs.com/ssltest/analyze.html?d=torres.epv.uniovi.es.

El certificado digital se renueva automáticamente.

Eliminación del sistema apache

A veces, conviene eliminar la instalación apache y volverla a instarla. Aquí se indican los pasos a seguir. Primero detenemos el servicio apache.

sudo service apache2 stop

Y ahora purgamos el sistema eliminando apache y certbot. Por defecto, no eliminamos ssh.

sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
sudo apt-get purge certbot
sudo apt-get autoremove

Comprobamos que apache ya no existe con las siguientes instrucciones:

which apache2 # Devuelve una línea blanca
sudo service apache2 start # Indica apache2: unrecognized service