Reglas de IPTables para MySQL

114

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