Introducción
El servidor web Apache HTTP es uno de los servidores web más utilizados, especialmente en las distribuciones de Linux, que es una plataforma multiplataforma gratuita utilizada por una gran cantidad de sitios web en Internet. El servidor web Apache utiliza HTTP para procesar la solicitud y entretener la información web. Apache tiene toneladas de características útiles y su funcionalidad se puede mejorar con módulos adicionales. También permite a los programadores publicar su trabajo en Internet.
Entonces, en este artículo, discutiremos la instalación del servidor web Apache y cómo protegerlo después de instalarlo en Debian 11.
Requisitos
Antes de la instalación, debe iniciar sesión en el sistema Debian con acceso a todos los privilegios de sudo. También se recomienda que complete la configuración inicial del servidor en los sistemas Debian 11 recién instalados.
Instalar Apache en Debian
La última versión de los paquetes de Apache está disponible en el repositorio predeterminado de Debian 11. Entonces podemos instalarlo directamente usando el administrador de paquetes.
Después de iniciar sesión, abra la terminal y actualice la caché de apt con el comando que se indica a continuación:
sudo apt update
Después de actualizar la caché de apt, ahora instale Apache2 en su Debian 11 Bullseye con el comando:
sudo apt install apache2
Presione " y " para cualquier confirmación solicitada por el instalador.
Una vez que se completa el proceso de instalación. Verifique la versión de Apache instalada ejecutando el siguiente comando:
apache2 -v
Server version: Apache/2.4.48 (Debian)
Server built: 2021-08-12T11:51:47
Otra forma de verificar la instalación de Apache es acceder a la página predeterminada de Apache2 utilizando la dirección IP o el nombre de host del servidor. Si no conoce su nombre de host, primero ejecute el siguiente comando:
hostname -I
Ingrese el nombre de host o la dirección IP de su servidor en la barra de URL del navegador y presione Enter, se abrirá la página Apache2 Debian predeterminada.
Gestionar el servicio Apache
Una vez completada la instalación, el servicio Apache se puede administrar usando los comandos " systemctl ", ejecute el siguiente comando para verificar el estado del servidor:
sudo systemctl status apache2.service
Presione "q" para salir. Algunos comandos para administrar el servicio Apache en Debian 11 son:
Para iniciar el servidor, use el comando:
sudo systemctl start apache2.service
De manera similar, para detener el servicio, reemplace iniciar con una parada en el comando anterior:
sudo systemctl stop apache2.service
El servicio se puede reiniciar usando:
sudo systemctl restart apache2.service
Configure los ajustes del cortafuegos
Si su sistema tiene un firewall, deberá autorizar el acceso a ciertos puertos web para que los usuarios externos puedan usarlos. Ejecute el siguiente comando para permitir el puerto 80 (HTTP) y 443 (HTTPS) en la terminal Debian:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Ahora verifique comprobando el estado:
sudo ufw status
Si no está activo, para habilitarlo para su uso:
sudo ufw enable
Crea un host virtual en Apache
En Apache, los hosts virtuales le permiten administrar numerosos sitios web en un solo servidor. En el servidor web Apache, crearemos un host virtual. Para hacer esto, primero crearemos un sitio web llamado sample.com con el bloque de servidor que viene de serie con Apache.
Comencemos configurando el primer host virtual de su servidor Apache. Usaremos el dominio de ejemplo como "sample.com", pero puede nombrarlo según sus preferencias:
sudo mkdir -p /var/www/sample.com
Ahora cambie los permisos y el propietario con el comando que se proporciona a continuación:
sudo chown -R www-data:www-data /var/www/sample.com
sudo chmod -R 755 /var/www/sample.com
Al ejecutar el comando que se indica a continuación, para probar nuestro sitio testdomain.info, ahora crearemos una página de índice de ejemplo. Para hacer esto, usaremos el editor nano para generar un archivo HTML similar a este:
sudo nano /var/www/sample.com/index.html
Inserte el contenido que se muestra a continuación en la página de índice y presione Ctrl + O para guardar el archivo y Ctrl + X para salir del archivo y regresar a la terminal:
<html>
<head>
<title>Welcome to the page sample.com!</title>
</head>
<body>
<h1>Congratulations! Your sample.com server succeeded!</h1>
</body>
</html>
Al ejecutar el comando que se proporciona a continuación en una terminal, crearemos un archivo de hosts virtuales, que servirá el contenido del servidor:
sudo nano /etc/apache2/sites-available/sample.com.conf
Se abrirá un archivo de texto, ingrese el siguiente contenido:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName sample.com
ServerAlias www.sampe.com
DocumentRoot /var/www/sample.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Presione Ctrl + O para guardar el archivo y Ctrl + X para salir del archivo y regresar a la terminal.
Habilitar la configuración del dominio
Ejecute el siguiente comando para activar el archivo de host virtual:
sudo a2ensite sample.com.conf
Deshabilite la configuración predeterminada de Apache ejecutando el comando que se indica a continuación:
sudo a2dissite 000-default.conf
Los nuevos cambios en Apache se aplican al ejecutar el siguiente comando:
sudo systemctl restart apache2
Resolver el error de nombre de host
Ahora, debemos verificar nuestra configuración en busca de errores de sintaxis, para probar la configuración, ejecute el comando que se indica a continuación:
sudo apache2ctl configtest
Esto provocará un error, pero no se preocupe, lo solucionaremos. Cree una nueva configuración "servername.conf" y edítela en un editor de texto:
sudo nano /etc/apache2/conf-avaialable/servername.conf
Ahora inserte el siguiente contenido en el archivo:
ServerName sample.com
Presione Ctrl + O para guardar el archivo y Ctrl + X para salir del archivo. Asegúrese de cambiar "sample.com" por su nombre de dominio real. Ahora, para habilitar el nombre del servidor conf, ejecute el comando que se indica a continuación:
sudo a2enconf servername
Ahora ejecute el comando anterior nuevamente para probar la configuración:
sudo apache2ctl configtest
Verá que el error de nombre de host se resuelve ahora.
Cómo proteger Apache2 en Debian 11
Para proteger el servidor Apache, edite el archivo "security.conf" , ejecute el siguiente comando para abrir el archivo:
sudo nano /etc/apache2/conf-enabled/security.conf
Inserte o actualice el siguiente contenido en el archivo:
ServerTokens Prod
ServerSignature Off
TraceEnable Off
Header always append X-Frame-Options SAMEORIGIN
Header always set X-XSS-Protection: "1; mode=block"
Header always set X-Content-Type-Options: "nosniff"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Guarde el archivo y ciérrelo.
Configure el protocolo SSLCipherSuite y SSL en el nivel del servidor para usar cifrados seguros para servir el sitio web editando el archivo ssl.conf
:
sudo nano /etc/apache2/mods-enabled/ssl.conf
Ahora inserte el contenido escrito a continuación en el archivo y presione Ctrl + O para guardar el archivo y Ctrl + X para salir del archivo:
SSLProtocol -all +TLSv1.2
SSLCipherSuite HIGH:!aNULL:!MD5
Ahora ejecute el comando de recarga de Apache para guardar la configuración:
sudo systemctl restart apache2.service
Eso es todo. Ha instalado y asegurado correctamente el servidor Apache.
Conclusión
Apache Web Server es un servidor de código abierto utilizado por muchos sitios web en Internet y permite a los desarrolladores publicar su trabajo en Internet. Este servidor está disponible en todos los sistemas operativos, pero en este artículo discutimos su instalación en la última versión de Debian (sistema operativo Linux) y también explicamos cómo probarlo y asegurarlo después de una instalación exitosa. Podrá instalar Apache2 con éxito en Debian 11 Bullseye y configurar el servidor después de seguir esta guía.