Cómo instalar y configurar Apache en CentOS/RHEL 8

Cómo instalar y configurar Apache en CentOS/RHEL 8

Centes 8 es el último lanzamiento del sistema operativo CentOS Linux, que se basa en Red Hat Enterprise Linux 8. En este tutorial, le ayudaremos a instalar el servidor web Apache en el sistema CentOS 8 o Rhel 8 con configuración y seguridad adicionales.

Referencias

  • Acceso ssh al sistema CentOS/RHEL 8
  • SUDO privilegios al usuario para instalar paquetes

Paso 1: instale Apache en Centos 8

En primer lugar, inicie sesión en su sistema CentOS 8 o Rhel 8 a través de SSH. Luego instale los paquetes del servidor HTTP APOCHE2 usando el siguiente comando. Esto también instalará paquetes requeridos adicionales en su sistema.

sudo dnf install httpd 

Espere la instalación completa

Paso 2 - Administrar el servicio Apache

El servicio Apache se gestiona con la línea de comando SystemCTL en CentOS/RHEL 8. Después de la instalación, use el siguiente comando para habilitar el servicio Apache y luego iniciarlo.

sudo systemCtl habilita httpd.servicio sudo systemctl iniciar httpd.servicio 

Aquí están los otros comandos para detener y reiniciar el servicio Apache a través de la línea de comandos.

sudo systemctl stop apache2.servicio sudo systemctl reiniciar apache2.servicio 

Paso 3: prueba la configuración de Apache

Puede ver los detalles de la versión de Apache instalado utilizando el siguiente comando.

httpd -v versión del servidor: apache/2.4.37 (CentOS) servidor construido: 7 de octubre de 2019 21:42:02 

Cree una página de prueba HTML en el directorio raíz de documento predeterminado (/var/www/html).

sudo echo "hola tecadmin.net ">/var/www/html/index.html 

Ahora acceda a su servidor Apache utilizando la dirección IP del servidor o un dominio apuntado a la IP del servidor.

Paso 4 - Creación de virtualhost

Creemos el primer host virtual en su servidor Apache. Para el tutorial, estamos utilizando el dominio de la muestra "Ejemplo.com ". Aquí crearemos un host virtual, por ejemplo,.com en el puerto 80.

Cree un archivo de índice de muestra en un directorio:

sudo mkdir -p/var/www/ejemplo.com echo "Hola ejemplo.com "| sudo tee/var/www/ejemplo.com/índice.html 

Luego cree un archivo de configuración VirtualHost y edite en el editor:

sudo vim/etc/httpd/conf.D/Ejemplo.comunicarse.confusión 

Agregue el siguiente contenido al final del archivo de configuración. Puede cambiar el nombre de dominio según su dominio.

ServerAdmin [email protected] documentroot/var/www/ejemplo.COM Ejemplo de nombre de nombre.com serveralias www.ejemplo.com #allowoverride all ### Uncomment si se requiere errores de error/ejemplo.com_error.Registro de registro de registros/ejemplo.com_access.registro combinado
12345678910111213 ServerAdmin [email protected] documentroot/var/www/ejemplo.COM Ejemplo de nombre de nombre.com serveralias www.ejemplo.comunicarse #AlloWoverride Todo ### Uncopment si es necesario Errorlog registro/ejemplo.com_error.Registro de registro de registros/ejemplo.com_access.registro combinado

Guarde el archivo de configuración de VirtualHost y vuelva a cargar el servicio Apache utilizando los siguientes comandos:

sudo systemctl recargar httpd.servicio 

Paso 5 - Configurar SSL VirtualHost

Puedes omitir este paso si no necesitas SSL. Pero la seguridad siempre es la principal preocupación para cualquier sitio web. Para usar SSL con Apache, instale el paquete MOD_SSL en su sistema.

sudo dnf instalación mod_ssl 

Para el tutorial, he seguido estas instrucciones para generar un certificado SSL autoestrado para nuestro dominio.

Puedes usar /etc/httpd/conf/ssl.confusión Para el host virtual SSL o puede usar un archivo de configuración de host virtual separado para su dominio. Por ejemplo:

sudo vim/etc/httpd/conf.D/Ejemplo.com_ssl.confusión 

Con el siguiente contenido:

ServerAdmin [email protected] documentroot/var/www/ejemplo.COM Ejemplo de nombre de nombre.com serveralias www.ejemplo.com #allowoverride all ### Uncomment si es necesario sslEngine en sslcertificateFile/etc/pki/tls/certs/ejemplo.comunicarse.CRT SSLCertificAtekeyFile/Etc/PKI/TLS/Certs/Ejemplo.comunicarse.Ligos/Ejemplo de Ligas de error de clave.com_ssl-error.Registro de registro de registros/ejemplo.com_ssl-access.registro combinado
123456789101112131415161718 ServerAdmin [email protected] documentroot/var/www/ejemplo.COM Ejemplo de nombre de nombre.com serveralias www.ejemplo.comunicarse #AlloWoverride Todo ### Uncopment si es necesario SSLEngine en SSLCertificateFile/Etc/PKI/TLS/Certs/Ejemplo.comunicarse.CRT SSLCertificAtekeyFile/Etc/PKI/TLS/Certs/Ejemplo.comunicarse.Ligos/Ejemplo de Ligas de error de clave.com_ssl-error.Registro de registro de registros/ejemplo.com_ssl-access.registro combinado

Aquí hay tres términos utilizados para configurar SSL VirtualHost:

  • SSLEGIN - Establecer esto en "On"
  • Sslcertificatefile - Establezca la ruta de su certificado SSL
  • Sslcertificatekeyfile - Estos son los archivos de clave privados utilizados para generar el certificado SSL

Después de eso, habilite el VirtualHost y vuelva a cargar el servicio Apache utilizando los siguientes comandos:

sudo systemctl recarga apache2.servicio 

Paso 6 - Secure Apache Server

La seguridad es la parte más importante del alojamiento. Los piratas informáticos están listos para explotar su servidor web. Editar archivo de configuración principal de Apache

sudo vim/etc/httpd/conf/httpd.confusión 

Agregue los siguientes valores al final del archivo:

Servertokens propersignature de spersing apagado
123 Servertokens propersignature de spersing apagado

Después de eso, edite el archivo de configuración SSL predeterminado de Apache:

sudo vim/etc/httpd/conf.D/SSL.confusión 

Aquí están las múltiples configuraciones relacionadas con la seguridad. Agregar o actualizar la siguiente configuración. No vamos en descripciones detalladas al respecto, pero estas configuraciones son muy útiles para los servidores de producción.

#Rules tomados de https: // cipherli.ST/ SSLCIPHERSUITE EECDH+AESGCM: EDH+AESGCM # requiere Apache 2.4.36 & openssl 1.1.1 sslprotocol -alt +tlsv1.3 +TLSV1.2 Curvas SSLOPensSLCONFCMD X25519: SECP521R1: SECP384R1: Prime256v1 # Versiones más antiguas # SSLProtocol All -SSLV2 -SSLV3 -TLSV1 -TLSV1.1 sslhonorcipherorder en el encabezado siempre establezca la seguridad de transporte estricto "max-edad = 63072000; incluye tubdomains; precarga" encabezado siempre establece las opciones X-frame denegar el encabezado siempre establecer x-contento-options nosniff # requiere apache> = 2.4 SSLCompression Off sslusEsTapling en sslstaplingcache "shmcb: logs/grapling-cache (150000)" # requiere apache> = 2.4.11 sslsessiontickets apagados
123456789101112131415161718#Rules tomados de https: // cipherli.ST/ SSLCIPHERSUITE EECDH+AESGCM: EDH+AESGCM# requiere Apache 2.4.36 & openssl 1.1.1SslProtocol -alt +TLSV1.3 +TLSV1.2sslopensslconfcmd curvas X25519: SECP521R1: SECP384R1: Prime256v1# Versiones más antiguas# SSLProtocol All -SSLV2 -SSLV3 -TLSV1 -TLSV1.1sslhonorcipherorder Onheader siempre establezca la seguridad de transporte estricto "max-edad = 63072000; incluye tubdomains; precarga" encabezado siempre establece X-frame-options Denyheader siempre establece X-Content-Type-Options Nosniff# requiere Apache> = 2.4SSLCompression OffSslUsEsTapling OnsslStaplingCache "SHMCB: Logs/Stapling-Cache (150000)"# requiere Apache> = 2.4.11sslSessionTickets Off

Después de hacer cambios, reinicie el servicio Apache para aplicar la nueva configuración.

sudo systemctl recarga apache2.servicio 

Conclusión

Todo listo, está ejecutando un servidor Apache seguro en su sistema CentOS 8 o Rhel 8 Linux.