Desativando o fórum (NÃO o excluindo)

Olá pessoal,

Atualmente não consigo administrar meu fórum e quero desativá-lo por um tempo, pois ele precisa de um novo link SSL, o que ainda não descobri como fazer. Não quero que nenhum de nossos usuários corra o risco de ser hackeado.
É possível impedir que todos entrem no fórum por um tempo sem excluí-lo completamente?

Agradeceria muito sua ajuda com isso. Obrigado!

Você já considerou colocar seu site em modo somente leitura? Isso pode ser encontrado na seção de backups das configurações do administrador seu-nome-de-site/admin/backups isso tornará seu site somente leitura para que os usuários não possam postar, etc.

Se for uma instalação padrão, uma reconstrução deve obter um novo certificado SSL.

Se você não puder ou não quiser isso, poderá colocá-lo em modo somente leitura, como sugerido.

Você também pode executar ./launcher stop app para parar o contêiner.

Olá Ondrej,

Obrigado pela sua resposta. Li sobre isso, mas ainda não impede que os usuários acessem o fórum, o que já representa um problema, pois atualmente ele não é seguro (sem https no início do link, ou seja, sem certificado de segurança).

Se sua intenção é trazê-lo de volta assim que tiver tempo para configurar o SSL, o que eu faria seria tentar usar primeiro os modelos SSL integrados. O Discourse facilita muito a obtenção e o uso do Let’s Encrypt para SSL, então provavelmente vale a pena tentar isso antes de recorrer ao desligamento.

Se você quiser tentar, remova o # das segunda e terceira linhas perto do topo do seu arquivo app.yml:

## Descomente estas duas linhas se desejar adicionar o Let's Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

Em seguida, encontre #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com mais abaixo no mesmo arquivo, novamente remova o # e também substitua o endereço de e-mail de exemplo.

Finalmente, reconstrua o Discourse e ele deverá obter um certificado Let’s Encrypt e configurar o HTTPS, redirecionando tudo de HTTP.

cd /var/discourse
./launcher rebuild app

Como você instalou o Discourse?

Infelizmente, não sei como se instala o Discourse nem como isso funciona em geral. Meu pai configurou o fórum para o negócio dele, mas faleceu este ano. Temos um servidor com Linode e é possível que o Discourse esteja instalado nele.

Obrigado Simon pela sua explicação detalhada. Meu pai montou este site, mas ele faleceu este ano. Não tenho ideia de como instalar e configurar o Discourse e não sei sobre sites em geral. Onde encontro este arquivo appl.yml? Meu pai teria instalado o Discourse em nosso servidor de domínio? Usamos Linode e há um “Linode” chamado “Discourse” nele. Eu simplesmente não sei o que isso significa e como acessar a instalação.
Obrigado pela sua ajuda.

Sinto muito pela sua perda. :pray:

Em primeiro lugar, sugiro enfaticamente que você garanta que os “backups” estejam ativados para esse Linode do “Discourse”. Este deve ser seu primeiro passo imediato.

Em segundo lugar, certifique-se de que os backups do Discourse também estejam ativados em https://yoursitedomain.com/admin/backups

Em terceiro lugar, você pode tentar executar uma atualização do painel de administração da interface do usuário, diretamente do seu navegador da web, pois isso pode resolver seus problemas: https://yoursitedomain.com/admin/upgrade

Isso é terrível. Sinto muito por ouvir isso. Se você não sabe como usar o SSH para acessar esse servidor, o mais fácil é fazer um backup, fazer uma nova instalação e restaurar o backup lá.

Se você conseguir acesso SSH ao servidor, poderá executar os comandos descritos aqui.

Teoricamente, eles devem ser capazes de redefinir a senha SSH do Linode:
https://www.linode.com/docs/guides/accounts-and-passwords/#resetting-the-root-password

Isso soa bem fácil e permitiria importar a configuração de e-mail funcional. Eu provavelmente faria uma instalação limpa, pois parece que esta está quebrada.

Não tenho certeza se concordo com isso. O padrão, conforme o app.yml de exemplo incluído, é não usar os modelos web.ssl ou web.letsencrypt.ssl e a falta de qualquer redirecionamento HTTP descrito por @Mads parece ser apenas a manutenção desse padrão, ou seja, nunca teve SSL.

Isso parece bastante promissor como sendo o servidor que hospeda o Discourse. Se você ainda quiser desligá-lo, pode simplesmente desligar esse Linode, mas dependendo de como foi configurado, pode haver outras coisas nesse servidor também.

Como @sdpiowa disse, você pode redefinir a senha conforme descrito no link que ele forneceu. Role até o final para Redefinindo a Senha Raiz. Você não precisa fazer isso se já tiver a senha raiz para esse servidor.

Com a senha raiz em mãos, a maneira mais simples de acessar o servidor será usando o console LISH no gerenciador de nuvem Linode.

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

Na última etapa, quando você vir login: no console, digite root e pressione Enter, depois digite a senha e pressione Enter novamente. Neste ponto, você terá um shell e poderá executar comandos no servidor - observe que você deve ter cuidado para não cometer erros aqui, na maioria das vezes um erro apenas levará a um erro e nada acontecerá, mas erros em um shell raiz podem levar a efeitos colaterais prejudiciais.

Antes de prosseguir, certifique-se de criar um backup manual do Discourse e, após a conclusão, faça um snapshot manual no gerenciador de nuvem Linode. Dessa forma, você sabe que tem tudo o que precisa para se recuperar se algo der errado.

Comece mudando de diretório para chegar ao local certo:

cd /var/discourse

As imagens Linode geralmente têm o nano instalado, que é um editor de texto bastante fácil de usar. Edite o arquivo app.yml:

nano containers/app.yml

Provavelmente você não poderá usar o mouse para mover o cursor, então use as teclas de seta para navegar pelo arquivo e fazer as alterações descritas anteriormente. Quando terminar, pressione CTRL+X para sair e você será perguntado se deseja salvar, pressione Y para responder sim e você será perguntado o nome do arquivo, apenas pressione Enter e ele salvará o arquivo e sairá do nano.

Finalmente, reconstrua o Discourse e não feche a janela LISH após iniciar isso:

./launcher rebuild app

Se tudo correr bem, provavelmente em 10-20 minutos o Discourse estará de volta e funcionando com SSL.

Já faz bastante tempo que o https não é o padrão. É uma aposta razoável que o sistema operacional também esteja além do fim de sua vida útil.

Na minha opinião, a solução mais fácil e segura para um novato é uma instalação limpa, mas você generosamente forneceu instruções que têm potencial para ajudá-lo a resolver isso!

Obrigado a todos pela ajuda e pelas explicações detalhadas! Talvez eu tenha encontrado alguém que possa me ajudar com isso e farei questão de mostrar a eles seus conselhos. Eu realmente aprecio isso :slight_smile:

Vocês são incríveis!

Obrigado por todas as informações.

Matt aqui, ajudando Mads, um sysadmin com experiência razoável, bem confortável em *nix, Docker me fez cavar um pouco mais fundo, mas consegui.

O log do Letsencrypt disse:

A CA está processando seu pedido, por favor, aguarde. (1/30)
community.fruityknitting.com:Erro de verificação:Buscando https://community.fruityknitting.com/.well-known/acme-challenge/9NEyZhZzZQ9FwGrqGqDNblLiwtOQQGlYr-9nSFUwKhw: Conexão recusada**

A configuração do Nginx tinha um redirecionamento imediato da porta 80 para https e então acho que Andrew fez o Discourse verificar uma conta válida via Patreon, esse redirecionamento da porta 80 com o redirecionamento do Patreon provavelmente impediu o Letsencrypt de validar o arquivo local.

Pare o redirecionamento da porta 80 do Nginx, reiniciei o Nginx e executei novamente:
/shared/letsencrypt/acme.sh --cron --home /shared/letsencrypt

E sucesso.

Agradeço os comentários úteis de todos.

Tudo de bom.

o redirecionamento do Patreon não estava em https?

Twas Robert, talvez mais claramente declarado como:

Redirecionamento incondicional do Nginx de 80 para 443, e então o aplicativo Discourse encaminhando imediatamente para o Patreon para uma sessão ou cookie ou algo assim, eu imagino…

O suficiente para quebrar a validação do Letsencrypt.

Parece certo?

Acredito que isso seja nativo para forçar toda a comunicação via https a partir de qualquer entrada via http.
A coisa do Patreon parece um pouco ‘estranha’?
O que está tentando fazer que você não poderia fazer na camada de aplicação 100% via https?
Por que o proxy reverso tem que se importar?

Experimente, Robert…
https://community.fruityknitting.com/