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?
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