Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql hinter firewall
Guten Tag zusammen,
ich möchte von einer website (extern) auf einen mysql-server (intern) zugreifen.
iptables -A INPUT -j ACCEPT -p tcp --dport 3306
iptables -A FORWARD -j ACCEPT -p tcp --dport 3306
iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to <mysql-server>:3306
sollte doch eigentlich reichen, oder ???
tut es aber nicht.
die site lädt ca. eine minute und meldet dann, es konnte nicht zur db verbunden werden :-(
Vorschläge ????
... die MySQL nimmt externe Verbindungen an? (ohne, dass ich die iptables jetzt mal angeschaut habe...)
wie schauts mit skip_networking aus?
skip_networking aus?
????? :confused:
Ist in der /etc/my.cnf MySQL-Konfigurationsdatei die Zeile mit skip-networking aktiv oder als Kommentar eingegeben?
Ist in der /etc/my.cnf MySQL-Konfigurationsdatei die Zeile mit skip-networking aktiv oder als Kommentar eingegeben?
ist aus :-)
Ist IP-Forwarding aktiviert?
cat /proc/sys/net/ipv4/ip_forward
Was ist die default-Policy vom OUTPUT bei iptables? Vielleicht kannst du mal die Ausgabe vom folgenden Befehl hier pasten:
iptables -L
Achja: Hat der MySQL-User, der sich zur Datenbank verbinden will, die entsprechenden Permissions in der MySQL-Datenbank von extern zuzugreifen?
das forwarding funzt ja auch für fernwartung !!!!
regelt den mysql alles über 3306 ab ????
von internen rechnern kann ich auch mit dem gleichen script auf die db.
user/passwd ist also OK :-)
regelt den mysql alles über 3306 ab ????
Ja, wobei die Client Ports hinzukommen (1024 und höher).
von internen rechnern kann ich auch mit dem gleichen script auf die db.
user/passwd ist also OK :-)
Das ist bedingt richtig. Denn: MySQL überprüft nicht nur User und Passwort, sondern auch die IP-Adresse bzw. den Hostnamen vom Client.
Deshalb wiederhole ich nochmal die Frage: Hat der User in der MySQL-Datenbank die Privilegien von außen (also nicht nur localhost) auf die Datenbank zuzugreifen?
klar, ich kann auf allen möglichen internen rechnern phpmyadmin aufspielen und auf die "entfernte" db zugreifen.
Benutzer Host Kennwort Globale Rechte Grant
root % Ja ALL PRIVILEGES Ja
sollte ja reichen ;-)
ich vermute ja, dass es an den filterregeln liegt:
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -j ACCEPT -p tcp --dport 3306
iptables -A FORWARD -j ACCEPT -p tcp --dport 3306
iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to <mysql-server-ip>:3306
Füge mal folgende iptables-Regel hinzu:
iptables -A FORWARD -p tcp --sport 3306 -j ACCEPT
isses leider auch nicht :-(
jetzt wird lustich :-)
ich habe mal das forwarding zu einem anderen mysql-server versucht und es geht.
der steht allerdings hinter eine gw in einem anderen internen netz.
da frag ich mich doch, warum kann ich von <netz>.1 nicht zu <netz>.2 aber von <netz>.1 zu <anderesnetz>.123 ???
masq ??? nat ???
also ich hab keine ahnung !!!
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 3306 -j SNAT --to-source <eigene-ip>
is die lösung !!!!
:rolleyes:
Hätte ich auch drauf kommen können. Nuja, jetzt hast du es ja. :)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.