IPTables: permite conexiones MySQL salientes pero no conexiones entrantes

IPTables: permite conexiones MySQL salientes pero no conexiones entrantes

Tengo un servidor que no permite conexiones a MySQL desde fuentes externas; todas mis bases de datos y conexiones se realizan en localhost. La política predeterminada de iptables es descartar conexiones para cualquier puerto que no especifique (actualmente no tengo el puerto 3306 especificado en mis reglas de iptable, por lo que se descartan todas las conexiones a este puerto).

Está bien, pero ahora me gustaría conectarme a una base de datos MySQL ubicada externamente en Amazon RDS.

El puerto 3306 se puede abrir al mundo exterior de la siguiente manera:

iptables -t filter -A INPUT -p tcp --sport 3306 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT

Esto me permite conectarme a la base de datos en Amazon RDS, sin embargo, también permite conexiones remotas a bases de datos en mi servidor.

¿Qué debo hacer para permitir que mi servidor se conecte a la base de datos en Amazon, pero restringir las conexiones externas a las bases de datos de mi servidor?

También tenga en cuenta que creo que la dirección IP de mi instancia de Amazon RDS puede cambiar periódicamente.

Respuesta1

Aprovecha el motor de estado:

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

o en versiones posteriores de iptables

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Esto es exactamente para lo que existe el motor estatal:permitir el tráfico que cumpla varios criterios(p. ej., protocolo, puerto de origen)pero también es parte de una conexión existente(como se defineconexión). El resultado es que el TCP SYNpaquete saliente a una dirección IP externa particular en el puerto de destino 3306, desde un puerto efímero local, creará una entrada en la tabla de estado para esa combinación particular de direcciones IP y números de puerto, y solo devolverá tráfico con la misma combinación de Se permitirán direcciones y puertos a través de, y solo durante la duración de esa conexión.

información relacionada