Publicado el
22 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 indispensable. En este contexto, configurar un servidor web en una distribución Linux implica una tarea fundamental: garantizar la seguridad de los datos transmitidos. A la vanguardia de este esfuerzo se encuentra la implementación del cifrado de Seguridad de la Capa de Transporte (TLS). Para cualquier persona involucrada en el desarrollo o alojamiento web, dominar el cifrado TLS no es solo una buena práctica, sino una habilidad fundamental para proteger la información confidencial que se intercambia en la web.
Presentamos el segundo artículo de nuestra secuencia: Instalación de servidores web en diferentes distribuciones de Linux, donde profundizaremos en el proceso de instalación y configuración de un servidor web/proxy inverso ligero y de alto rendimiento: "NGINX" para habilitar el cifrado TLS en sistemas operativos populares como Red Hat Enterprise Linux (RHEL), Debian y OpenSUSE.
Esta guía detallada proporciona pasos claros y prácticos para implementar una capa adicional de seguridad en sus servidores web NGINX, garantizando así la confidencialidad e integridad de la comunicación.
Instalación y configuración de NGINX para el cifrado TLS en RHEL/Debian/OpenSUSE
Pero antes de sumergirnos en el proceso de configuración, es esencial asegurarse de que se cumplan los siguientes requisitos previos:
Prerrequisitos:
Actualización de paquetes existentes. Se requerirán privilegios especiales para ciertas operaciones durante el procedimiento:
RHEL
actualización dnf -y
Nota: Utilice yum si dnf no está presente en la máquina
Ubuntu
actualización adecuada –y
Nota: Utilice apt-get si apt no está presente en la máquina
OpenSUSE
actualización de zypper
Estancamiento del proceso NGINX:
Escribe los diferentes comandos para cada sistema:
RHEL
dnf install -y nginx
Ubuntu
sudo apt instalar nginx
OpenSUSE
zypper install -y nginx
Nota : El servicio aún no debería haberse iniciado. Puede iniciarse con el systemctl start nginx ; después, comenzará a escuchar en la parte 80 de forma predeterminada. Esto no es seguro; se recomienda usar https (puerto 443) y no http (puerto 80).
¿Quieres implementar estas prácticas de PKI?
Obtenga orientación experta sobre la implementación de soluciones PKI seguras para su organización.
Obtenga ayuda de expertos2. Si se configura un firewall, es necesario permitir la comunicación a través del puerto 443. Por ejemplo, con el siguiente comando para firewall:
firewall-cmd --permanent --add-port={443/tcp}
3. Finalmente para recargar el servicio de firewall:
firewall-cmd --reload
Configuración de NGINX para el cifrado TLS:
Para configurar NGINX, se puede editar el archivo /etc/nginx/nginx.conf o crear .conf en /etc/nginx/conf.d . Si estos archivos de configuración se almacenan en otro lugar, se puede crear un enlace simbólico en el conf.d para dirigirlos al archivo de configuración.
En el archivo de configuración elegido es posible crear un servidor virtual que se puede configurar detalladamente.
servidor { escuchar 443 ssl; nombre_servidor www.hostname.com; certificado_ssl www.hostname.com.crt; clave_certificado_ssl www.hostname.com.key; protocolos_ssl TLSv1.2 TLSv1.3; cifrados ssl ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; caché de sesión ssl compartida:SSL:10 m; tiempo de espera de sesión ssl 10 m; }
Notas:
El servidor debe estar escuchando en el puerto 443 y se debe aplicar SSL
Server_name es el nombre de host que se utilizará y expondrá el servidor virtual.
Se debe especificar la ruta del certificado del servidor y su clave privada. Mediante Stream y Horizon , los certificados se pueden emitir y gestionar sin problemas.
Los protocolos SSL se pueden configurar. Se recomienda habilitar solo TLSv1.2 y TLSv1.3, o solo TLSv1.3, para mayor seguridad.
La función ssl_session_cache permite almacenar en caché las sesiones SSL y compartirlas entre los trabajadores. En la configuración anterior, se permitían 10 MB, lo que equivale aproximadamente a 4000 sesiones.
ssl_session_timeout define cuánto tiempo puede durar la sesión antes de que se agote el tiempo de espera .
El www.hostname.com.key debe configurarse para que solo el usuario root pueda acceder a él para mayor seguridad:
chown root:root /ruta/www.nombredehost.com.clave
chmod 600 /ruta/www.nombredehost.com.clave
Para aplicar los cambios a la configuración de NGINX, reinicie el servicio:
Pruebe su configuración de NGINX:
nginx -t
entonces
systemctl reiniciar nginx
Conclusión:
En conclusión, instalar un servidor web en una distribución de Linux es crucial para configurar un entorno de alojamiento web. La elección dependerá de sus requisitos y preferencias. Ofrecen funciones robustas y optimizaciones de rendimiento para ofrecer contenido web de forma eficiente. Siguiendo las instrucciones de instalación adecuadas para su distribución de Linux, podrá configurar rápidamente un servidor web confiable y comenzar a alojar sus sitios web o aplicaciones para que todo el mundo pueda acceder a ellos.