Forum wird abgeschaltet (NICHT gelöscht)

Hallo Leute,

ich kann mein Forum derzeit nicht verwalten und möchte es vorerst abschalten, da es einen neuen SSL-Link benötigt, den ich noch nicht herausgefunden habe. Ich möchte nicht, dass unsere Benutzer Gefahr laufen, gehackt zu werden.
Ist es möglich, vorübergehend zu verhindern, dass jeder das Forum betritt, ohne es vollständig zu löschen?

Ich würde mich sehr über eure Hilfe freuen. Danke!

1 „Gefällt mir“

Haben Sie erwogen, Ihre Website in den schreibgeschützten Modus zu versetzen? Dies finden Sie im Abschnitt „Backups“ der Admin-Einstellungen unter your-site-name/admin/backups. Dadurch wird Ihre Website schreibgeschützt, sodass Benutzer usw. nicht posten können.

2 „Gefällt mir“

Wenn es eine Standardinstallation ist, sollte ein Rebuild ein neues SSL-Zertifikat erhalten.

Wenn Sie dies nicht können oder nicht möchten, könnten Sie es in den schreibgeschützten Modus versetzen, wie vorgeschlagen.

Sie könnten auch ./launcher stop app ausführen, um den Container zu stoppen.

1 „Gefällt mir“

Hallo Ondrej,

vielen Dank für deine Antwort. Ich habe davon gelesen, aber es hindert die Benutzer immer noch nicht daran, auf das Forum zuzugreifen, was bereits ein Problem darstellt, da es derzeit nicht sicher ist (kein https am Anfang des Links, d.h. kein Sicherheitszertifikat).

Wenn Sie beabsichtigen, es wieder zu aktivieren, sobald Sie Zeit haben, SSL einzurichten, würde ich versuchen, zuerst die integrierten SSL-Vorlagen zu verwenden. Discourse macht es Ihnen sehr einfach, Let’s Encrypt für SSL zu erhalten und zu verwenden, daher lohnt es sich wahrscheinlich, dies zu versuchen, bevor Sie es herunterfahren.

Wenn Sie es versuchen möchten, entfernen Sie das # aus der zweiten und dritten Zeile dieser Zeilen nahe dem Anfang Ihrer app.yml-Datei:

## Uncomment these two lines if you wish to add Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

Suchen Sie als Nächstes weiter unten in derselben Datei nach #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com, entfernen Sie erneut das # und ersetzen Sie auch die Beispiel-E-Mail-Adresse.

Bauen Sie schließlich Discourse neu auf, und es sollte ein Let’s Encrypt-Zertifikat erhalten und HTTPS einrichten, wobei alles von HTTP umgeleitet wird.

cd /var/discourse
./launcher rebuild app
4 „Gefällt mir“

Wie hast du Discourse installiert?

Leider weiß ich nicht, wie man Discourse installiert oder wie das generell funktioniert. Mein Vater hat das Forum für sein Geschäft eingerichtet, ist aber dieses Jahr verstorben. Wir haben einen Server bei Linode und es ist möglich, dass Discourse darauf installiert ist.

Vielen Dank, Simon, für deine detaillierte Erklärung. Mein Vater hat diese Website eingerichtet, ist aber dieses Jahr verstorben. Ich habe keine Ahnung, wie man Discourse installiert und einrichtet, und ich kenne mich auch nicht mit Websites im Allgemeinen aus. Wo finde ich diese Datei appl.yml? Hat mein Vater Discourse auf unserem Domain-Server installiert? Wir benutzen Linode und es gibt ein „Linode“ namens „Discourse“ darauf. Ich weiß nur nicht, was das bedeutet und wie ich auf die Installation zugreifen kann.
Vielen Dank für deine Hilfe.

1 „Gefällt mir“

Es tut mir leid, das zu hören. :pray:

Zuallererst empfehle ich dringend, sicherzustellen, dass “Backups” für diesen “Discourse” Linode aktiviert sind. Dies sollte Ihr erster, sofortiger Schritt sein.

Zweitens stellen Sie sicher, dass Discourse-Backups auch unter https://yoursitedomain.com/admin/backups aktiviert sind.

Drittens möchten Sie vielleicht versuchen, ein Update über das Admin-UI-Panel direkt über Ihren Webbrowser auszuführen, da dies Ihre Probleme beheben könnte: https://yoursitedomain.com/admin/upgrade

3 „Gefällt mir“

Das ist schrecklich. Es tut mir sehr leid, das zu hören. Wenn Sie nicht wissen, wie Sie sich per SSH auf diesen Server einloggen können, ist es am einfachsten, ein Backup zu erstellen, eine Neuinstallation durchzuführen und das Backup dort wiederherzustellen.

Wenn Sie SSH-Zugriff auf den Server erhalten können, können Sie die hier beschriebenen Befehlszeilenoperationen durchführen.

Theoretisch sollten sie das Linode-SSH-Passwort zurücksetzen können:
https://www.linode.com/docs/guides/accounts-and-passwords/#resetting-the-root-password

2 „Gefällt mir“

Das klingt ziemlich einfach und würde es ermöglichen, die funktionierende Mail-Konfiguration zu übernehmen. Ich würde wahrscheinlich trotzdem eine Neuinstallation durchführen, da diese anscheinend defekt ist.

Ich bin mir nicht sicher, ob ich dem zustimmen kann. Die Standardeinstellung gemäß der enthaltenen Beispiel-App.yml ist, die Vorlagen web.ssl oder web.letsencrypt.ssl nicht zu verwenden, und das Fehlen einer HTTP-Umleitung, wie von @Mads beschrieben, klingt für mich einfach so, als ob diese Standardeinstellung beibehalten wurde, d. h. es gab nie SSL.

Das scheint sehr vielversprechend zu sein, da es der Server ist, der Discourse hostet. Wenn Sie ihn immer noch herunterfahren möchten, könnten Sie diesen Linode einfach ausschalten, aber je nachdem, wie er eingerichtet wurde, könnten sich auch andere Dinge auf diesem Server befinden.

Wie @sdpiowa sagte, können Sie das Passwort zurücksetzen, wie in dem von ihm bereitgestellten Link beschrieben. Scrollen Sie ganz nach unten zu Resetting the Root Password. Sie müssen dies nicht tun, wenn Sie das Root-Passwort für diesen Server bereits haben.

Mit dem Root-Passwort zur Hand ist der einfachste Weg, auf den Server zuzugreifen, die LISH-Konsole im Linode Cloud Manager zu verwenden.

https://www.linode.com/docs/guides/using-the-lish-console/

Im letzten Schritt, wenn Sie login: in der Konsole sehen, geben Sie root ein und drücken Sie Enter, dann geben Sie das Passwort ein und drücken Sie erneut Enter. An diesem Punkt sollten Sie eine Shell haben und Befehle auf dem Server ausführen können – beachten Sie, dass Sie hier vorsichtig sein sollten, keine Fehler zu machen. Die meisten Fehler führen wahrscheinlich nur zu einer Fehlermeldung und nichts passiert, aber Fehler in einer Root-Shell können zu schädlichen Nebenwirkungen führen.

Bevor Sie weiter fortfahren, stellen Sie sicher, dass Sie ein manuelles Discourse-Backup erstellen und nachdem dies abgeschlossen ist, einen manuellen Snapshot im Linode Cloud Manager erstellen. Auf diese Weise wissen Sie, dass Sie alles haben, was Sie zur Wiederherstellung benötigen, falls etwas schief geht.

Beginnen Sie damit, das Verzeichnis zu wechseln, um an den richtigen Ort zu gelangen:

cd /var/discourse

Linode-Images haben im Allgemeinen nano installiert, einen recht einfach zu bedienenden Texteditor. Bearbeiten Sie die Datei app.yml:

nano containers/app.yml

Sie können Ihre Maus wahrscheinlich nicht verwenden, um den Cursor zu bewegen. Verwenden Sie stattdessen die Pfeiltasten, um sich in der Datei zu bewegen und die zuvor beschriebenen Änderungen vorzunehmen. Wenn Sie damit fertig sind, drücken Sie STRG+X, um zu beenden. Sie werden gefragt, ob Sie speichern möchten. Drücken Sie Y für Ja und Sie werden nach einem Dateinamen gefragt. Drücken Sie einfach Enter, und die Datei wird gespeichert und nano beendet.

Starten Sie schließlich Discourse neu und schließen Sie das LISH-Fenster nicht, nachdem Sie damit begonnen haben:

./launcher rebuild app

Wenn alles gut geht, wird Discourse wahrscheinlich in 10-20 Minuten wieder mit SSL laufen.

[quote=„Simon_Manning, Beitrag:13, Thema:213722″]Standardmäßig werden gemäß der mitgelieferten Beispiel-App.yml die Vorlagen web.ssl oder web.letsencrypt.ssl nicht verwendet.
[/quote]

Es ist schon eine ganze Weile her, dass HTTPS standardmäßig aktiviert war. Es ist ziemlich sicher, dass das Betriebssystem ebenfalls das Ende seiner Lebensdauer erreicht hat.

Meiner Meinung nach ist die einfachste und sicherste Lösung für einen Anfänger eine Neuinstallation, aber Sie haben großzügig Anweisungen gegeben, die vielversprechend sind, um ihm zu helfen, dies in Ordnung zu bringen!

Vielen Dank an alle für Ihre Hilfe und detaillierten Erklärungen! Ich habe vielleicht jemanden gefunden, der mir dabei helfen kann, und ich werde sicherstellen, dass ich ihnen Ihren Rat zeige. Ich weiß es wirklich zu schätzen :slight_smile:

4 „Gefällt mir“

Ihr seid spitze!

Danke für all die Infos.

Matt hier, helfe Mads, ein relativ erfahrener Sysadmin, der sich mit *nix und Docker ziemlich gut auskennt, was mich aber ein bisschen tiefer graben ließ, aber ich hab’s geschafft.

Das Letsencrypt-Log sagte:

Die CA verarbeitet Ihre Bestellung, bitte warten Sie einfach. (1/30)
community.fruityknitting.com:Fehler bei der Überprüfung: Abrufen von https://community.fruityknitting.com/.well-known/acme-challenge/9NEyZhZzZQ9FwGrqGqDNblLiwtOQQGlYr-9nSFUwKhw: Verbindung verweigert**

Die Nginx-Konfiguration hatte eine sofortige Weiterleitung von Port 80 zu https und dann, glaube ich, hat Andrew Discourse auf ein gültiges Konto über Patreon überprüft. Diese Port-80-Weiterleitung mit Patreon-Weiterleitung hat wahrscheinlich verhindert, dass Letsencrypt die lokale Datei validiert.

Ich habe die Nginx-Port-80-Weiterleitung gestoppt, Nginx neu gestartet und erneut ausgeführt:
/shared/letsencrypt/acme.sh --cron --home /shared/letsencrypt

und Erfolg.

Ich schätze die hilfreichen Kommentare aller.

Alles Gute.

3 „Gefällt mir“

War die Patreon-Umleitung nicht auf https?

Es war Robert, vielleicht klarer ausgedrückt als:

Nginx bedingungslose Weiterleitung von 80 auf 443, und dann die Discourse-App, die sofort an Patreon weiterleitet, um eine Sitzung oder einen Cookie oder etwas Ähnliches zu erhalten, vermute ich…

Genug, um die Letsencrypt-Validierung zu brechen.

Klingt das richtig?

Ich glaube, das ist out-of-the-box, um die gesamte Kommunikation über HTTPS zu erzwingen, wenn sie über HTTP eingeht.
Das Patreon-Ding klingt ein bisschen „funky“?
Was versucht es zu tun, das Sie nicht zu 100 % über HTTPS auf Anwendungsebene tun könnten?
Warum muss sich der Reverse-Proxy darum kümmern?

Probier’s aus, Robert…
https://community.fruityknitting.com/