¿Alguien se conectó a MySQL desde afuera?

3

Tengo un servidor Ubuntu con una base de datos MySQL a la que solo se accede desde localhost.

  1. ¿Hay algún mecanismo predeterminado en MySQL (o Ubuntu) que registre los intentos de conexión, así que puedo verificar si la base de datos ha sido (intentada) desde el exterior?

  2. Si no es así, ¿es posible habilitar dicho mecanismo?

Lo mejor sería tener un mecanismo de registro que registre solo los intentos remotos, y no el acceso local (legítimo) del que habría millones, por lo que sería fácil detectar los remotos.

    
pregunta forthrin 01.08.2016 - 22:56
fuente

2 respuestas

2

Para habilitar el registro:

En /etc/my.cnf :

general_log_file = /var/log/mysql/mysql.log general_log = 1

Hay botnets que analizan los puertos 3306, por lo que si no tuvo una contraseña para la cuenta de root, definitivamente sí.

Este acceso normalmente no se registra porque en los servidores con PHP generalmente hay una nueva conexión por cada solicitud, por lo que el registro es un poco de sobrecarga.

Asegúrese de tener configurada la contraseña de root. Puedes usar MySQL Workbench para inspeccionar a los usuarios. Comprueba si las nuevas conexiones solo se aceptan desde localhost (por ejemplo, los usuarios permitidos son solo de localhost - 127.0.0.1 ).

En la nota al margen, si usa MySQL para el desarrollo de su propia aplicación, es posible que sea mejor actualizarla a una versión más nueva. Es porque MySQL como parte del sistema operativo es MUY viejo debido a la compatibilidad de las aplicaciones antiguas. Las versiones más nuevas permiten la creación de diferentes clases de aplicaciones, especialmente si se trata de informes y documentos. Puedes agregar un nuevo repositorio y hacer apt-get update . En Centos7, por ejemplo, está MariaDB, y en la última versión de Fedora hay la versión 10.1 por defecto.

    
respondido por el Aria 01.08.2016 - 23:14
fuente
2

Siento que esta es la manera incorrecta de hacerlo. Incluso si supiera que alguien ha violado el sistema, podría ser demasiado tarde para evitar daños. Además, si alguien es lo suficientemente competente, detectará un sistema Ubuntu sin blindaje e intentará ingresar, digamos, un viernes por la noche. Para cuando llegue el lunes por la mañana, los registros podrían no mostrar nada y el sistema informará los negocios como de costumbre con una expresión seria y seria.

Lo que quieres es que nadie se conecte al sistema .

Si no necesita conexiones desde otro lugar que no sea localhost, ni siquiera vincule la interfaz . Puede omitir todas las redes TCP y solo conectarse a través de un socket local (si hay memoria, hay una configuración en my.cnf, algo como skip-networking o skip-tcp-networking).

Si necesita para usar conexiones TCP, use el firewall para denegar cualquier conexión entrante al puerto 3306 / tcp en todas las interfaces excepto 'lo', localhost.

Esto consumirá casi sin recursos y le brindará mucha más seguridad y tranquilidad. Por supuesto, nada le impide hacer ambos : evita los inicios de sesión, y registran todos los que podrían, de alguna manera, tener éxito.

    
respondido por el LSerni 01.08.2016 - 23:26
fuente

Lea otras preguntas en las etiquetas