Gelesen 203

MySQL externer Zugriff erlauben – Bind Address

Cliff schrieb am 30.10.2021 um 11:03 Uhr

Der Zugriff von anderen IP Adressen als der Localhost (127.0.0.1) ist in der Standardkonfiguration von MySQL untersagt. So wir der externe MySQL Datenbank Zugriff erlaubt

Der Zugriff von anderen IP Adressen als der Localhost (127.0.0.1) ist in der Standardkonfiguration von MySQL untersagt. So wir der externe MySQL Datenbank Zugriff erlaubt.

Externen MySQL Zugriff in der my.cnf aktivieren:

Der MySQL Server lauscht standardmäßig nur auf der localhost IP-Adresse (127.0.0.1). Folgender Eintrag in der my.cnf ist dafür verantwortlich (/etc/my.cnf oder /etc/mysql/my.cnf):

bind-address = 127.0.0.1

Um nun auch von anderen Rechnern auf den MySQL Server zugreifen zu können, wird der „bind-address“ Eintrag geändert. 0.0.0.0 weist an, dass der MySQL Server auf alle, für ihn verfügbaren, IP-Adressen lauscht:

bind-address = 0.0.0.0

Mit „bind-address = 192.168.200.1“ kann der Server z. B. auch konfiguriert werden, dass er nur über eine bestimmte IP-Adresse verfügbar ist.

MySQL Server neu starten, damit die Konfiguration übernommen wird:

/etc/init.d/mysql restart

Verbindung überprüfen (mit einem telnet auf die IP-Adresse/Hostname des Server und den MySQL Port 3306 kann überprüft werden, ob der MySQL Server korrekt antwortet):

telnet 192.168.200.1 3306

User für den externen Zugriff auf die MySQL Datenbank erlauben

Der MySQL Server lässt nun grundsätzlich Verbindungen von anderen (externen) IP-Adressen zu, aber die Datenbank User müssen noch die entsprechende Berechtigung erhalten.

Auf die MySQL Konsole verbinden:

mysql -u root -p

folgende Befehle geben dem User (dein_user) die Berechtigung von jedem Host aus (%) auf die Datenbank zuzugreifen:

use mysql;
update user set host=’%‘ where user=’dein_user‘;
update db set host=’%‘ where user=’dein_user‘;

Neuen MySQL Benutzer anlegen, damit externer Zugriff besteht (hier wird ebenfalls das „%“ statt „localhost“ verwendet:

create user ‚dein_user’@’%‘;

MySQL Zugriff für bestimmte IP-Adressen erlauben (MySQL IP Restriction) via iptables

Den MySQL Zugriff kann man auch für bestimmte IP-Adressen erlauben oder sperren. Hierzu behelfen wir uns anhand der Linux Firewall iptables. Unter Debian und den meisten Linux Distributionen ist iptables bereits vorinstalliert.

In folgender Regel wird definiert, dass auch der localhost weiterhin auf den MySQL Dienst zugreifen darf:

iptables -A INPUT -i lo -p tcp –dport 3306 -j ACCEPT

Mit folgenden Regeln wird der Zugriff (Port 3306) für die IP Adressen 10.27.0.80 und 192.168.0.90 erlaubt und für alle anderen gesperrt:

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

Wer sich nun fragt, warum beim Sperrbefehl der Einsatz von REJECT angewandt wird und nicht von DROP: Das hat den Grund, dass mit dem REJECT die Verbindung schneller abgelehnt wird. Bei DROP wird die Verbindung abgelehnt und der Client muss auf einen Timeout warten.

Die iptables Regeln müssen nun noch dauerhaft gespeichert werden, da sie sonst nach einem Reboot wieder vom System entfernt werden. Anleitung zu: Iptables dauerhaft speichern

Am einfachsten funktioniert das über das Programm „iptables-persistent“

apt-get install iptables-persistent

Bei der Installation wird gefragt, ob die Regel gleich in die Konfigurationsdateien übernommen werden sollen. Das kann gleich gemacht werden. Ansonsten befinden sich die Configfiles unter /etc/iptables.

zurück

Tags

Über den Author: Cliff

xProg.de Gründer. Jahrgang 1986. Stolzer Familienvater. Habe Früh mit Computer und Hardware angefangen. Die ersten Self-Made Computer waren nicht die besten, funktionierten aber tadellos. Kenne noch 56k-Modems, und habe mit Windows 3.1 angefangen meine ersten Texte zu schreiben, über Windows 95, bis zu Windows 7 dann aktiv eingestiegen. Auch arbeite ich aktiv mit Linux für Homebase als auch auf der Serverebene. 

Auf die Idee Anleitungen zu schreiben kam ich, als ich zum Thema Debian was gesucht habe. Leider waren viele Anleitungen oder vorschläge veraltet und daher leider nutzlos.

Wenn meine Anleitungen auch veraltet sein sollten, dann schreibt mir das bitte und ich versuche sie zu aktualisieren.

Wer mich (finanziell) unterstützen möchte, der kann mir hier gerne etwas spenden.

Webseiten: mailda.de - cliffdoelling.de
Facebook: https://www.facebook.com/cliff.doelling
Twitter: https://twitter.com/CainDawsonDE
Mastodon: https://mastodon.social/web/accounts/879797
Verdiene Bitcoins: https://get.cryptobrowser.site/51/9737510
Bitcoins Spenden: 19KuH5JKMvi93Ccdr12ZGaHtZzn2WammsZ

 

Letzte Beiträge

 


Internet News

weitere Internet Artikel

Nextcloud News

weitere Nextcloud Artikel

Linux News

weitere Linux News

Menü

RSS-Feed

Weitere Themen

Share Buttons

Unser Partner & Sponsor