HowTo: MySQL externo el acceso permiten + cierran con iptables


El acceso de otras direcciones IP que Localhost (127/0/0/1) está prohibido en la configuración de estándar por MySQL. Así nosotros MySQL externo el banco de datos el acceso permite:

Debíais ser a vosotros naturalmente sobre eso en el claro que la apertura de MySQL puede ofrecer al banco de datos en un servidor de Web un otro objetivo del ataque. Por eso, es muy importante usar contraseñas fuertes y/o MySQL sólo para direcciones IP determinadas freizuschalten

MySQL externo el acceso en my.cnf activan:

MySQL el servidor escucha según el estándar sólo en localhost la dirección IP (127/0/0/1). La inscripción siguiente en my.cnf es responsable de ello (/etc/my.cnf o/etc/mysql/my.cnf):
bind-address = 127.0.0.1
Para poder agarrar ahora también de otros ordenadores a MySQL el servidor, la inscripción „bind-address“ es cambiada. 0/0/0/0 instruye que MySQL el servidor en todos, para él a disponibles, direcciones IP escucha:
bind-address = 0.0.0.0
Con „bind-address = 192.168.200.1“ el servidor zB. puede también ser configurado que él es disponible sólo sobre una dirección IP determinada.
MySQL el servidor de nuevo salen, para que la configuración sea tomada:
/etc/init.d/mysql restart
La relación revisan (con telnet en la dirección / Hostname IP del servidor y MySQL el puerto en 3306 puede ser revisado a causa de MySQL el servidor correctamente responde):
telnet 192.168.200.1 3306

Usuarios para el acceso externo a MySQL el banco de datos permiten

Ahora MySQL el servidor admite básicamente relaciones de otras direcciones IP (externas), pero el banco de datos el usuario tienen que recibir todavía la autorización correspondiente.
En MySQL la consola ligan:
mysql -u root -p
órdenes siguientes dan al usuario (dein_user) la autorización de cada Host de (%) para agarrar al banco de datos:
use mysql;
update user set host=’%’ where user=’dein_user’;
update db set host=’%’ where user=’dein_user’;
Nuevos MySQL usuarios atracan, para que el acceso externo exista (aquí el „%“ es igualmente usado en vez de „localhost“:
create user ‘dein_user’@’%’;
MySQL el acceso para direcciones IP determinadas permiten (MySQL IP Restriction) via iptables

Se puede permitir MySQL el acceso también para direcciones IP determinadas o cerrar. A esto nos arreglamos mediante Firewall Linux iptables. Bajo Debian y las máximas distribuciones Linux está preinstalado ya iptables.
En la regla siguiente es definido que también localhost en adelante en MySQL el servicio puede agarrar:
iptables -A INPUT -i lo -p tcp –dport 3306 -j ACCEPT
Con reglas siguientes el acceso (el puerto en 3306) es permitido para las direcciones IP 10/27/0/80 y 192.168.0.90 y es cerrado para todos los demás:
iptables -A INPUT -p tcp –dport 3306 -s 10.27.0.80 -j ACCEPT
iptables -A INPUT -p tcp –dport 3306 -s 192.168.0.90 -j ACCEPT
iptables -A INPUT -p tcp –dport 3306 -j REJECT –reject-with icmp-port-unreachable
Quién se pregunta ahora por qué en la orden de bloqueo el uso de REJECT es usado y no de DROP: Esto tiene la causa que con REJECT la relación es rechazada más rápidamente. En DROP la relación es rechazada y el cliente tiene que esperar Timeout.
Ahora las reglas iptables tienen que ser guardadas todavía mucho tiempo que ellos son quitados sin embargo después de Reboot de nuevo del sistema. Instrucciones a: Iptables guardan mucho tiempo
El más simplemente funciona sobre el programa „iptables-persistent“
apt-get install iptables-persistent
Con la instalación deberá ser tomado de modo preguntado si la regla inmediatamente en los ficheros de configuración. Esto puede ser hecho igual. De lo contrario se encuentran Configfiles bajo/etc/iptables.