LinuxParty
Para presentar este consejo, analicemos el tráfico HTTP entre una máquina cliente y el servidor Debian 8 donde cometimos el error inocente de iniciar sesión con las credenciales del usuario raíz de la base de datos en nuestro último artículo en: Cambiar y asegurar la URL de inicio de sesión predeterminada de PhpMyAdmin
Como mencionamos en el consejo anterior, no intente hacer esto todavía si no desea exponer sus credenciales. Para comenzar a rastrear 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=|password=|pass:|user:|username:|password:|login:|pass\
|user ' --line-buffered -B20
No tardaremos mucho en darnos cuenta de que el nombre de usuario y la contraseña se han enviado por cable en formato de texto sin formato, como puede ver en la salida truncada de tcpdump en la imagen a continuación.
Tenga en cuenta que hemos ocultado parte de la contraseña de root con una marca azul sobre ella:
Rastreo de tráfico HTTP
Para evitar esto, aseguremos la página de inicio de sesión con un certificado. Para hacer esto, instale el paquete mod_ssl en las distribuciones basadas en CentOS .
# yum install mod_ssl
Aunque usaremos la ruta y los nombres de Debian/Ubuntu , el mismo procedimiento es válido para CentOS y RHEL si reemplaza los comandos y las rutas a continuación con los equivalentes de CentOS .
Cree un directorio para almacenar la clave y el certificado:
# mkdir /etc/apache2/ssl [En sistemas basados en Debian/Ubuntu ] # mkdir /etc/httpd/ssl [En sistemas basados en CentOS ]
Cree la clave y el certificado:
----------- En sistemas basados en Debian/Ubuntu -----------
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key\
-out /etc/apache2/ssl/apache.crt----------- En sistemas basados en CentOS -----------
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key\
-out /etc/httpd/ssl/apache.crt
Salida de muestra
........................+++
.....................................................+++
writing new private key to '/etc/httpd/ssl/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Maharashtra
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:LinuxParty
Organizational Unit Name (eg, section) []:LinucParty
Common Name (eg, your name or your server's hostname) []:LinuxParty
Email Address []:Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
A continuación, verifique la clave y el certificado.
# cd /etc/apache2/ssl/ [En sistemas basados en Debian/Ubuntu ] # cd /etc/httpd/ssl/ [En sistemas basados en CentOS ] # ls-l 8 totales -rw-r--r--. 1 root root 1424 7 de septiembre 15:19 apache.crt -rw-r--r--. 1 root root 1704 7 de septiembre 15:19 apache.key
En Debian/Ubuntu , asegúrese de que Apache esté escuchando en el puerto 443 para el sitio predeterminado ( /etc/apache2/sites-disponible/000-default.conf ) y agregue las 3 líneas relacionadas con SSL dentro de la declaración de VirtualHost :
SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Habilitar SSL en Virtualhost
En las distribuciones basadas en CentOS , dígale a Apache que escuche en el puerto 443 y busque la directiva Listen en /etc/httpd/conf/httpd.conf y agregue las líneas anteriores debajo.
SSLEngine on SSLCertificateFile /etc/httpd/ssl/apache.crt SSLCertificateKeyFile /etc/httpd/ssl/apache.key
Guarde los cambios, cargue el módulo Apache SSL en las distribuciones Debian/Ubuntu (en CentOS esto se carga automáticamente cuando instaló mod_ssl anteriormente):
#a2enmod ssl
Obligue a phpmyadmin a usar SSL , asegúrese de que la siguiente línea esté presente en el archivo /etc/phpmyadmin/config.inc.php o /etc/phpMyAdmin/config.inc.php :
$cfg['ForceSSL'] = true;
y reinicie el servidor web:
# systemctl restart apache2 [En sistemas basados en Debian/Ubuntu ]
# systemctl restart httpd [En sistemas basados en Debian/Ubuntu ]
A continuación, inicie su navegador web y escriba https://<ip address>/my
(aprenda cómo cambiar la URL de inicio de sesión de PhpMyAdmin ) como se muestra a continuación.
Importante : tenga en cuenta que solo dice 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 HTTPS
Después de confirmar la excepción de seguridad y antes de iniciar sesión, comencemos a rastrear el tráfico HTTP y HTTPS :
# tcpdump port http or port https -l -A | egrep -i \
'pass=|pwd=|log=|login=|user=|username=|pw=|passw=\
|passwd=|password=|pass:|user:|username:|password:|\
login:|pass |user ' --line-buffered -B20
Luego inicie sesión con las mismas credenciales que antes. El rastreador de tráfico solo capturará galimatías en el mejor de los casos:
Rastreo de tráfico HTTP y HTTPS
Eso es todo por ahora, en el próximo artículo le compartiremos cómo restringir el acceso de PhpMyAdmin con nombre de usuario/contraseña , hasta entonces esté atento a LinuxParty.
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros