ubuntutest2
Anmeldungsdatum: 31. Mai 2016
Beiträge: Zähle...
|
Hallo Liebes Forum, Ich möchte mir eine Unkomplizierte Server-Cloud Lösung einrichten. Dabei sollen 2 Server an 2 verschiedenen Standorten dienen.
Einer der beiden wird der Haupt-Server (erreichbar aus dem Internet) , der andere wird da wohl als Server-Client variante (nicht aus dem Internet erreichbar) arbeiten müssen und eine Verbindung je nach Wunsch (per Script) zum Hauptserver aufbauen. Dabei sollen die beiden local verschiedene Geräte (Windows, Ubuntu, Android) up-to-date halten und zwar nur meine Privaten Geräte. Ebenso soll der Hauptserver nur für den 2 Server erreichbar sein. Soweit so gut.
Jetzt möchte ich zum Thema Sicherheit, den Haupt-Server (nur über einen SSH Tunnel) erreichbar machen.
Dazu habe ich das Video hier gefunden: https://www.youtube.com/watch?v=7D-TDJzFgPk
Sollte so ja funktionieren oder ? Meine Frage ist nun:
Wie Verhält sich das ganze mit dem SSH Tunnel und den verschiedenen Systemen bzw. den Clienten. Windows, Ubuntu , Android.
Bieten diese überhaupt die Möglichkeit um sich automatisch über einen SSH Tunnel zu verbinden ?
Bei Ubuntu und Windows lässt sich das sicher mit einem Script bewerkstelligen oder doch auch über den Clienten ?
Wie lautet der Befehl für Linux um eine Verbindung zu Owncloud über einen SSH-Tunnel automatisch aufbauen zu lassen?
Aber wie ist es bei Android ? Ich möchte das, das ganze Automatisch geschieht, ich will nicht vorher noch irgendetwas im Smartphone rumtippen müssen, um das ganze dann syncen zu lassen. Können die verfügbaren owncloud-Clienten einen ssh Tunnel aufbauen oder muss ich tatsächlich vorher noch über eine SSH APP einloggen ?
Oder habe ich trotzdem noch die Möglichkeit Owncloud local zusätzlich ohne SSH erreichbar zu machen ? Ich hoffe ihr könnt mir weiterhelfen, danke schonmal
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Von Linux zu Linux nimmst du einfach deinen nur dir bekannten Befehl und davor rufst du ganz normal SSH auf. Und dann kann das z.B. in den Autostart. Moderiert von rklm: Antwort vom verborgenen, doppelten Thema umgehängt.
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Hallo ubuntutest2, Was du da beschreibst, ist meiner Meinung nach nicht ganz unkompliziert. Zumindest ist es etwas mehr, als der Otto-Normal-Owncloud-Admin haben will ☺
Ich verstehe nicht ganz, was du mit deinem 2-Server-Modell erreichen willst und wie du diese Verbindung aufbauen möchtest. Möchtest du die Daten, auf beiden Servern synchroniesieren oder bestimmte Daten nur auf einem der beiden Server vorhalten? In dem Video wird nicht erklärt, wie ein SSH-Tunnel gebaut wird, sondern es wird erklärt, wie ein TLS-Zertifikat eingerichtet wird unter Apache. Hier wird also SSH mit SSL bzw. TLS verwechselt. MfG, Daniel
|
ubuntutest2
(Themenstarter)
Anmeldungsdatum: 31. Mai 2016
Beiträge: 10
|
Von Linux zu Linux nimmst du einfach deinen nur dir bekannten Befehl und davor rufst du ganz normal SSH auf. Und dann kann das z.B. in den Autostart.
also mir ist wohl nicht ganz klar wie ich einen SSH Tunnel aufbaue ☺ sprich, wie bringe ich ein Programm (Owncloud-Client) dazu über SSH (verschlüsselt) eine Verbindung aufzubauen. In meinem Fall muss der Client Server (nicht aus dem Netz erreichbar) zum Haupt-Server (aus dem Netz erreichbar) per Script eine Verbindung aufbauen.
Was du da beschreibst, ist meiner Meinung nach nicht ganz unkompliziert. Zumindest ist es etwas mehr, als der Otto-Normal-Owncloud-Admin haben will ☺ Ich verstehe nicht ganz, was du mit deinem 2-Server-Modell erreichen willst und wie du diese Verbindung aufbauen möchtest. Möchtest du die Daten, auf beiden Servern synchroniesieren oder bestimmte Daten nur auf einem der beiden Server vorhalten?
Die Verbindung soll per Skript Zyklisch ausgeführt werden.
Allgemein sind es zwei Standorte die gesynct werden.
Das 2-Server Modell hat einen ganz einfachen Grund. Mein Server soll nicht 24/7 online erreichbar sein, ebenfalls darf nur der Client-Server auf den Hauptserver Zugreifen, habe damit weniger Regeln bzw. kann das ganze einfacher gestallten. Daher 2 Server, der eine baut zum anderen einmal Täglich eine Verbindung auf und syncronisiert. Danach geht der Hauptserver offline (also nur noch local Erreichbar) bzw. per Script wird der Zugang von Aussen verboten bzw. Ports geschlossen. Die Server verteilen dann die Daten an die Standortgebundenen Clienten. Ich verspreche mir davon etwas mehr Sicherheit bzw. fühle mich halt etwas besser wenn das ding nicht dauer online ist und nicht für jeden Zugänglich ist bzw. beschränkt. Ich muss dazu sagen, das ich das ganze bereits länger schon mit Unison am laufen habe und es läuft auch ganz gut. Nur hat Unison leider eine schlechte anbindung an andere Systeme.
In dem Video wird nicht erklärt, wie ein SSH-Tunnel gebaut wird, sondern es wird erklärt, wie ein TLS-Zertifikat eingerichtet wird unter Apache. Hier wird also SSH mit SSL bzw. TLS verwechselt.
Ok danke, hast du einen Link zu dem Thema, eventuell passend zu meinem anliegen Owncloud-SSH.
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Hallo, Ich hatte dir bereist den Wiki-Artikel zu SSH verlinkt (die unterstrichenen Wörter in meinem Beitrag sind Links, auf die du drauf klicken kannst 😉) - Hier nochmal der Absatz über Tunnel: SSH (Abschnitt „SSH-Tunnel“) Also wenn ich nun richtig verstanden habe, möchtest du folgendes machen:
interner Server steht hinter einer Firewall und ist somit von außen nicht erreichbar Hält alle Daten als "Failover", falls der öffentliche Server nicht mehr erreichbar ist, sodass du von intern noch darauf zugreifen kannst. verbindet sich regelmäßig mit dem öffentlichen Server, um seinen Datenbestand zu aktualisieren.
öffentlicher Server ist aus dem Internet erreichbar wenn der interne Server drauf zugreift, werden alle anderen Verbindungen geschlossen, sodass dieser einen Exklusivzugriff auf die Daten erhält.
richtig? MfG, Daniel
|
ubuntutest2
(Themenstarter)
Anmeldungsdatum: 31. Mai 2016
Beiträge: 10
|
Ich hatte dir bereist den Wiki-Artikel zu SSH verlinkt (die unterstrichenen Wörter in meinem Beitrag sind Links, auf die du drauf klicken kannst 😉) - Hier nochmal der Absatz über Tunnel: SSH (Abschnitt „SSH-Tunnel“)
Oh, danke, habe ich wohl irgendwie übersehen. interner Server * steht hinter einer Firewall und ist somit von außen nicht erreichbar * Hält alle Daten als "Failover", falls der öffentliche Server nicht mehr erreichbar ist, sodass du von intern noch darauf zugreifen kannst. * verbindet sich regelmäßig mit dem öffentlichen Server, um seinen Datenbestand zu aktualisieren. öffentlicher Server * ist aus dem Internet erreichbar * wenn der interne Server drauf zugreift, werden alle anderen Verbindungen geschlossen, sodass dieser einen Exklusivzugriff auf die Daten erhält.
Ich glaube das hast du noch nicht ganz verstanden, hoffe das wird jetzt etwas klarer ☺ Server 1 (Sitzt hinter einem Router) Arbeitet als Server und ebenfalls als client um sich mit dem Öffentlichem Server abzugleichen. * steht hinter einer Firewall (1) und ist somit von außen nicht erreichbar * Hält alle Daten die er mit dem öffentlichem Server abgeglichen hat, für meine internen Geräte an an seinem Standort bereit. * verbindet sich regelmäßig und nur zu bestimmten Zeiten mit dem öffentlichen Server (über das Internet), um seinen Datenbestand zu aktualisieren.
öffentlicher Server (Sitzt hinter einem anderem Router und Provider) * ist aus dem Internet erreichbar (nur nach Wunsch und auch nur für den Server 1) * steht ebenfalls hinter einer Firewall (2) diese ist aber Dynamisch, sodass er nur zu bestimmten Zeiten oder auch per Befehl aus dem Internet erreichbar wird. * wenn der Server 1 drauf zugreifen will, dann beginnt die Dynamische Firewall mit ihrer Arbeit (öffnet Ports, Forward regeln usw.) Ebenfalls werden dann auch Server Intern neue Regeln angelegt. Wenn der Job erledigt ist, werden alle Ports wieder geschlossen und der Server nach aussen hin wieder abgeschottet. * Hält alle Daten die er mit Server 1 abgeglichen hat, für meine internen Geräte an an seinem Standort bereit.
In kurzform:
2 Server, der eine gleicht sich mit dem anderem nach Wunsch ab. Dauerhaft sind alle Ports Geschlossen und alle Verbindungen nach aussen verboten. Einer von beiden (öffentlicher Server) ist nur gelegentlich bzw. per Script erreichbar. Ansonsten dienen beide ihrem jeweiligem Standort als ganz normaler Server. Kein Failover-Cluster oder der gleichen.
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Ich hab alles gesagt und dir SSH verlinkt - was soll da jetzt noch unklar sein? Und es nennt sich Master- und Slave-Server.
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Hallo ubuntutest2, Nach deiner Definition ist der "öffentliche Server" nur durch den anderen Server erreichbar, somit also nicht öffentlich 😉 - OK. Versuchen wir es mal nochmal:
Deine Beschreibung der "dynamischen Firewall" ist dabei ja nur ein Mittel zum Zweck. Nämlich, zu dem Zweck, dass der lokale Server auf den Internetserver zugreifen kann und dann die Daten abgeglichen werden können (soll das in beide Richtungen passieren?) Dafür kann man einen Tunnel viel besser verwenden. Wenn der Datenverkehr nämlich direkt durch diesen Tunnel geschickt wird, blockiert die Firewall diesen Verkehr auch nicht. Da braucht es keine weiteren Firewallregeln, die "geöffnet" werden. Lies dir bitte mal den verlinkten Artikel im Wiki durch und versuche zu verstehen, wie so ein Tunnel funktioniert und wofür er gedacht ist. Alternativ kannst du dich natürlich auch auf anderen Seiten schlau machen. SSL (Wie in deinem verlinkten Youtube-Video zu sehen) solltest du am Ende trotzdem einrichten, damit der Datenverkehr zwischen dem Client und dem Server verschlüsselt übertragen wird, das hat aber nichts damit zu tun, wie sich die beiden Server gegenseitig sehen können. MfG, Daniel
|
ubuntutest2
(Themenstarter)
Anmeldungsdatum: 31. Mai 2016
Beiträge: 10
|
Deine Beschreibung der "dynamischen Firewall" ist dabei ja nur ein Mittel zum Zweck. Nämlich, zu dem Zweck, dass der lokale Server auf den Internetserver zugreifen kann und dann die Daten abgeglichen werden können (soll das in beide Richtungen passieren?) Dafür kann man einen Tunnel viel besser verwenden. Wenn der Datenverkehr nämlich direkt durch diesen Tunnel geschickt wird, blockiert die Firewall diesen Verkehr auch nicht. Da braucht es keine weiteren Firewallregeln, die "geöffnet" werden.
Nein nur der locale Server, greift auf den Internet Server zu.
Du sprichst hier nehme ich an, von Owncloud ? Also so wie ich es vor hatte: Owncloud durch den Tunnel Schicken und somit braucht man keine weiteren Portforwards für z.b. Port 443, da ja durch den SSH-Tunnel geleitet und verschlüsselt ? In dem Fall, muss ich doch aber trotzdem für den SSH-Tunnel einen Portforward einrichten. Gut sowas wie Portknocking, schliesst danach den Port. Aber zumindest kurzfristig, muss doch der SSH Port offen sein ?
Lies dir bitte mal den verlinkten Artikel im Wiki durch und versuche zu verstehen, wie so ein Tunnel funktioniert und wofür er gedacht ist. Alternativ kannst du dich natürlich auch auf anderen Seiten schlau machen.
Habe ich gemacht und ich glaube, das ich es verstanden habe bzw. es mir viel komplizierter vorgestellt habe also es ist:
hier mal ein 2 Beispiele:
Allgemein SSH-Einstellungen für die untenstehenden Beispiele (Bin mir da aber noch nicht ganz sicher, will da nicht unnötiges zulassen):
x11 Forwarding Yes
AllowTcpForwarding YES
GatewayPorts yes Owncloud nextcloud Direkte Verbindung über SSH (Owncloud Anwendung auf dem SSH Server instaliert)
User: Benutzer
SSH Server: 1.1.1.1
SSH-Server-Port: 10000
Owncloud/Nextcloud Server - Port: 192.168.2.10:443
Befehl:
ssh -f -L 8000:localhost:443 Benutzer@1.1.1.1 -p 10000 SSH Tunnel RDP (von Linux über ein gateway zu Windows)
User: Benutzer
SSH-Server-gateway: 1.1.1.1
SSH-Server-Port: 10000
RDP-Server- IP: 192.168.2.10:3389 Befehl:
ssh -L 8000:192.168.2.10:3389 Benutzer@1.1.1.1 -p 10000
RDP Client starten: localhost:8000 ist das so richtig ?
SSL (Wie in deinem verlinkten Youtube-Video zu sehen) solltest du am Ende trotzdem einrichten, damit der Datenverkehr zwischen dem Client und dem Server verschlüsselt übertragen wird, das hat aber nichts damit zu tun, wie sich die beiden Server gegenseitig sehen können.
An sich wollte ich ja auch die Clienten, auf die Server über einen SSH-Tunnel zugreifen lassen, deswegen ja die Frage wie das bei Android läuft.
Mein derzeitiges gedankliches Hindernis: Ich möchte das Android automatisch einen SSH-Tunnel zum Server aufbaut, sobald ich im Heimischen Wlan-Netz bin. Frage. Welche SSH apps können das?
Um die Sicherheitseinstellungen von Owncloud werde ich mich selbstverständlich trotzdem bemühen.
|
BillMaier
Supporter
Anmeldungsdatum: 4. Dezember 2008
Beiträge: 6473
|
ubuntutest2 schrieb: Hallo Liebes Forum, Ich möchte mir eine Unkomplizierte Server-Cloud Lösung einrichten.
Hallo, unkompliziert ist was anderes. In der Regel erledigt man sowas über ein VPN - allerdings ist auch das nicht ganz trivial. Hast du dir mal überlegt, was passiert, wenn die Clients an beiden Standorten Änderungen vor nehmen? Was macht dann dein sync? Beziehungsweise: Wie hast du vor, den Sync zwischen den Servern zu bewerkstelligen? Welche Datenbank willst du für die Applikation verwenden? Bei MySQL zum Beispiel kann man nicht einfach Dateien kopieren und ist dann fertig. Es sei denn, man stoppt zuvor den Dienst. Das Konzept hört sich für mich ziemlich nach Bastel-Lösung an. Und die Bastel-Lösungen sind die kompliziertesten, weil man an den eigentlichen Konzepten vorbei arbeitet. Viele Grüße BillMaier
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Hallo, Ich habe eine Weile wenig Zeit gehabt. Wie sieht es mit deinem Projekt aus? ubuntutest2 schrieb: Nein nur der locale Server, greift auf den Internet Server zu.
OK. Also nur eine Synchronisationsrichtung.
Also so wie ich es vor hatte: Owncloud durch den Tunnel Schicken und somit braucht man keine weiteren Portforwards für z.b. Port 443, da ja durch den SSH-Tunnel geleitet und verschlüsselt ? In dem Fall, muss ich doch aber trotzdem für den SSH-Tunnel einen Portforward einrichten. Gut sowas wie Portknocking, schliesst danach den Port. Aber zumindest kurzfristig, muss doch der SSH Port offen sein ?
Jep. So kann man es machen.
[...]ich glaube, das ich es verstanden habe bzw. es mir viel komplizierter vorgestellt habe also es ist:
hier mal ein 2 Beispiele:
Allgemein SSH-Einstellungen für die untenstehenden Beispiele (Bin mir da aber noch nicht ganz sicher, will da nicht unnötiges zulassen):
x11 Forwarding Yes
AllowTcpForwarding YES
GatewayPorts yes
x11 Forwarding brauchst du nicht. Das ist nur dazu da, um die auf dem Server ausgeführten Programme auf dem lokalen Computer zu sehen. Dafür muss aber auch eine grafische Oberfläche installiert sein. GatewayPorts brauchst du nur, wenn du den Tunnel von einem Client verwendet willst, der den Tunnel nicht selbst aufbaut. In deinem Fall brauchst du das für das Beispiel mit der RDP-Verbindung, wenn ich mich nicht irre (Probiere es gerne einmal aus 😉)
Owncloud nextcloud Direkte Verbindung über SSH (Owncloud Anwendung auf dem SSH Server instaliert)
User: Benutzer
SSH Server: 1.1.1.1
SSH-Server-Port: 10000
Owncloud/Nextcloud Server - Port: 192.168.2.10:443
Befehl:
ssh -f -L 8000:localhost:443 Benutzer@1.1.1.1 -p 10000
Jep. Nur weiß ich nicht, was du mit der -f-Option erreichen möchtest. Ich verstehe auch n gerade nicht, wofür die da ist. -N wäre vielleicht noch sinnvoll, da du keine ssh-Konsole brauchst, in der du Befehle auf dem Server ausführen möchtest.
SSH Tunnel RDP (von Linux über ein gateway zu Windows)
User: Benutzer
SSH-Server-gateway: 1.1.1.1
SSH-Server-Port: 10000
RDP-Server- IP: 192.168.2.10:3389 Befehl:
ssh -L 8000:192.168.2.10:3389 Benutzer@1.1.1.1 -p 10000
RDP Client starten: localhost:8000
Sieht gut aus. Nur beides gleichzeitig geht nicht, da der Port 8000 ja von beiden Tunneln genutzt wird 😉
An sich wollte ich ja auch die Clienten, auf die Server über einen SSH-Tunnel zugreifen lassen, deswegen ja die Frage wie das bei Android läuft.
Mein derzeitiges gedankliches Hindernis: Ich möchte das Android automatisch einen SSH-Tunnel zum Server aufbaut, sobald ich im Heimischen Wlan-Netz bin. Frage. Welche SSH apps können das?
Da kann ich dir leider nicht weiterhelfen, da ich selber gar kein Androidgerät besitze. Wenn der Owncloudclient ohne grafische Oberfläche gestartet und benutzt werden kann, kannst du diesen auf dem lokalen Server (der dann ja als Client arbeitet (SSH- und Owncloud-client)) einrichten. Alternativ kannst du dir rsync anschauen. MfG, Daniel
|
ubuntutest2
(Themenstarter)
Anmeldungsdatum: 31. Mai 2016
Beiträge: 10
|
Also schleichend komme ich weiter und lande bei neuen Problemen ☺
( Bin gerade beim googeln auf meinen eigenen Beitrag gestoßen ☺ )
OK. Also nur eine Synchronisationsrichtung.
hm ja der Tunnel wird halt in eine Richtung aufgebaut, aber Dateiaustausch ist ja beim sync in beide Richtungen. Derzeitiger stand:
ssh tunnel soll von server A zu server B aufgebaut werden.
ssh -f -L 8000:localhost:443 Benutzer@1.1.1.1 -p 10000
Verbindung wird dann von server A zu server B über localhost:8000 aufgebaut. Möglichkeit 1:
Das ganze über webdav zu lösen. Einfach per script nach dem Tunnelaufbau die entfernte sowie die eigene Instanz mounten und mit rsync oder Unison ein Sync starten.
Das ganze muss dann nur auf Server A passieren. Möglichkeit 2:
Die Funktion Federation Shares von Nextcloud bzw. Owncloud. Das wäre die Perfekte Lösung, da sie ja extra dafür gemacht wurde.
Hierbei weiss ich nicht genau wie das mit dem Tunnel funktionieren soll. Da hier die Federated Cloud ID in form von "Admin@IP/nextcloud" eingegeben wird und ich würde anstelle dessen Admin@localhost:8888/nextcloud benutzen wollen. Habe bei der suche jemanden, mit anscheinend dem gleichen Problem gefunden, der wohl das ganze lösen konnte.
Da verstehe ich aber leider momentan nur Bahnhof, hier der link:
https://help.nextcloud.com/t/federation-in-private-linux-contatiner/8775
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Eine Frage dazu: Geht es lediglich um den Dateizugriff oder um verschiedene Instanzen? Falls es nur um den reinen Zugriff auf Daten geht: rsync kann auch ssh, ansonsten FUSE/sshfs ▶ Server1 mountet Server2-Partition, gleicht die Daten ab, umount, fertig.
|
ubuntutest2
(Themenstarter)
Anmeldungsdatum: 31. Mai 2016
Beiträge: 10
|
Eine Frage dazu: Geht es lediglich um den Dateizugriff oder um verschiedene Instanzen?
Falls es nur um den reinen Zugriff auf Daten geht: rsync kann auch ssh, ansonsten FUSE/sshfs ▶ Server1 mountet Server2-Partition, gleicht die Daten ab, umount, fertig.
Zuerst wollte ich das so machen, aber dann bin ich auf die Federation Shares von Nextcloud gestoßen. Damit kann man Dateien Freigeben, zusammen bearbeiten, verwalten, etc. Daher wäre ich froh wenn ich das zum laufen bekommen würde.
Bin gerade dabei Server A neu aufzusetzen. Dann hoffentlich komme ich heute Abend mal zum testen.
|