Publicado el
16 de abril de 2024
En el vasto mundo de la administración de servidores web, la seguridad es una preocupación primordial. A medida que la transmisión de datos entre clientes y servidores se vuelve cada vez más vital, garantizar su protección se vuelve innegociable. En este contexto, configurar un servidor web en una distribución Linux implica una tarea fundamental: asegurar la seguridad de los datos transmitidos. En la vanguardia de este esfuerzo se encuentra la implementación del cifrado Transport Layer Security (TLS). Para cualquiera que participe en el desarrollo web o el alojamiento, dominar el cifrado TLS no es solo una buena práctica, sino una habilidad esencial para proteger la información sensible intercambiada en la web.
En este primer artículo de nuestra secuencia: Instalando servidores web en diferentes distribuciones Linux nos adentramos en el proceso de instalar y configurar uno de los servidores web más populares para Linux “Apache Httpd“ para habilitar el cifrado TLS en sistemas operativos populares como Red Hat Enterprise Linux (RHEL), Debian y OpenSUSE. Esta guía detallada ofrece pasos claros y prácticos para implementar una capa adicional de seguridad en sus servidores web Apache Htttpd, garantizando así la confidencialidad e integridad de la comunicación.
Instalar y Configurar Apache Httpd para cifrado TLS - Proceso completo
Pero antes de sumergirse en el proceso de configuración, es esencial asegurarse de que se cumplan los siguientes requisitos:
Requisitos:
Actualizando paquetes ya presentes. Se requerirán privilegios especiales para ciertas operaciones a lo largo del procedimiento:
RHEL
dnf update -y
Nota: Use yum si dnf no está presente en la máquina
Ubuntu
apt update –y
Nota: Use apt-get si apt no está presente en la máquina
OpenSUSE
zypper refresh
Instalando proceso Apache:
Escriba los diferentes comandos para cada sistema:
RHEL
dnf install -y net-tools httpd
Ubuntu
sudo apt install apache2
OpenSUSE
zypper install -y apache2
Nota: El servicio aún no debería haber iniciado. Puede iniciarse con el systemctl start httpd comando, después de lo cual comenzará a escuchar en el puerto 80 por defecto. Esto no es seguro; se recomienda encarecidamente usar https (puerto 443) y no http (puerto 80).
¿Desea implementar estas prácticas PKI?
Obtenga orientación experta para implementar soluciones PKI seguras para su organización.
Obtener ayuda expertaConfigurando Apache para cifrado TLS:
El mod_ssl paquete es necesario. Luego, inserte los siguientes comandos para cada sistema:
RHE
dnf install -y mod_ssl
Ubuntu
apt a2enmod ssl
Después de eso, almacene la clave privada, el TLS y el certificado CA en el directorio de su elección.
Una vez hecho esto, edite el /etc/httpd/conf.d/ssl.conf archivo (/etc/apache2/sites-available/default-ssl.conf para Ubuntu y OpenSUSE) y bajo el <VirtualHost _default_:443> directiva y siga las siguientes instrucciones:
Establezca el nombre del servidor's:
ServerName url.com
Si se pretenden usar diferentes alias para el servidor, deben añadirse en el campo Subject Alternative Name del certificado. Para añadir esos nombres alternativos a la configuración, añada la siguiente línea:
ServerAlias www.url.com *.url.com
Establezca las rutas a la clave privada, al certificado TLS y al certificado CA. El nombre común del certificado TLS debe coincidir con el nombre que se usará para el servidor (aquí, url.com). Esos certificados pueden generarse usando PKI de Stream o la autoridad de registro de Horizon.
SSLCertificateKeyFile "/path/url.com.key" SSLCertificateFile "/path/url.com.crt" SSLCACertificateFile "/path/ca.crt"
Nota: Por defecto, TLS 1.2 y TLS 1.3 están habilitados. Para una mayor seguridad, es posible habilitar solo TLS 1.3 añadiendo la siguiente línea:
SSLProtocol -All +TLSv1.3
Haga que la clave privada sea segura y menos accesible haciéndola accesible solo para el usuario root. Para ello, haga que el usuario root sea el propietario del archivo de clave y haga que el archivo sea legible y escribible solo por el usuario root.
chown root:root /path/url.com.key
chmod 600 /path/url.com.key
Iniciar o reiniciar el servicio:
[RHEL] systemctl restart httpd
[Ubuntu/OpenSUSE] systemctl restart apache2
Conclusión:
Instalar un servidor web en una distribución Linux es un paso crucial para configurar un entorno de alojamiento web; la elección depende de sus requisitos y preferencias específicas, ya que ofrecen funciones robustas y optimizaciones de rendimiento para servir contenido web de manera eficiente. Siguiendo las instrucciones de instalación apropiadas para la distribución Linux que haya seleccionado, podrá configurar rápidamente un servidor web fiable y comenzar a alojar sus sitios web o aplicaciones para que el mundo los acceda.