Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird Zugriff auf Server (https://www.delphipraxis.net/204183-firebird-zugriff-auf-server.html)

MrSpock 3. Mai 2020 16:22

Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC und JDBC

Firebird Zugriff auf Server
 
Ich habe gerade mal wieder Firebird 2.5 auf meinem Linux Server installiert. Wenn ich über SSH auf den Server gehe, kann ich mit fb-isql auf die "lokal" auf dem Server liegenden Datenbanken zugreifen.

Wenn ich jetzt versuche auf den Server von meinem lokalen Rechner zuzugreifen, funktioniert es nicht. Fehlermeldung ist:

Zitat:

Unable to complete network request to host "xx.yyyy.zzz.aa". [SQLState:08006, ISC error code:335544721]
Connection refused (Connection refused)
Connection refused (Connection refused)
Habe den Zugriff über IBDAC, IBEXPERT und DBeaver versucht, aber immer weigert sich der Server zu connecten.

Auf meinem Server ist eine Firewall aktiviert, bei der ich den Port 3050 über Plesk freigegeben habe:

Zitat:

Eingehend von alle auf Port 3050/tcp zulassen
Ausgehend zu alle auf Port 3050/tcp zulassen
Zusätzliche Info: Der Server nutzt ein ein LetsEncrypt SSL Zertifikat.

Woran kann es noch liegen, dass die Verbindung abgelehnt wird bzw. nicht zustande kommt?

mjustin 3. Mai 2020 17:44

AW: Firebird Zugriff auf Server
 
Ist die RemoteBindAddress in der firebird.conf gesetzt? Defaultmäßg ist sie leer und jeder Client sollte sich mit dem Server verbinden können.

bernau 4. Mai 2020 08:03

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von MrSpock (Beitrag 1463496)
Auf meinem Server ist eine Firewall aktiviert, bei der ich den Port 3050 über Plesk freigegeben habe:

Aber dann hat Hinz und Kunz Zugriff auf den Port und somit auf Firebird. Ist das wirklich so gewollt? Wozu solltest du dann noch SSH benötigen?

IBExpert 4. Mai 2020 09:21

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von mjustin (Beitrag 1463503)
Ist die RemoteBindAddress in der firebird.conf gesetzt? Defaultmäßg ist sie leer und jeder Client sollte sich mit dem Server verbinden können.

Ist aus meiner Sicht ein guter Tip, weil der zwar per default leer ist, aber viele linux paket installation den eben nicht leer haben, sondern auf localhost 127.0.0.1 per default gesetzt haben. Falls gesetzt, dann einfach auskommentieren oder anpassen auf deine reale ip.

Firebird ist zwar nicht bekannt für irgendwelche Hacks, aber auf dem default port 3050 würde ich den eher selten öffentlich betrieben, ist dann sehr einfach zu finden, wenn es mal so einen Kram gibt wie derzeit gerade mit 3389 Remotedesktop ... Sobald du irgendeinen anderen Port nimmst, müssen die nicht durch deine default ports scannen, sondern auch alle anderen, was wesentlich aufwändiger ist. Je nach Daten die über den Draht gehen, ist fb25 da aber eh kritisch, weil daten im klartext über den draht gehen, in fb30 sind die zumindest verschlüsselt. Sobald das persönliche Daten betrifft, könnte das Probleme geben ...

MrSpock 4. Mai 2020 10:58

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von bernau (Beitrag 1463542)
Zitat:

Zitat von MrSpock (Beitrag 1463496)
Auf meinem Server ist eine Firewall aktiviert, bei der ich den Port 3050 über Plesk freigegeben habe:

Aber dann hat Hinz und Kunz Zugriff auf den Port und somit auf Firebird. Ist das wirklich so gewollt? Wozu solltest du dann noch SSH benötigen?

Der Port, auf dem der Server den Firebirdserver - Service zur Verfügung stellt, den muss ich doch grundsätzlich freigeben, sonst wäre ja gar keine Verbindung möglich, oder? Natürlich könnte ich mit RemoteBindAddress den Zugriff enger fassen. Meintest du das?

Genauso muss ich ja den Port 80 freigeben, wenn jeder meine Homepage aufrufen können soll. Den Zugriff auf SSH habe ich natürlich eingeschränkt auf meinen Rechner, so dass auf SSH eben nicht jeder zugreifen kann.

MrSpock 4. Mai 2020 11:22

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von mjustin (Beitrag 1463503)
Ist die RemoteBindAddress in der firebird.conf gesetzt? Defaultmäßg ist sie leer und jeder Client sollte sich mit dem Server verbinden können.

Ich schau mir das heute Abend noch einmal an, meine aber, dass der Eintrag leer war. Deshalb war ich ja verwundert, dass ich mit keinem Client eine Verbindung herstellen kann.

tsteinmaurer 4. Mai 2020 11:51

AW: Firebird Zugriff auf Server
 
Hallo,

die Grundidee von RemoteBindAddress ist den Firebird Prozess an eine NIC zu binden, wenn man an größere Maschinen denkt, die mehrere NICs drinnen haben können (Hosting etc.).

Solche Connection Probleme sind Remote immer etwas schwer zu diagnostizieren. Könnte (oder eine Mischung daraus) sein:

* Firewall
* DNS Problem
* Firebird rejected die Connection weil z.b. Wire Encryption auf der Server-seite aktiv / als zwingend configuriert ist
* Veraltete Firebird Client-Library
* Ev. braucht man auch im Umfeld von Linux systemd was, wenn Firebird als Daemon läuft
* etc.

Als Basistest. Zeigt z.b. vom Client aus ein:
Code:
telnet <host> 3050
irgendeine Reaktion?

LG

bernau 4. Mai 2020 13:07

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von MrSpock (Beitrag 1463567)
Zitat:

Zitat von bernau (Beitrag 1463542)
Zitat:

Zitat von MrSpock (Beitrag 1463496)
Auf meinem Server ist eine Firewall aktiviert, bei der ich den Port 3050 über Plesk freigegeben habe:

Aber dann hat Hinz und Kunz Zugriff auf den Port und somit auf Firebird. Ist das wirklich so gewollt? Wozu solltest du dann noch SSH benötigen?

Der Port, auf dem der Server den Firebirdserver - Service zur Verfügung stellt, den muss ich doch grundsätzlich freigeben, sonst wäre ja gar keine Verbindung möglich, oder? Natürlich könnte ich mit RemoteBindAddress den Zugriff enger fassen. Meintest du das?

Genauso muss ich ja den Port 80 freigeben, wenn jeder meine Homepage aufrufen können soll. Den Zugriff auf SSH habe ich natürlich eingeschränkt auf meinen Rechner, so dass auf SSH eben nicht jeder zugreifen kann.


Du hattest folgendes geschrieben.

Zitat:

Zitat von MrSpock (Beitrag 1463496)

Auf meinem Server ist eine Firewall aktiviert, bei der ich den Port 3050 über Plesk freigegeben habe:

Zitat:

Eingehend von alle auf Port 3050/tcp zulassen
Ausgehend zu alle auf Port 3050/tcp zulassen

Wäre es nicht sinnvoller.

Zitat:

Eingehend von localhost auf Port 3050/tcp zulassen
Ausgehend zu localhost auf Port 3050/tcp zulassen
Sobald du per SSH auf dem Linux-Server bist, dann kommunizieren die Programme ja über localhost und nicht über die entfernte IP.

Vielleicht habe ich auch nur einen Gedankenfehler. Muss noch mal nachschlagen.

bernau 4. Mai 2020 13:13

AW: Firebird Zugriff auf Server
 
OK. Habe folgendes übersehen.

Zitat:

Zitat von MrSpock (Beitrag 1463496)
Wenn ich jetzt versuche auf den Server von meinem lokalen Rechner zuzugreifen, funktioniert es nicht.

Das heißt, du willst wirklich von "aussen" auf deinen Firebird zugreifen. Dann musst du die Ports tatsächlich öffnen.

Also eigentlich lese ich immer nur Artikel, von denen abgeraten wird eine direkte Verbindung zu einem SQL-Server über das Internet aufzubauen.

MrSpock 4. Mai 2020 13:16

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von tsteinmaurer (Beitrag 1463582)
Hallo,

die Grundidee von RemoteBindAddress ist den Firebird Prozess an eine NIC zu binden, wenn man an größere Maschinen denkt, die mehrere NICs drinnen haben können (Hosting etc.).

Solche Connection Probleme sind Remote immer etwas schwer zu diagnostizieren. Könnte (oder eine Mischung daraus) sein:

* Firewall
* DNS Problem
* Firebird rejected die Connection weil z.b. Wire Encryption auf der Server-seite aktiv / als zwingend configuriert ist
* Veraltete Firebird Client-Library
* Ev. braucht man auch im Umfeld von Linux systemd was, wenn Firebird als Daemon läuft
* etc.

Als Basistest. Zeigt z.b. vom Client aus ein:
Code:
telnet <host> 3050
irgendeine Reaktion?

LG

Ja, habe ich versucht, kam auch "connection refused" oder so ähnlich.
Übrigens habe ich sowohl über den Nameserver (hostname) als auch direkt über die IP versucht. Bei hostname wurde auch die korrekte IP ermittelt, sodass ein DNS Problem nicht vorliegt.

MrSpock 4. Mai 2020 13:21

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von bernau (Beitrag 1463610)
OK. Habe folgendes übersehen.

Zitat:

Zitat von MrSpock (Beitrag 1463496)
Wenn ich jetzt versuche auf den Server von meinem lokalen Rechner zuzugreifen, funktioniert es nicht.

Das heißt, du willst wirklich von "aussen" auf deinen Firebird zugreifen. Dann musst du die Ports tatsächlich öffnen.

Also eigentlich lese ich immer nur Artikel, von denen abgeraten wird eine direkte Verbindung zu einem SQL-Server über das Internet aufzubauen.

Zumindest einmal über IBExpert. Bei Anwendungen versuche ich im Moment über DreamFactory auf die Firebird Daten zuzugreifen.

bernau 4. Mai 2020 13:31

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von MrSpock (Beitrag 1463613)
Zumindest einmal über IBExpert. Bei Anwendungen versuche ich im Moment über DreamFactory auf die Firebird Daten zuzugreifen.

Du hattest ja in deinem ersten Post von einer SSH-Verbindung geschrieben. Deshalb hatte ich ursprünglich auch gedacht, dass du einen Tunnel per SSH realisiert hast. Deshalb mein Einwand mit der Firewall.

http://www.firebirdfaq.org/faq53/

MrSpock 4. Mai 2020 15:23

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von bernau (Beitrag 1463615)
Zitat:

Zitat von MrSpock (Beitrag 1463613)
Zumindest einmal über IBExpert. Bei Anwendungen versuche ich im Moment über DreamFactory auf die Firebird Daten zuzugreifen.

Du hattest ja in deinem ersten Post von einer SSH-Verbindung geschrieben. Deshalb hatte ich ursprünglich auch gedacht, dass du einen Tunnel per SSH realisiert hast. Deshalb mein Einwand mit der Firewall.

http://www.firebirdfaq.org/faq53/

Wie ich oben schon erwähnt habe, arbeite ich mich gerade in das DreamFactory Framework ein. Das erlaubt es mit einer REST API (automatisch generiert) auf Datenbanken zuzugreifen. Damit ich aber meine Tabellen auf dem Server "einfacher" pflegen kann, greife ich über DBeaver auf die Datenbank zu. Mit DBeaver kann ich vorher einen SSL Tunnel einrichten und dann IP Forwarding machen, mit dem ich den Port 3050 auf einen anderen Port auf dem Server umleite.

Es müsste aber möglich sein, wenn man den Port, den man für Firebird Service definiert, in der Firewall freigibt, auch "direkt" auf den Server zugreifen zu können. Ich schau mir (neben den zahlreichen Hinweisen) heute Abend noch einmal das Thema von tsteinmaurer an:

Zitat:

Firebird rejected die Connection weil z.b. Wire Encryption auf der Server-seite aktiv / als zwingend configuriert ist
Ich meine, dass ich damit schon einmal Probleme hatte.

MrSpock 4. Mai 2020 18:32

AW: Firebird Zugriff auf Server
 
Zitat:

Zitat von IBExpert (Beitrag 1463555)
Zitat:

Zitat von mjustin (Beitrag 1463503)
Ist die RemoteBindAddress in der firebird.conf gesetzt? Defaultmäßg ist sie leer und jeder Client sollte sich mit dem Server verbinden können.

Ist aus meiner Sicht ein guter Tip, weil der zwar per default leer ist, aber viele linux paket installation den eben nicht leer haben, sondern auf localhost 127.0.0.1 per default gesetzt haben. Falls gesetzt, dann einfach auskommentieren oder anpassen auf deine reale ip.

Danke Holger, genau das war es auch! Stand tatsächlich auf localhost.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz