Chiusura del forum (NON cancellazione)

Ciao ragazzi,

Attualmente non sono in grado di amministrare il mio forum e vorrei chiuderlo per un po’ poiché necessita di un nuovo certificato SSL che non ho ancora capito come installare. Non voglio che nessuno dei nostri utenti rischi di essere hackerato.
È possibile impedire a tutti di accedere al forum per un po’ senza eliminarlo completamente?

Apprezzerei molto il vostro aiuto. Grazie!

1 Mi Piace

Hai preso in considerazione la possibilità di mettere il tuo sito in modalità di sola lettura? Questo si trova nella sezione dei backup delle impostazioni di amministrazione tuo-nome-sito/admin/backups questo renderà il tuo sito di sola lettura in modo che gli utenti non possano pubblicare ecc.

2 Mi Piace

Se si tratta di un’installazione standard, una ricompilazione dovrebbe ottenere un nuovo certificato SSL.

Se non puoi o non vuoi farlo, allora potresti metterlo in modalità di sola lettura come suggerito.

Potresti anche eseguire un ./launcher stop app per arrestare il container.

1 Mi Piace

Ciao Ondrej,

Grazie per la tua risposta. Ho letto a riguardo, ma ciò non impedisce comunque agli utenti di accedere al forum, il che rappresenta già un problema poiché attualmente non è sicuro (nessun https all’inizio del link, ovvero nessun certificato di sicurezza).

Se la tua intenzione è ripristinarlo quando avrai tempo per configurare SSL, ti suggerirei di provare prima a utilizzare i modelli SSL integrati. Discourse rende molto facile ottenere e utilizzare Let’s Encrypt per SSL, quindi vale probabilmente la pena provarci prima di ricorrere allo spegnimento.

Se vuoi provarci, rimuovi il # dalle seconde e terze righe di questo file, vicino all’inizio del tuo file app.yml:

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

Successivamente, cerca #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com più in basso nello stesso file, rimuovi di nuovo il # e sostituisci anche l’indirizzo email di esempio.

Infine, ricostruisci Discourse e dovrebbe ottenere un certificato Let’s Encrypt e configurare HTTPS, reindirizzando tutto da HTTP.

cd /var/discourse
./launcher rebuild app
4 Mi Piace

Come hai installato Discourse?

Purtroppo, non so come si installi Discourse né come funzioni in generale. Mio padre ha creato il forum per la sua attività, ma è venuto a mancare quest’anno. Abbiamo un server con Linode ed è possibile che Discourse sia installato su quello.

Grazie Simon per la tua spiegazione dettagliata. Mio padre ha creato questo sito web ma è venuto a mancare quest’anno. Non ho idea di come installare e configurare Discourse e non so nulla di siti web in generale. Dove trovo questo file appl.yml? Mio padre avrebbe installato Discourse sul nostro server di dominio? Usiamo Linode e c’è un “Linode” chiamato “Discourse” su di esso. Non so cosa significhi e come accedere all’installazione.
Grazie per il tuo aiuto.

1 Mi Piace

Mi dispiace per la tua perdita. :pray:

Innanzitutto, ti consiglio vivamente di assicurarti che i “backup” siano abilitati per quel Linode “Discourse”. Questo dovrebbe essere il tuo primo passo immediato.

In secondo luogo, assicurati che anche i backup di Discourse siano abilitati su https://yoursitedomain.com/admin/backups

In terzo luogo, potresti voler provare a eseguire un aggiornamento dal pannello di amministrazione dell’interfaccia utente, direttamente dal tuo browser web, poiché ciò potrebbe risolvere i tuoi problemi: https://yoursitedomain.com/admin/upgrade

3 Mi Piace

È terribile. Mi dispiace molto sentirlo. Se non sai come accedere via ssh a quel server, la cosa più semplice è fare un backup, eseguire una nuova installazione e ripristinare il backup lì.

Se riesci ad accedere via ssh al server, puoi eseguire le operazioni da riga di comando descritte qui.

In teoria dovrebbero essere in grado di reimpostare la password SSH di Linode:
https://www.linode.com/docs/guides/accounts-and-passwords/#resetting-the-root-password

2 Mi Piace

Sembra abbastanza facile e renderebbe possibile recuperare la configurazione di posta funzionante. Probabilmente farei comunque un’installazione pulita, dato che sembra che questa sia rotta.

Non sono sicuro di essere d’accordo. L’impostazione predefinita, come da app.yml di esempio incluso, è di non utilizzare i template web.ssl o web.letsencrypt.ssl e la mancanza di qualsiasi reindirizzamento HTTP descritto da @Mads mi sembra semplicemente che tale impostazione predefinita sia stata mantenuta, ovvero non ha mai avuto SSL.

Questo sembra piuttosto promettente come server che ospita Discourse. Se vuoi ancora spegnerlo, potresti semplicemente spegnere quel Linode, ma a seconda di come è stato configurato, potrebbero esserci anche altre cose su quel server.

Come ha detto @sdpiowa, puoi reimpostare la password come descritto nel link che ha fornito. Scorri fino in fondo a Reimpostazione della password di root. Non è necessario farlo se hai già la password di root per quel server.

Con la password di root a portata di mano, il modo più semplice per accedere al server sarà utilizzare la console LISH sul gestore cloud di Linode.

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

All’ultimo passaggio, quando vedi login: nella console, digiterai root e premerai invio, quindi digiterai la password e premerai di nuovo invio. A questo punto dovresti avere una shell ed essere in grado di eseguire comandi sul server - tieni presente che dovresti fare attenzione a non commettere errori qui, molto probabilmente un errore porterà solo a un errore e a nulla accadrà, ma errori in una shell di root possono portare a effetti collaterali dannosi.

Prima di procedere ulteriormente, assicurati di creare un backup manuale di Discourse e, una volta completato, esegui uno snapshot manuale nel gestore cloud di Linode. In questo modo sai di avere tutto il necessario per recuperare se qualcosa va storto.

Inizia cambiando directory per entrare nel posto giusto:

cd /var/discourse

Le immagini Linode generalmente hanno nano installato, che è un editor di testo abbastanza facile da usare. Modifica il file app.yml:

nano containers/app.yml

Probabilmente non potrai usare il mouse per spostare il cursore, quindi usa i tasti freccia per spostarti nel file ed effettuare le modifiche descritte in precedenza. Una volta terminato, premi CTRL+X per uscire e ti verrà chiesto se vuoi salvare, premi Y per rispondere sì e ti verrà chiesto un nome file, premi semplicemente invio e il file verrà salvato ed esci da nano.

Infine, ricostruisci Discourse e non chiudere la finestra LISH dopo aver avviato questo:

./launcher rebuild app

Se tutto va bene, probabilmente 10-20 minuti dopo Discourse sarà di nuovo online con SSL.

È passato parecchio tempo da quando https era attivo per impostazione predefinita. È una scommessa ragionevole che anche il sistema operativo sia obsoleto.

IMHO, la soluzione più semplice e sicura per un principiante è una nuova installazione, ma tu hai generosamente fornito istruzioni che promettono di aiutarlo a risolvere questo problema!

Grazie a tutti per il vostro aiuto e le spiegazioni dettagliate! Potrei aver trovato qualcuno che può aiutarmi con questo e mi assicurerò di mostrargli i vostri consigli. Lo apprezzo molto :slight_smile:

4 Mi Piace

Siete fantastici!

Grazie per tutte le informazioni.

Matt qui aiuta Mads, un sysadmin con una discreta esperienza, abbastanza a suo agio con *nix, Docker mi ha fatto scavare un po’ più a fondo ma ci sono arrivato.

Il log di Letsencrypt diceva:

La CA sta elaborando il tuo ordine, attendi solo. (1/30)
community.fruityknitting.com:Errore di verifica:Recupero https://community.fruityknitting.com/.well-known/acme-challenge/9NEyZhZzZQ9FwGrqGqDNblLiwtOQQGlYr-9nSFUwKhw: Connessione rifiutata**

La configurazione di Nginx aveva un reindirizzamento immediato dalla porta 80 a https e poi penso che Andrew abbia fatto controllare a Discourse un account valido tramite Patreon, quel reindirizzamento della porta 80 con il reindirizzamento di Patreon probabilmente ha impedito a Letsencrypt di convalidare il file locale.

Ho interrotto il reindirizzamento Nginx sulla porta 80, riavviato Nginx e rieseguito:
/shared/letsencrypt/acme.sh --cron --home /shared/letsencrypt

e successo.

Apprezzo i commenti utili di tutti.

Tutto il meglio.

3 Mi Piace

Il reindirizzamento di Patreon non era su https?

Era Robert, forse più chiaramente dichiarato come:

Reindirizzamento incondizionato di Nginx da 80 a 443, e poi l’app Discourse che inoltra immediatamente a Patreon per una sessione o un cookie o qualcosa che sto ipotizzando…

Sufficiente a interrompere la convalida di Letsencrypt.

Sembra giusto?

Credo che sia pronto all’uso per forzare tutta la comunicazione tramite https da qualsiasi connessione in ingresso tramite http.
La cosa di Patreon sembra un po’ “strana”?
Cosa sta cercando di fare che non potresti fare nello strato applicativo al 100% tramite https?
Perché il proxy inverso deve interessarsene?

Provalo Robert…
https://community.fruityknitting.com/