2012-06-12 52 views
9

Estoy tratando de restringir el puerto MySQL 3306 en una máquina Linux para hacer cualquier conexión a cualquier cosa que no sea localhost para prevenir ataques externos. tengo el siguiente código, no estoy seguro de si es correcta:Restringir el puerto MySQL 3306 al host local con IPTABLES

iptables -A INPUT -p tcp -s localhost --dport 3306 -j ACCEPT 

iptables -A OUTPUT -p tcp -s localhost --dport 3306 -j ACCEPT 

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

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

mi otra pregunta es - ¿es correcto sólo dan acceso a localhost? este es un servidor web centos estándar con más de 30 dominios en él.

+0

Por qué no utilizar los permisos cuando configurar el usuario de mysql para que solo permita que el usuario inicie sesión desde localhost, por lo que sería algo así como mysqluser @ localhost en lugar de mysqluser @% – bretterer

+2

Perdóneme por preguntar, pero ¿por qué no usa solo zócalos Unix y '--skip-networking 'si tu d ¿No quieres que el puerto esté abierto? –

+0

Sus reglas de iptable funcionan, las probé. –

Respuesta

12

¿Por qué no acaba de desconectar la red con MySQL?

Agregar a my.cnf:

skip-networking

Se supone que dará también una mejora de rendimiento insignificante forzando la conexión a través de tuberías, que salta sobre un montón de pruebas que se utilizan para la sección de redes. Tenga en cuenta que necesitará utilizar localhost, no 127.0.0.1, después del cambio.

8
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 

La regla anterior es para convertir dos líneas en una sola.

respuesta a la segunda pregunta:

Si no desea proporcionar acceso MySQL desde distintos de localhost, entonces es perfecto para configurar de esta manera. Sencillo. :-)

1
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 
iptables -A INPUT -p tcp --dport 3306 -j DROP 

Si desea eliminar el filtrado, utilice esto:

iptables -D INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 
iptables -D INPUT -p tcp --dport 3306 -j DROP 

Nota: Ambos pueden requerir la raíz, por lo que: sudo iptables (...)

Cuestiones relacionadas