Cómo configurar HTTPS (certificados SSL) para asegurar el inicio de sesión de PhPMyAdmin
- 3563
- 569
- Berta Solano
Para introducir este consejo, olfaticemos el tráfico HTTP entre una máquina cliente y el Debian 8 Servidor donde hemos cometido el error inocente para iniciar sesión utilizando las credenciales del usuario de la base de datos en nuestro último artículo en: Cambiar y asegurar la URL de inicio de sesión PhPMyAdmin seguro
Como mencionamos en el consejo anterior, no intente hacer esto todavía si no desea exponer sus credenciales. Para comenzar a olfatear el tráfico, escribimos el siguiente comando y presionamos Enter:
# TCPDUMP PORT HTTP -L -A | egrep -i 'pass = | pwd = | log = | login = | user = | username = | pw = | passw = | passwd = | contraseña = | pass: | user: | nombre de usuario: | contraseña: | inicio de sesión: | pass | Usuario ' -Línea Tombinada -B20
No nos llevará mucho tiempo darnos cuenta de que el nombre de usuario y contraseña se han enviado a través del cable en formato de texto plano, como puede ver en la salida truncada de tcpdump en la imagen a continuación.
Tenga en cuenta que tenemos parte oculta del raíz Contraseña con una marca azul sobre él:
Olfateo de tráfico HTTPPara evitar esto, aseguremos la página de inicio de sesión con un certificado. Para hacer esto, instale el paquete mod_ssl en Cento distribuciones basadas.
# yum instalación mod_ssl
Aunque usaremos el Debian/Ubuntu ruta y nombres, el mismo procedimiento es válido para Cento y Rhel Si reemplaza los comandos y rutas a continuación con el Cento equivalentes.
Cree un directorio para almacenar la clave y el certificado:
# mkdir/etc/apache2/ssl [encendido Debian/Ubuntu sistemas basados] # mkdir/etc/httpd/ssl [encendido Cento sistemas basados]
Crea la clave y el certificado:
----------- En Debian/Ubuntu Sistemas basados ----------- # OpenSSL Req -x509 -nodes -days 365 -Newkey RSA: 2048 -keyout/etc/apache2/ssl/apache2.clave -out/etc/apache2/ssl/apache.CRT ----------- Cento Sistemas basados ----------- # OpenSSL Req -x509 -nodes -days 365 -Newkey RSA: 2048 -Keyout/etc/httpd/ssl/apache.clave -out/etc/httpd/ssl/apache.CRT
Salida de muestra
... +++ ... +++ escribiendo nueva clave privada para '/etc/httpd/ssl/apache.clave '------ Está a punto de que se le pida que ingrese información que se incorporará a su solicitud de certificado. Lo que está a punto de ingresar es lo que se llama un nombre distinguido o un DN. Hay bastantes campos, pero puede dejar algo de blanco para algunos campos, habrá un valor predeterminado, si ingresa '.', el campo se dejará en blanco. ----- Nombre del país (código de 2 letras) [xx]:EN Nombre de estado o provincia (nombre completo) []:Maharashtra Nombre de la localidad (por ejemplo, ciudad) [Ciudad predeterminada]:Mumbai Nombre de la organización (por ejemplo, empresa) [Ltd de compañía predeterminada]:Tecmenta Nombre de la unidad organizacional (por ejemplo, sección) []:Tecmenta Nombre común (por ejemplo, su nombre o el nombre de host de su servidor) []:Tecmenta Dirección de correo electrónico []:[correo electrónico protegido]
A continuación, verifique la clave y el certificado.
# cd/etc/apache2/ssl/[encendido Debian/Ubuntu sistemas basados] # cd/etc/httpd/ssl/[en Cento sistemas basados] # ls -l total 8 -RW-R-R--. 1 raíz raíz 1424 7 de septiembre 15:19 Apache.CRT -RW-R-R--. 1 raíz raíz 1704 7 de septiembre 15:19 Apache.llave
En Debian/Ubuntu, Asegúrate de eso apache está escuchando en el puerto 443 para el sitio predeterminado (/etc/apache2/sites disponible/000 deformientes.confusión) y agregue las 3 líneas relacionadas con SSL dentro del Anfitrión virtual declaración:
SSLEngine en SSLCertificateFile/Etc/Apache2/SSL/Apache.CRT SSLCertificAtekeyFile/Etc/Apache2/SSL/Apache.llaveHabilitar SSL en VirtualHost
En Cento distribuciones basadas, contar apache para escuchar en el puerto 443 y busque la directiva de escuchar en /etc/httpd/conf/httpd.confusión y agregue las líneas anteriores debajo de él.
SSLEngine en SSLCertificateFile/etc/httpd/ssl/apache.CRT SSLCertificAtekeyFile/etc/httpd/ssl/apache.llave
Guardar cambios, cargue el SSL Apache módulo Debian/Ubuntu distribuciones (en Cento Esto se carga automáticamente cuando instaló mod_ssl más temprano):
# a2enmod ssl
Fuerza phpmyadmin usar Ssl, Asegúrese de que la siguiente línea esté presente en /etc/phpmyadmin/config.Cª.php o /etc/phpmyadmin/config.Cª.php archivo:
$ cfg ['Forcessl'] = true;
y reiniciar el servidor web:
# SystemCTL reiniciar apache2 [ON Debian/Ubuntu sistemas basados] # systemCtl reiniciar httpd [en Debian/Ubuntu sistemas basados]
A continuación, inicie su navegador web y escriba https: /// mi
(Aprenda a cambiar la URL de inicio de sesión de PhPMyadmin) como se muestra a continuación.
Importante: Tenga en cuenta que solo está diciendo que la conexión no es segura porque estamos utilizando un certificado autofirmado. Haga clic en Avanzado y confirme la excepción de seguridad:
Habilitar phpmyadmin httpsDespués de confirmar la excepción de seguridad y antes de iniciar sesión, comencemos a oler Http y Https tráfico:
# TCPDUMP PORT HTTP o PORT HTTPS -L -A | egrep -i 'pass = | pwd = | log = | login = | user = | username = | pw = | passw = | passwd = | contraseña = | pass: | user: | nombre de usuario: | contraseña: | inicio de sesión: | pass | Usuario ' -Línea Tombinada -B20
Luego inicie sesión usando las mismas credenciales que anteriormente. El rastreador de tráfico solo capturará galimatías en el mejor de los casos:
Olfateo del tráfico HTTP y HTTPSEso es todo por ahora, en el próximo artículo lo compartiremos para restringir el acceso de PhpMyadmin con nombre de usuario/contraseña, hasta entonces estén atentos a TecMint.
- « FSWatch monitorea archivos y cambios o modificaciones en el directorio en Linux
- Cómo agregar una capa adicional de seguridad en la interfaz de inicio de sesión de PhPMyAdmin »