sql >> Base de Datos >  >> RDS >> Mysql

Cómo restringir el acceso al puerto MySQL

En algunas distribuciones de Linux, el puerto 3306 está abierto después de instalar MySQL. Este artículo describe dos métodos para restringir o bloquear el acceso al puerto 3306 en un servidor no administrado.

La información de este artículo solo se aplica a los productos no administrados. Debe tener acceso raíz al servidor para seguir los procedimientos que se describen a continuación.

Método #1:Deshabilitar MySQL networking

Si no necesita acceder a MySQL desde una computadora externa, puede deshabilitar la red de MySQL.

Siga el procedimiento adecuado a continuación para su distribución de Linux.

Incluso con la red MySQL deshabilitada, aún puede acceder a MySQL de forma segura desde una computadora remota si lo necesita. Para ello, puede configurar un túnel SSH. Para obtener información sobre cómo hacer esto, consulte este artículo.
CentOS y Fedora

Para deshabilitar la red MySQL en CentOS y Fedora, siga estos pasos:

  1. Inicie sesión en su servidor usando SSH.
  2. En el símbolo del sistema, use su editor de texto preferido para abrir /etc/my.cnf archivo.
  3. Ubique la siguiente línea en my.cnf archivo:
    #skip-networking
    Si esta línea no está en my.cnf archivo, agréguelo.
  4. Eliminar el # firme al comienzo de la línea para que la línea se vea así:

    skip-networking
  5. Guarde sus cambios en /etc/my.cnf y luego salga del editor de texto.
  6. Escriba el siguiente comando para reiniciar el servicio MySQL:

    service mysqld restart

    El puerto 3306 ahora está cerrado en el servidor.

Debian y Ubuntu

De forma predeterminada, MySQL en Debian y Ubuntu está configurado para usar solo el localhost interfaz (dirección IP 127.0.0.1) para redes. Esto significa que el puerto 3306 está cerrado a conexiones externas. Para confirmar que esta es la configuración en su servidor, siga estos pasos:

  1. Inicie sesión en su servidor usando SSH.
  2. En el símbolo del sistema, use su editor de texto preferido para abrir /etc/mysql/my.cnf archivo.
  3. Ubique el MySQL dirección de enlace línea en my.cnf expediente. Debería tener el siguiente aspecto:
    bind-address = 127.0.0.1
    Si el MySQL dirección de enlace la línea está establecida en 0.0.0.0 (o ninguna dirección), entonces las conexiones están abiertas en todas las interfaces.
  4. Si realizó algún cambio en /etc/my.cnf archivo, guárdelos y luego salga del editor de texto.
  5. Para reiniciar el servicio MySQL, escriba el siguiente comando:

    service mysql restart

    El puerto 3306 ahora está cerrado en el servidor.

Método #2:Configurar reglas de firewall

Puede usar iptables para crear reglas de firewall que restrinjan el acceso al puerto 3306. La ventaja de este método es que puede otorgar o denegar selectivamente el acceso al puerto 3306 según las direcciones IP u otros criterios.

Por ejemplo, para bloquear completamente el acceso externo al puerto 3306, escriba el siguiente comando:

iptables -A INPUT -p tcp --dport 3306 -j DROP

Del mismo modo, para otorgar acceso a una dirección IP específica y bloquear todas las demás, escriba los siguientes comandos. Reemplazar xxx.xxx.xxx.xxx con la dirección IP para la que desea otorgar acceso:

iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

Puede otorgar acceso a MySQL a direcciones IP adicionales insertando reglas en INPUT cadena antes del DROP regla. Por ejemplo:

iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT