Neuer Firefox-Syncserver (Rust) in Docker mit MariaDB-Datenbank

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
269
Punkte für Reaktionen
5
Punkte
24
@Adama

Welches Docker MySql 5.7 hast Du genommen ??

Grüße
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.500
Punkte für Reaktionen
5.074
Punkte
544
Gar keines. Es wird MariaDB genommen
 

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
269
Punkte für Reaktionen
5
Punkte
24
Ok naja so lange der alter Sync noch läuft reicht es mir. Schade das der Rust nicht geht....
 

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Ich denke, das ist das Problem bei dir. Ich mache es so, dass ich mich mit Firefox mit dem ReverseProxy über https verbinde. Dieser verbindet sich aber via http mit dem SyncServer

@plang.pl und @Adama

Der Tip mit dem Reverse Proxy ist echt super! Setze ich direkt um.

Frage #1 --> Falls es natürlich eine native ssl-Unterstützung im Firefox SyncServer gäbe, wäre das wesentlich besser. Kennt Ihr da eine?
Frage #2 --> Reverse Proxy kann man auch mit Zugangskontrollen konfigurieren. Wie ich's verstehe, aber nur von festen IP-Adressen aus, richtig?
 
Zuletzt bearbeitet:

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
@Adama

Dir vielen Dank. Deine Hilfe war echt Gold wert !!!
Hat mir sehr geholfen das korrekt eingestellte vom Fehler zu unterscheiden und anzugehen !!!

Im Moment teste ich den Firefox SyncServer von lokal und entfernt und er funktioniert wie's aussieht zuverlässig. Dann werden das wohl meine drei Probleme und die Lösungen dazu sein ...
  • In MariaDB 10 war die Funktion TCP/IP-Verbindung aktivieren ausgeschaltet

  • Pfad in Firefox about:config darf abweichend vom Beschrieb hier nicht https:// sein, sondern http:// und nur ein Slsh nach Port ...
    identity.sync.tokenserver.uri --> http://<IP-Adresse>:<Port>/1.0/sync/1.5/

  • dritten Eintrag in Tokenserver-Datenbank anpassen und https:// durch http:// ersetzen ...
    USE tokenserver_rs;
    INSERT IGNORE INTO services (id, service, pattern) VALUES ('1', 'sync-1.5', '{node}/1.5/{uid}');
    INSERT INTO nodes (id, service, node, available, current_load, capacity, downed, backoff) VALUES ('1', '1', ':http//MYDOMAIN.TLD:<port>', '1', '0', '5', '0', '0');

    Ich habe bei den Einträgen festgestellt, dass man bei eine inkorrekte Zuordnung von https://<Doamin>:<Port> nur noch durch ein Löschen des Docker-Containers und löschen der Datenbank-Datensätze entfernen kann. Komischerweise hat das bei mir nicht funktioniert mit einfach Docker-Container stoppen und in der Datenbank die Datensätze unter Tokenserver_rs löschen, neu generieren und Einträge neu machen. Da musste ich wirklich den ganzen Firefox SyncServer runterschmeissen Datensätze der DAtenbank löschen und von Grund auf neu aufsetzen.

Hoffe, ich habe damit alle meine Lösungen gepostet. Vielleicht hilft es jemanden ...
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.500
Punkte für Reaktionen
5.074
Punkte
544
Frage 1 kann ich leider nicht beantworten. Ich denke aber, dass das nativ nicht unterstützt wird.
Zu Frage 2: So ist es.
 

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Frage #1 --> Schade. Danke ...

Frage #2 --> Hm, Zugangskontrollen nur mit festen IP-Adressen ... Wie macht man das über's Intenet? Bedeutet das, dass man mit Kenntnis von einem fremden Hostnamen und Port sich theoretisch auf diesem fremden NAS einloggen und Lesezeichen etc. synchronisieren kann?
 
Zuletzt bearbeitet von einem Moderator:

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.500
Punkte für Reaktionen
5.074
Punkte
544
Naja. Ich persönlich würde den Sync Server einfach nicht nach draußen freigeben.
 

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
@plang.pl

Ja, das scheint mir auch so. Die Sicherheitslücke möchte ich dann auch nicht. Aber aus welchem Grund hast Du dann den Reverse Proxy laufen? Der einzige Grund, den ich dafür sehe, ist es doch eine unverschlüsselte Verbindung von Aussen nicht zuzulassen. Also kommt über's Internet eine verschlüsselte Anfrage, die am Reverse Proxy auf einen unverschlüsselte Adresse weitergeleitet wird.

Oder habe ich Deine Konfiguration falsch interpretiert?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.500
Punkte für Reaktionen
5.074
Punkte
544
Nein, ich greife auf alle Dienste intern mit dem Reverse Proxy zu.
Vorteile: Ich muss mir keine Ports merken. Die Anfragen landen alle per https am RP.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.002
Punkte für Reaktionen
585
Punkte
154
Stimmt, habe ich nicht eindeutig geantwortet. Entschuldige bitte. Mein Eintrag in about:config ist korrigiert:
identity.sync.tokenserver.uri --> https://<IP-Adresse>:<Port>/1.0/sync/1.5/
Bei den Einträgen der Tokenserver-Datenbank bin ich mir jetzt unsicher, welche du meinst. Wie gepostet (#175) habe ich die hier ergänzt:

USE tokenserver_rs;INSERT IGNORE INTO services (id, service, pattern) VALUES ('1', 'sync-1.5', '{node}/1.5/{uid}');INSERT INTO nodes (id, service, node, available, current_load, capacity, downed, backoff) VALUES ('1', '1', 'https://MYDOMAIN.TLD:<port>', '1', '0', '5', '0', '0');
Was mich bei den Einträgen stutzig macht ... Ich kann meine Datenbank nicht verschlüsselt (https) erreichen, sondern nur unverschlüsselt (http). Die Einträge für tokenserver_rs lauten aber auf https://... Wenn ich die Dantenbank nochmals lösche, dann neuinitialisiere und die Einträge der Tokenserver-Datenbank nur als http-Verweise eintrage, dann synchronisiert der Firefox Syncserver wie er's soll ...

Kann es sein, dass Firefox SyncServer keine verschlüsselten Verbindungen akzeptiert?
Das meiste ist ja schon beantwortet worden.

Und ja die Datenbank-Einträge meinte ich. Der Eintrag in der Datenbank muss der selbe sein, mit dem du den Sync-Server ansprechen willst, egal ob HTTP oder HTTPS.

Ich mache es wie @plang.pl extern und intern über einen Remote Proxy, nicht über die Syno sondern über einen Raspi.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.002
Punkte für Reaktionen
585
Punkte
154

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Ich mache es wie @plang.pl extern und intern über einen Remote Proxy, nicht über die Syno sondern über einen Raspi.

@Adama

Das ist so der Teil, den ich nicht verstehe bzw. wo meine Frage noch nicht beantwortet wäre. Vielleicht kannst Du mir das sagen ...

Du sagst, Du greifst von Extern zu. Das bedeutet verschlüsselter Datenzugriff übers Internet auf den Reverse Proxy, der das dann unverschlüsselt an den Firefox SyncServer weiterleitet. Damit ist der Dienst von Extern (Internet) für alle erreichbar. Da Firefox SyncServer keine Nutzerverwaltung bietet, kann man nicht explizit Sync-Nutzer anlegen/zulassen und alle anderen damit ausschliessen. Der Dienst ist auf dem nach aussen offen Port für jedermann erreichbar. Wer also einen Firefox-Account hat und meinen https://<Hostnamen>:<Port> kennt, kann sich mit dem Firefox SyncServer auf meinem NAS synchronisieren.

Habe ich das richtig verstanden? Und falls ja, wie gehst du mit dieser Sicherheitslücke um?
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.002
Punkte für Reaktionen
585
Punkte
154
Ohne ein Firefox-Konto kannst du auf den Syncserver nicht zugreifen. Erinnere dich an dieses Bild:
sync.PNG
Unauthorized bekommst du, weil du nicht übers Firefox-Konto kommst. Also hat der Syncserver eine Benutzerverwaltung: Das Firefox-Konto.

Die Daten selbst sind in der Datenbank verschlüsselt:
syncdb.PNG
Du kannst außerdem noch festlegen, wieviele Benutzer angelegt werden können. Das findet sich in dem einen Datenbank-Eintrag, den du ergänzen musst:
"INSERT INTO nodes (id, service, node, available, current_load, capacity, downed, backoff) VALUES ('1', '1', 'https://<your_server>:<port>', '1', '0', '5', '0', '0')"

D.h. maximal fünf User können angelegt werden, ist auch so im ersten Post beschrieben.

Außerdem betreibe ich meinen Reverse-Proxy nicht über einen Standard-Port wie 443 für SSL.

Also ich sehe keine Sicherheitslücke...
 

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
@Adama

Das sind viele gute Antworten. Perfekt. Will's genauso machen ... :)

Ohne ein Firefox-Konto kannst du auf den Syncserver nicht zugreifen. Erinnere dich an dieses Bild:
Unauthorized bekommst du, weil du nicht übers Firefox-Konto kommst. Also hat der Syncserver eine Benutzerverwaltung: Das Firefox-Konto.
Ja, das schon. Theoretisch geht es aber trotzdem. Man müsste einen Firefox-Account haben und meinen Hostnamen und Port kennen. Der Fall ist aber unwahrscheinlich ...

Die Daten selbst sind in der Datenbank verschlüsselt:
Das ist mir entgangen. Danke für den Hinweis ...

Du kannst außerdem noch festlegen, wieviele Benutzer angelegt werden können. Das findet sich in dem einen Datenbank-Eintrag, den du ergänzen musst:
"INSERT INTO nodes (id, service, node, available, current_load, capacity, downed, backoff) VALUES ('1', '1', 'https://<your_server>:<port>', '1', '0', '5', '0', '0')"
D.h. maximal fünf User können angelegt werden, ist auch so im ersten Post beschrieben.
Das habe ich sicher 3x mal gelesen und konnte mich nicht mehr daran erinnern.
Klar, habe Nutzer auf gewollte Anzahl limitiert (capacity = current_load)

Außerdem betreibe ich meinen Reverse-Proxy nicht über einen Standard-Port wie 443 für SSL.
Standard-Ports sowieso nicht, habe auch nur Sonderports.

Also ich sehe keine Sicherheitslücke...
Eine kleine Sicherheits-Restlücke bleibt. Aber die ist kaum auffindbar und Eintretensfall unwahrscheinlich.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.500
Punkte für Reaktionen
5.074
Punkte
544
Zudem es ja nicht so gravierend wäre, wenn jemand einfach so dort Daten hinsynchronisiert. Und das wird wohl kaum jemand machen (warum auch). Um deine Daten abzugreifen, müsste er sich ja mit dem identischen Konto anmelden
 

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Hoi Zusammen

Bei mir läuft der Firefox SyncServer jetzt wie gewünscht. Nicht zuletzt Dank Eurer Hilfe! Habe schon lange DSs von Synology und schon immer vom KnowHow des Forums profitiert. Habe aber noch nie aktiv teilgenommen. Frag' mich heute, warum eigentlich. Ist eine tolle Erfahrung und tolle Hilfe. Falls ich einen Teil meiner Lösung vergessen habe zu posten, bitte melden oder nachfragen. Bis zum nächsten Mal ...
 
  • Like
Reaktionen: Adama

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.002
Punkte für Reaktionen
585
Punkte
154

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.002
Punkte für Reaktionen
585
Punkte
154
Ich glaube, dann kann man sich schon recht sicher fühlen.

Ich hab übrigens auf meinem Reverse-Proxy auch noch Geo-Location eingerichtet und den Zugriff auf Adressen aus D eingeschränkt.

Das ist zwar auch keine 100%ige Sicherheit, aber immerhin eine weitere Klippe auf dem Weg.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!