Software Tip Anydesk/Teamviewer Alternative

schwaller

Themenstarter
Bekanntes Mitglied
Falls wer nach einer Alternative zu den Platzhirschen Teamviewer oder Anydesk sucht:

Ich bin heute auf RustDesk aufmerksam geworden, welche imho sehr viel Potential bietet.
http://rustdesk.com/
RustDesk

Erhältlich für eigentlich alle relevanten OS. Für Windows auch in einer "Portable-Version"!
Ich spare mir hier die genaue Aufzählung aller Features, die stehen auf der verlinkten Seite.

Die wichtigsten:
  • keine nervige Werbung
  • TLS 1.3 end-to-end encryption
  • Filemanager zur Dateiübertragung
  • TCP-Tunneling
  • geringe Größe (gepackt 5,4MB)
  • Möglichkeit Verbindungen über selbst betriebene Server-side ID und Relayserver aufzubauen.
  • Open Source
Erste Tests haben bei mir tadellos funktioniert. Zum Einsatz kamen dabei Windows10 und LinuxMint.
 

DrSnuggles

Bekanntes Mitglied
Strange in einer Open Source Software:
Code:
          case rendezvous.PunchHoleResponse_Failure.LICENSE_MISMATCH:
            this.msgbox("error", "Error", "Key mismatch");
            break;
          case rendezvous.PunchHoleResponse_Failure.LICENSE_OVERUSE:
            this.msgbox("error", "Error", "Key overuse");
            break;
        }
      }

Und sowas hier stinkt:
Code:
    try {
      signedId = await globals.verify(signedId.id, Uint8Array.from(pk!));
    } catch (e) {
      console.error(e);
      // fall back to non-secure connection in case pk mismatch
      console.error("pk mismatch, fall back to non-secure");
      const public_key = message.PublicKey.fromPartial({});
      this._ws?.sendMessage({ public_key });
      return;
    }

Und sowas hier ist Bullshit, da gehört SPAKE2 oder sowas hin
Code:
  login(password: string | undefined = undefined) {
    if (password) {
      const salt = this._hash?.salt;
      let p = hash([password, salt!]);
      this._password = p;
      const challenge = this._hash?.challenge;
      p = hash([p, challenge!]);
      this.msgbox("connecting", "Connecting...", "Logging in...");
      this._sendLoginMessage(p);
    } else {
      let p = this._password;
      if (p) {
        const challenge = this._hash?.challenge;
        p = hash([p, challenge!]);
      }
      this._sendLoginMessage(p);
    }
  }

 

rick_s

Bekanntes Mitglied
@DrSnuggles
Kannst Du das mal für Laien etwas übersetzen? Sind das Sicherheitsrisiken? Hintertüren? Klare Hinweise darauf, dass man von der Anwendung Abstand nehmen sollte?

Vom Gebrauch her war ich nämlich nach erstem Probieren von rustdesk als Opensource Alternative durchaus angetan.
 

bavariantommy

Universaldilletant
Nicht kirre machen lassen.
Exakt für solche Sachen ist die Software Open Source. Was TeamViewer hinter den Kulissen anstellt, wirst du nie erfahren.
Übrigens geben sich die Entwickler sehr kontaktfreudig. Mal bei denen nachfragen, wofür dieses oder jenes gut sein soll, sorgt vermutlich schnell für Klarheit.
Was das betrifft, interpretiere ich das so:
case rendezvous.PunchHoleResponse_Failure.LICENSE_MISMATCH:
this.msgbox("error", "Error", "Key mismatch");
break;
case rendezvous.PunchHoleResponse_Failure.LICENSE_OVERUSE:
this.msgbox("error", "Error", "Key overuse");
break;
Die Software erzeugt/verwendet pub und private keys.
Wenn die Keys nicht zusammenpassen, lehnt sie die Verbindung ab, wenn mehrere den gleichen verwenden, ebenso.
 
Zuletzt bearbeitet:

DrSnuggles

Bekanntes Mitglied
@DrSnuggles
Kannst Du das mal für Laien etwas übersetzen? Sind das Sicherheitsrisiken? Hintertüren? Klare Hinweise darauf, dass man von der Anwendung Abstand nehmen sollte?

Vom Gebrauch her war ich nämlich nach erstem Probieren von rustdesk als Opensource Alternative durchaus angetan.
A) Lizenzprüfung
B) MITM Anfälligkeit
C) unzureichende Krypto für den Passwortcheck

Teamviewer ist audiert und verwendet vernünftige Krypto
 

GiveThatLink

Bekanntes Mitglied
Ich würde daraus entnehmen, dass die Macher von rustdesk mehr vorhaben.

Und was SPAKE2 angeht:

siehe c)

Open Source, na klar, aber dass das noch niemand seit über einem Jahr mal bemerkt oder angegangen wurde, obwohl es eminent wichtig ist, setzt dann doch deutliche Fragezeichen.
 

schwaller

Themenstarter
Bekanntes Mitglied
Zumindest bei meinen Versuchen mit selbstgehosteten Serverpart, kamen bei entsprechender Konfiguration des Clients und des Servers keine unverschlüsselten Verbindungen zustande. (mit der V1.1.9)

@DrSnuggles magst du da evtl. mal über den Code gucken und sagen, ob das dann mit dem Parameter "-k _" so stimmt.

Different from the old version, the key in this version is mandatory, but you don’t need to set it yourself. When hbbs runs for the first time, it will automatically generate a pair of encrypted private key and public key (respectively located in the id_ed25519 and id_ed25519.pub files in the running directory), the main purpose is for communication encryption.

If you did not fill in the Key: (the content in the public key file id_ed25519.pub) in the previous step, it does not affect the connection, but the connection cannot be encrypted.

Code:
cat ./id_ed25519.pub

If you wanna prohibit users without key from establishing non-encrypted connections, please add the -k _ parameter when running hbbs and hbbr, for example:

Code:
./hbbs -r <relay-server-ip[:port]> -k _
./hbbr -k _
If you wanna change key, please remove id_ed25519 and id_ed25519.pub files and restart hbbs/hbbr,hbbs will generate new key pair.
Quelle:https://rustdesk.com/docs/en/self-host/install/#key
 

mailfire

Bekanntes Mitglied
Zumindest bei meinen Versuchen mit selbstgehosteten Serverpart, kamen bei entsprechender Konfiguration des Clients und des Servers keine unverschlüsselten Verbindungen zustande. (mit der V1.1.9)

@DrSnuggles magst du da evtl. mal über den Code gucken und sagen, ob das dann mit dem Parameter "-k _" so stimmt.

Different from the old version, the key in this version is mandatory, but you don’t need to set it yourself. When hbbs runs for the first time, it will automatically generate a pair of encrypted private key and public key (respectively located in the id_ed25519 and id_ed25519.pub files in the running directory), the main purpose is for communication encryption.

If you did not fill in the Key: (the content in the public key file id_ed25519.pub) in the previous step, it does not affect the connection, but the connection cannot be encrypted.

Code:
cat ./id_ed25519.pub

If you wanna prohibit users without key from establishing non-encrypted connections, please add the -k _ parameter when running hbbs and hbbr, for example:

Code:
./hbbs -r <relay-server-ip[:port]> -k _
./hbbr -k _
If you wanna change key, please remove id_ed25519 and id_ed25519.pub files and restart hbbs/hbbr,hbbs will generate new key pair.
Quelle:https://rustdesk.com/docs/en/self-host/install/#key

-k mag er bei mir nicht, aber --key geht

pm2 start "./hbbs --key _" pm2 start "./hbbr --key _"
 

schwaller

Themenstarter
Bekanntes Mitglied
BTW. für die Android-App kann man sich auch einen QR-Code basteln:
für QR-Code:
Code:
config={"host":"ip.ip.ip.ip","key":"bwCcLXVdWz94wpvxKEYcLXVdWz94wpvRbwCcLXVdWz94wpvR"}
Dieser lässt sich dann bequem scannen:
1654782299534.png


Unter ID/Verbindungsserver kann man die Daten dann kontrollieren.
 

EchtAtze

Bekannter Mitglied
Strange in einer Open Source Software:
Code:
          case rendezvous.PunchHoleResponse_Failure.LICENSE_MISMATCH:
            this.msgbox("error", "Error", "Key mismatch");
            break;
          case rendezvous.PunchHoleResponse_Failure.LICENSE_OVERUSE:
            this.msgbox("error", "Error", "Key overuse");
            break;
        }
      }

Und sowas hier stinkt:
Code:
    try {
      signedId = await globals.verify(signedId.id, Uint8Array.from(pk!));
    } catch (e) {
      console.error(e);
      // fall back to non-secure connection in case pk mismatch
      console.error("pk mismatch, fall back to non-secure");
      const public_key = message.PublicKey.fromPartial({});
      this._ws?.sendMessage({ public_key });
      return;
    }

Und sowas hier ist Bullshit, da gehört SPAKE2 oder sowas hin
Code:
  login(password: string | undefined = undefined) {
    if (password) {
      const salt = this._hash?.salt;
      let p = hash([password, salt!]);
      this._password = p;
      const challenge = this._hash?.challenge;
      p = hash([p, challenge!]);
      this.msgbox("connecting", "Connecting...", "Logging in...");
      this._sendLoginMessage(p);
    } else {
      let p = this._password;
      if (p) {
        const challenge = this._hash?.challenge;
        p = hash([p, challenge!]);
      }
      this._sendLoginMessage(p);
    }
  }

@DrSnuggles :
Im aktuellen Code sieht aller von dir zitierter Code immer noch identisch aus.
Hast du das denen mal gemeldet?
 

Prox

Bekanntes Mitglied
Moin, verwende RustDesk, seit @schwaller hier gepostet hat..

Verwendung:
  • verbinde mich grundsätzlich mit OpenVPN
  • eigener Verbindungsserver steht im OpenVPN-Netz
  • RustDesk verbinden..
Code:
Schön wäre, wenn man für jede Verbindung den Verbindungsserver (da unterschiedlich) eintragen könnte.
 

Prox

Bekanntes Mitglied
Ich nutze das so auch kommerziell, habe vorher das mit AnyDesk genauso gemacht.
Also immer über OpenVPN rein, dann Fernwartung (AnyDesk lasse ich mir als Hintertür, falls der RustDesk-Server nicht erreichbar)!

P.S. mit nem 14"er nen 32"-Monitor fernwarten ist nicht so lustig, aber sonnst bin ich begeistert..
 

dr_tommi

alter Oldie
Privat ist alles möglich.
Es kommt ja im beruflichen Umfeld immer darauf an was man damit machen will.
Für die Administration der eigenen Rechner kann man wählen was man will bzw. was die Firmenpolitik zulässt.
Beim Zugriff auf externe Rechner z.B. bei Kunden muss man nutzen was die haben oder was die bereit sind zu installieren.
Und mit einer freien Version vom Teamviewer wird der Blick auf einen Server schwierig bzw. läuft nicht lange. ;)
Deshalb haben wir bei uns Teamviewer, Anydesk, Bomgar, Webex und Teams verfügbar um Rechnersysteme bei Kunden zu sehen bzw. nach Bedarf auch steuern zu können.
Und bei größeren Kunden bzw. Umgebungen bekommen wir auch schon mal den direkten VPN-Zugang und können dann direkt per RDP oder SSH auf die Systeme.
Wir passen uns da an die Kunden an.
 

bavariantommy

Universaldilletant
Moin, verwende RustDesk, seit @schwaller hier gepostet hat..
Und? Wie sind deine Erfahrungen?
Läuft das gut und kann man das problemlos im kommerziellen Umfeld einsetzen?
Hat bei mir im privaten Umfeld Anydesk und Teamviewer komplett abgelöst. Funktionell tadellos, wenn auch nicht so üppig ausgestattet, wie die Konkurrenz. Das brauche ich aber eh nicht.
Kommerziell kommt das imho nur infrage, wenn Du einen eigenen Server aufsetzt - andernfalls hast du die Arschkarte, wenn der (kostenfreie) Server des Projekts mal ausfällt. Da ich noch kein tragfähiges Geschäftsmodell hinter dem Projekt sehe, könnte das mangels Geld durchaus passieren.
 

adhome

Bekanntes Mitglied
Der RustDesk Server war recht schnell aufgesetzt in Linux.
Was mich am Meisten stört ist, dass das Passwort hinter Sternen versteckt ist und man das erst den Benutzer klar machen muss, dass er aufs Auge klicken muss und dann noch das Passwort nennen.
Somit leider noch nicht eine richtige OneClick Support Lösung. Auch wenn man sich das sicher selbst umschreiben könnte.
 

schwaller

Themenstarter
Bekanntes Mitglied
Was mich am Meisten stört ist, dass das Passwort hinter Sternen versteckt ist und man das erst den Benutzer klar machen muss, dass er aufs Auge klicken muss und dann noch das Passwort nennen.
??? Also wenn derjenige den du unterstützen möchtest rustdesk startet und dir dann die ID 123 123 123 nennt, dann kannst du diese einfach bei dir eintragen und auf verbinden klicken. Bei demjenigen den du unterstützen möchtest poppt dann ein dialog auf, wo derjenige den du unterstützen möchtest lediglich bestätigen muss, das du das darfst ;)

da braucht es kein passwort ;)
 
Oben Unten