Si todas las conexiones entrantes están bloqueadas en iptables (INPUT DROP) y para abrir el acceso externo a MySQL, debe agregar las siguientes reglas:
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
Para abrir el acceso solo a una red específica, por ejemplo 10.0.0.0/24:
iptables -A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 3306 -j ACCEPT
Para eliminar una regla, use el mismo comando, reemplazando -A con -D, por ejemplo:
iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
Puede ver la lista de reglas con el comando:
sudo iptables -nvL
Tenga en cuenta que para abrir el acceso externo, también debe comentar la línea “bind-address = 127.0.0.1” en el archivo de configuración my.cnf.
Ahora bien, si el valor predeterminado es INPUT ACCEPT, entonces primero indicaremos desde qué IPs se permite el acceso, y solo con la última regla bloquearemos a todos los demás:
/sbin/iptables -A INPUT -s 127.0.0.1 -p tcp --destination-port 3306 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.5 -p tcp --destination-port 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
Por ejemplo, usando nmap, puede verificar local y externamente si el acceso está filtrado:
nmap -p 3306 localhost
nmap -p 3306 192.168.1.5
Suerte