MariaDB (Mysql) Externe Verbindungen zulassen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
fabi2604
Beiträge: 8
Registriert: 10.01.2018 16:15:21

MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von fabi2604 » 29.07.2019 16:41:33

Hallo,

ich will meine Datenbank (MariaDB) so einstellen, dass externe Verbindungen zugelassen werden, bzw nur bestimmt Verbindungen zugelassen werden.
Hab jetzt bereits was gelesen. Wo man die my.conf öffnen muss, wo man die Eintrag "bind-adresse" umändern muss. Bzw "127.0.0.1" auf "0.0.0.0".
Außerdem habe ich meine Mysql Benutzer von "localhost" auf "%" gestellt. Aber dennoch kann ich auf die Datenbank extern nicht zugreifen.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von hec_tech » 29.07.2019 21:55:22

Hast du nach der Änderung der Bind Address MariaDB neu gestartet?

Hast du nach dem Ändern dern Benutzer ein FLUSH PRIVILEGES durchgeführt?

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von eggy » 29.07.2019 23:14:28

Erstmal schauen was von den Configänderungen ankam, evtl wars die falsche Datei:

Code: Alles auswählen

mysqld --print-defaults
Welche bind-address ist da aktiv? Und halt mal Ausschau, ob da irgendwo "skip-networking" steht.
Dann im mysql client schauen, was bezüglich der Berechtigungen greift:

Code: Alles auswählen

SELECT User, Host FROM mysql.user; 
Wenn das soweit ok ist, hängts vielleicht an ner Firewall? Was sagen iptables und co?

https://mariadb.com/kb/en/library/confi ... nt-access/ kennst Du schon?

Und auch wenns leicht Offtopic ist: ne Datenbank direkt am Netz betreiben ist selten ne gute Idee, besonders wenn man keine Ahnung hat, was man da genau machen muss. Nur die Zugriffe einschränken reicht nicht, es gibt noch nen Haufen anderer Stellschrauben die für unerwünschten Besuch auf der Kiste sorgen können.

fabi2604
Beiträge: 8
Registriert: 10.01.2018 16:15:21

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von fabi2604 » 30.07.2019 00:16:16

Danke für eure schnelle Rückmeldung.

@hec-tech

Maria-DB habe ich nach dem ändern neugestartet. Aber kein FLUSH PRIVILEGES durchgeführt.

@eggy

Folgendes gibt mir mysqld --print-defaults aus:
mysqld would have been started with the following arguments:
--user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysq ld.sock --port=3306 --basedir=/usr --datadir=/var/lib/mysql --tmpdir=/tmp --lc-m essages-dir=/usr/share/mysql --skip-external-locking --bind-address=0.0.0.0 --ke y_buffer_size=16M --max_allowed_packet=16M --thread_stack=192K --thread_cache_si ze=8 --myisam_recover_options=BACKUP --query_cache_limit=1M --query_cache_size=1 6M --log_error=/var/log/mysql/error.log --expire_logs_days=10 --max_binlog_size= 100M --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
"skip-networking" habe ich nicht gefunden. Auf einem Thread entnommen habe ich die "bind-adress" auf "0.0.0.0" gesetzt damit der MySQL Service nach außen lauscht.

Und folgendes gibt mir SELECT User, Host FROM mysql.user;:
+------------+-----------+
| User | Host |
+------------+-----------+
| phpmyadmin | % |
| phpmyadmin | localhost |
| root | localhost |
+------------+-----------+
3 rows in set (0.00 sec)
Ambesten würde ich den Zugriff auch nur auf bestimmte IPs zulassen.

DeletedUserReAsG

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von DeletedUserReAsG » 30.07.2019 07:51:28

Ich würde auch mal mit z.B. netstat schauen, ob der mysqld überhaupt mit den gewünschten Parametern am gewünschten Interface lauscht. Wenn das nicht der Fall ist, wär’s nicht zielführend, in der Userkonfiguration rumzuschauen. Wenn’s der Fall ist, kann ein Portscan von der Maschine, von der aus zugegriffen werden soll, mögliche Probleme mit dem Netzwerk aufzeigen oder ausschließen.

Die konkrete Fehlermeldung, statt „kann nicht zugreifen“ (aka „geht nicht!“), würde übrigens auch ’nen Hinweis gegeben haben.

fabi2604
Beiträge: 8
Registriert: 10.01.2018 16:15:21

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von fabi2604 » 30.07.2019 21:13:53

Also netstat gibt folgendes aus:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:45955 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25639 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:32330 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 88.99.29.67:27021 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::41604 :::* LISTEN
tcp6 0 0 127.0.0.1:25510 :::* LISTEN
tcp6 0 0 88.99.29.67:70 :::* LISTEN
tcp6 0 0 88.99.29.67:7080 :::* LISTEN
tcp6 0 0 :::32808 :::* LISTEN
tcp6 0 0 :::6379 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::8087 :::* LISTEN
tcp6 0 0 :::443 :::* LISTEN
tcp6 0 0 :::25565 :::* LISTEN
tcp6 0 0 0.0.0.0:20001 :::* LISTEN
Und lauschen tut er ja über den Port 3306

DeletedUserReAsG

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von DeletedUserReAsG » 30.07.2019 22:48:27

Gut, dann wäre das als Fehler schon mal aussortiert. Bleibt die Frage, was genau denn für ein Fehler kommt, wenn du dich zu verbinden versuchst. Einhergehend mit der Frage, wie du dich zu verbinden versuchst.

fabi2604
Beiträge: 8
Registriert: 10.01.2018 16:15:21

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von fabi2604 » 30.07.2019 23:15:50

Folgendes wird mir von meine Console wiedergegeben wo ein Plugin sich versucht zu Datenbank zu verbinden.

Code: Alles auswählen

[23:13:46] [Server thread/ERROR]: [LuckPerms] Failed to init storage dao
[23:13:51] [Server thread/WARN]: Caused by: java.sql.SQLTransientConnectionException: luckperms-hikari - Connection is not available, request timed out after 5001ms.
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:697)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:196)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:161)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.common.storage.implementation.sql.connection.hikari.HikariConnectionFactory.getConnection(HikariConnectionFactory.java:131)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.common.messaging.sql.SqlMessenger.getConnection(SqlMessenger.java:84)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.common.messaging.sql.AbstractSqlMessenger.init(AbstractSqlMessenger.java:55)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.common.messaging.sql.SqlMessenger.init(SqlMessenger.java:54)
[23:13:51] [Server thread/WARN]:        ... 15 more
[23:13:51] [Server thread/WARN]: Caused by: me.lucko.luckperms.lib.hikari.pool.PoolBase$ConnectionSetupException: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=88.99.29.67)(port=3306)(type=master) : connect timed out
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:501)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.access$100(HikariPool.java:71)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:727)
[23:13:51] [Server thread/WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:713)
[23:13:51] [Server thread/WARN]:        at java.util.concurrent.FutureTask.run(Unknown Source)
[23:13:51] [Server thread/WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[23:13:51] [Server thread/WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[23:13:51] [Server thread/WARN]:        ... 1 more
Zuletzt geändert von fabi2604 am 31.07.2019 23:02:05, insgesamt 2-mal geändert.

DeletedUserReAsG

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von DeletedUserReAsG » 31.07.2019 07:23:24

Code: Alles auswählen

[23:13:51] [Server thread/WARN]: Caused by: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=88.99.29.67)(port=3306)(type=master) : connect timed out
Das weist dann doch auf Netzwerkprobleme, bzw. Probleme auf der Clientseite hin. Ich würde empfehlen, von der betreffenden Maschine aus manuell zu versuchen, eine Verbindung aufzubauen und zu gucken, ob sich nicht bessere Informationen finden lassen. Auch könntest du von der Zielmaschine aus manuell eine Verbindung unter Angabe der externen IP aufmachen, um zu schauen, ob’s tatsächlich nicht am Server liegt. (Siehe Edit)

Zwei Bitten: könntest du Ausgaben zwischen [​code] und [/code] stellen, statt zwischen [​quote] und [/quote]? Das würd’s lesbar machen. Und könntest du die Ausgabe bitte auf relevante Teile beschränken? Das würd’s noch viel mehr lesbar machen. Der ganze Javakram interessiert nicht – besser wär’s sowieso, zum Debuggen die Verbindungen manuell aufzubauen.

Edit: nachdem die IP nun vorliegt, habe ich nun mal selbst den Portscan durchgeführt, den du eigentlich gemacht haben solltest:

Code: Alles auswählen

3306/tcp  filtered mysql
→ dort sitzt, irgendwo dicht vor der Zielmaschine (oder darauf), ein Paketfilter, welcher diesen Port blockiert. Du müsstest nun schauen: ist’s ein Paketfilter auf der Zielmaschine selbst, den entsprechend konfigurieren. Blockiert’s der Anbieter, diesen kontaktieren und um Freigabe bitten; alternativ auf ’nen anderen Port ausweichen (und mittelfristig nach ’nem besseren Anbieter schauen).

OT: da sind noch ’ne Menge anderer unüblicher Ports offen – ich hoffe, das soll so sein, und du weißt, was du da tust. Ich habe da nicht näher geschaut – will ja nicht schuld sein, wenn’s ganz kaputtgeht und will auch nicht in den Logs auftauchen, wenn irgendwer Anzeige erstattet, weil er von Malware von der Maschine aus belästigt wird, oder weil illegaler Kram über die Maschine läuft.

fabi2604
Beiträge: 8
Registriert: 10.01.2018 16:15:21

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von fabi2604 » 31.07.2019 23:01:03

Also auf der Root-Maschine laufen ein paar Dienste. Das kann die offenen Ports erklären.
Wie finde ich denn heraus ob es ein Paketfilter ist? Das ist ein Root-Server bei Hetzner denke da bin ich gut aufgehoben.

DeletedUserReAsG

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von DeletedUserReAsG » 31.07.2019 23:43:35

Du solltest nicht rausfinden, ob es ein Paketfilter ist – das steht außer Frage. Du solltest rausfinden, wo der ist. Allerdings habe ich gerade nochmal geschaut und gefunden, dass der Port nun offen ist.

Ich denke, ich verabschiede mich mal aus diesem Thread – komme mir schon irgendwie ein wenig verschaukelt vor.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: MariaDB (Mysql) Externe Verbindungen zulassen

Beitrag von eggy » 01.08.2019 07:24:07

Mal vorweg: nicht zu wissen, warum auf nem öffentlich erreichbaren Server, den man selbst betreut, Ports offen sind, halte ich für grob fahrlässig. Das zeugt im besten Fall von naiver Sorglosigkeit, im schlechtesten von gnadenloser Inkompetenz. Kümmer Dich darum, sonst bekommst Du relativ schnell ungebeten Besuch (falls der nicht schon längst da ist), und das kann sehr böse Folgen -für Dich und andere- haben.

Zurück zum Problem: mach die Verbindung mit dem mysql-client und von dem Rechner aus, wo die Java-Anwendung läuft und poste sämtliche Ausgaben.

Antworten