[gelöst] MariaDB, remote access funktioniert plötzlich nicht mehr

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

[gelöst] MariaDB, remote access funktioniert plötzlich nicht mehr

Beitrag von Exxter » 09.08.2021 10:31:37

Hallo,

ich will remote auf einen MariaDB Server der auf einem Debian Buster läuft zugreifen. Das klappte bisher auch, aber jetzt kommt:

Access denied for user 'benuzter'@'11.22.33.44' (using password: YES)

Wenn ich auf dem Server schaue darf der User aber von überall darauf zugreifen:

Code: Alles auswählen

-- 'benutzer'@'%'
GRANT USAGE ON *.* TO `benutzer`@`%` IDENTIFIED BY PASSWORD '*5B02DXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' REQUIRE SSL;
GRANT ALL PRIVILEGES ON `benutzer`.* TO `benutzer`@`%`;
-- 'benutzer'@'localhost'
GRANT USAGE ON *.* TO `benutzer`@`localhost` IDENTIFIED BY PASSWORD '*5B02DXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
GRANT ALL PRIVILEGES ON `benutzer`.* TO `benutzer`@`localhost`;
Auch wenn ich die Berechtigung nochmal setze:

Code: Alles auswählen

root@uv:/etc/mysql$ mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 53
Server version: 10.5.12-MariaDB-1:10.5.12+maria~buster mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> GRANT ALL ON benutzer.* TO benutzer@'%' IDENTIFIED BY 'XXXXXXXXXXXXXXXXXX';
Query OK, 0 rows affected (0.181 sec)

MariaDB [(none)]> ALTER USER 'benutzer'@'%'     REQUIRE SSL;
Query OK, 0 rows affected (0.058 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]>
Klappt es nicht. In der error_log steht nur:

Code: Alles auswählen

2021-08-09 10:14:35 52 [Warning] Access denied for user 'benutzer'@'11.22.33.44' (using password: YES)
2021-08-09 10:21:25 54 [Warning] Access denied for user 'benutzer'@'11.22.33.44' (using password: YES)
2021-08-09 10:22:17 55 [Warning] Access denied for user 'benutzer'@'11.22.33.44' (using password: YES)
Ich muss gestehen, das ist ein Mariadb Server direkt von mariadb.org, weil ich die aktuelle Version davon brauchte. Jetzt wo bullseye quasi stable ist, will ich wieder zurück zum original Debian Repo.

Ach so, natürlich ist SSL aktiviert. Der Client ist HeidiSQL. Es sind keine Zertifikate angegeben, also diese Verbindung hat so funktioniert, das wundert mich.

Trotzdem jemand eine Idee dazu?
Zuletzt geändert von Exxter am 09.08.2021 14:30:01, insgesamt 1-mal geändert.

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: MariaDB, remote access funktioniert plötzlich nicht mehr

Beitrag von schwedenmann » 09.08.2021 10:51:21

Hallo


1. steht ev. in der /etc/mysql/mariadb.conf.d/50-server.cnf noch

listen 127.0.0.1 ?

Außerdem würde ich den grant Befehl für benutzter@11.22.33.44 ausführen.


mfg
schwedenmann

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: MariaDB, remote access funktioniert plötzlich nicht mehr

Beitrag von Exxter » 09.08.2021 11:04:06

Sorry du hast Recht, die Einstellung habe ich vergessen zu posten:

Code: Alles auswählen

root@uv:/etc/mysql$ grep -r bind-address *
mariadb.conf.d/60-galera.cnf:#bind-address = 0.0.0.0
mariadb.conf.d/50-server.cnf:bind-address            = 0.0.0.0
root@uv:/etc/mysql$
Außerdem würde ich den grant Befehl für benutzter@11.22.33.44 ausführen.
Guter Einwand, ist noch ein Stück mehr Sicherheit. Ansonsten ist da eh eine Firewall davor die nur Zugriff von 11.22.33.44 zulässt.

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: MariaDB, remote access funktioniert plötzlich nicht mehr

Beitrag von Exxter » 09.08.2021 14:12:55

So, ich habe jetzt mal die Version von mariadb.org runtergeschmissen, auf Bullseye geupgradet und Mariadb aus dem Debian Repo installiert. bind-address nochmal angepasst außerdem die SSL-Einstellungen angepasst. Die Zertifikate von Lets Encrypt:

Code: Alles auswählen

[mysqld]
require-secure-transport = on
ssl-ca = /etc/letsencrypt/live/example.org/chain.pem
ssl-cert = /etc/letsencrypt/live/example.org/cert.pem
ssl-key = /etc/letsencrypt/live/example.org/privkey.pem
Aber:

Code: Alles auswählen

MariaDB [(none)]> SHOW VARIABLES LIKE 'have_ssl';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| have_ssl      | DISABLED |
+---------------+----------+
1 row in set (0.001 sec)

MariaDB [(none)]>

Code: Alles auswählen

MariaDB [(none)]> show variables like '%ssl%';
+---------------------+-----------------------------------------------+
| Variable_name       | Value                                         |
+---------------------+-----------------------------------------------+
| have_openssl        | YES                                           |
| have_ssl            | DISABLED                                      |
| ssl_ca              | /etc/letsencrypt/live/example.org/chain.pem   |
| ssl_capath          |                                               |
| ssl_cert            | /etc/letsencrypt/live/example.org/cert.pem    |
| ssl_cipher          |                                               |
| ssl_crl             |                                               |
| ssl_crlpath         |                                               |
| ssl_key             | /etc/letsencrypt/live/example.org/privkey.pem |
| version_ssl_library | OpenSSL 1.1.1k  25 Mar 2021                   |
+---------------------+-----------------------------------------------+
10 rows in set (0.001 sec)

MariaDB [(none)]>
Könnte jetzt auch an nicht ganz korrekten SSL-Einstellungen liegen. Aber laut: https://mariadb.com/kb/en/securing-conn ... nd-server/
sollte es laufen.. :?

Wenn ich:
mysql --ssl -h example.org -u benutzer -p
vom gleichen Server mache klappt es nach der Passworteingabe, von einem remote Server klappt es nicht:

Code: Alles auswählen

root@ycloud:~$ mysql --ssl -h example.org -u benutzer -p
Enter password:
ERROR 1045 (28000): Access denied for user 'benutzer'@'11.22.33.44' (using password: YES)
root@ycloud:~$

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: [gelöst] MariaDB, remote access funktioniert plötzlich nicht mehr

Beitrag von Exxter » 09.08.2021 14:33:21

Läuft. Anstatt die Lets Encrypt Zertifikate habe ich die Zertifikate benutzt die bereits in /etc/mysql/ rumlagen:

ssl-ca = /etc/mysql/ca-cert.pem
ssl-cert = /etc/mysql/server-cert.pem
ssl-key = /etc/mysql/server-key.pem

Aber die könnten eigentlich auch schon so benannt sein oder in der mariadb.conf.d/50-server.cnf stehen, dass sie passen.

Jedenfalls:

Code: Alles auswählen

root@uv:/etc/mysql$ mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 30
Server version: 10.5.11-MariaDB-1-log Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SHOW VARIABLES LIKE 'have_ssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl      | YES   |
+---------------+-------+
1 row in set (0.001 sec)

MariaDB [(none)]>
Und jetzt klappt auch der remote Zugriff.

Antworten