Falha ao inicializar (/tmp/add-cloudflare-ips)

Olá!

Estou com este erro ao tentar reconstruir:

FAILED
--------------------
Pups::ExecError: /tmp/add-cloudflare-ips falhou com retorno #<Process::Status: pid 1484 exit 8>
Localização da falha: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falhou com os parâmetros "/tmp/add-cloudflare-ips"
9fe8337bb7b8e64abb480bd2527551585759e48df340dc74bb84c67bdf1ee6b2
** FALHA AO INICIALIZAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.

Este erro ocorreu com o proxy (nuvem laranja) do CloudFlare ativado e desativado :frowning:

1 curtida

Você pode rolar para cima e mostrar a saída acima onde o comando /tmp/add-cloudflare-ips falha?

Compilação de CSS concluída: 2022-03-22 16:54:37 UTC
I, [2022-03-22T16:54:37.832057 #1]  INFO -- : Baixando MaxMindDB...
Compactando Javascript e Gerando Mapas de Origem

I, [2022-03-22T16:54:37.874506 #1]  INFO -- : Arquivo > /usr/local/bin/discourse  chmod: +x  chown:
I, [2022-03-22T16:54:37.880784 #1]  INFO -- : Arquivo > /usr/local/bin/rails  chmod: +x  chown:
I, [2022-03-22T16:54:37.887872 #1]  INFO -- : Arquivo > /usr/local/bin/rake  chmod: +x  chown:
I, [2022-03-22T16:54:37.894248 #1]  INFO -- : Arquivo > /usr/local/bin/rbtrace  chmod: +x  chown:
I, [2022-03-22T16:54:37.900136 #1]  INFO -- : Arquivo > /usr/local/bin/stackprof  chmod: +x  chown:
I, [2022-03-22T16:54:37.907873 #1]  INFO -- : Arquivo > /etc/update-motd.d/10-web  chmod: +x  chown:
I, [2022-03-22T16:54:37.912825 #1]  INFO -- : Arquivo > /etc/logrotate.d/rails  chmod:   chown:
I, [2022-03-22T16:54:37.917132 #1]  INFO -- : Arquivo > /etc/logrotate.d/nginx  chmod:   chown:
I, [2022-03-22T16:54:37.924129 #1]  INFO -- : Arquivo > /etc/runit/1.d/00-ensure-links  chmod: +x  chown:
I, [2022-03-22T16:54:37.930083 #1]  INFO -- : Arquivo > /etc/runit/1.d/01-cleanup-web-pids  chmod: +x  chown:
I, [2022-03-22T16:54:37.936780 #1]  INFO -- : Arquivo > /root/.bash_profile  chmod: 644  chown:
I, [2022-03-22T16:54:37.941664 #1]  INFO -- : Arquivo > /usr/local/etc/ImageMagick-7/policy.xml  chmod:   chown:
I, [2022-03-22T16:54:37.949303 #1]  INFO -- : Substituindo (?-mix:server.+{) por limit_req_zone $binary_remote_addr zone=flood:10m rate=$reqs_per_secondr/s;
limit_req_zone $binary_remote_addr zone=bot:10m rate=$reqs_per_minuter/m;
limit_req_status 429;
limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_status 429;
server {
 em /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T16:54:37.952599 #1]  INFO -- : Substituindo (?-mix:location @discourse {) por location @discourse {
  limit_conn connperip $conn_per_ip;
  limit_req zone=flood burst=$burst_per_second nodelay;
  limit_req zone=bot burst=$burst_per_minute nodelay; em /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T16:54:37.960935 #1]  INFO -- : Arquivo > /tmp/add-cloudflare-ips  chmod: +x  chown:
I, [2022-03-22T16:54:37.961856 #1]  INFO -- : > /tmp/add-cloudflare-ips
--2022-03-22 16:54:37--  https://www.cloudflare.com/ips-v4/
Resolvendo www.cloudflare.com (www.cloudflare.com)... 104.16.124.96, 104.16.123.96, 2606:4700::6810:7c60, ...
Conectando a www.cloudflare.com (www.cloudflare.com)|104.16.124.96|:443... conectado.
Requisição HTTP enviada, aguardando resposta... 403 Forbidden
2022-03-22 16:54:38 ERRO 403: Forbidden.

I, [2022-03-22T16:54:38.130543 #1]  INFO -- :
I, [2022-03-22T16:54:38.146489 #1]  INFO -- : Terminando processos assíncronos
I, [2022-03-22T16:54:38.148916 #1]  INFO -- : Enviando INT para HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
2022-03-22 16:54:38.149 UTC [42] LOG:  recebida solicitação de desligamento rápido
I, [2022-03-22T16:54:38.150508 #1]  INFO -- : Enviando TERM para exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1647968078) SIGTERM recebido, agendando desligamento...
2022-03-22 16:54:38.155 UTC [42] LOG:  abortando quaisquer transações ativas
2022-03-22 16:54:38.167 UTC [42] LOG:  worker em segundo plano \"logical replication launcher\" (PID 51) saiu com código de saída 1
2022-03-22 16:54:38.171 UTC [46] LOG:  desligando
103:M 22 Mar 2022 16:54:38.203 # Desligamento solicitado pelo usuário...
103:M 22 Mar 2022 16:54:38.204 * Salvando o snapshot RDB final antes de sair.
103:M 22 Mar 2022 16:54:38.213 * DB salvo em disco
103:M 22 Mar 2022 16:54:38.214 # Redis está pronto para sair, tchau tchau...
2022-03-22 16:54:38.228 UTC [42] LOG:  sistema de banco de dados foi desligado


FALHOU
--------------------
Pups::ExecError: /tmp/add-cloudflare-ips falhou com retorno #<Process::Status: pid 1487 exit 8>
Localização da falha: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falhou com os parâmetros \"/tmp/add-cloudflare-ips\"
3123cbaef859e04ff382e3194e1745b88ee6e4777de9f0f7b45cb6cf2ac6d757
** FALHA AO INICIALIZAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.
root@app:/var/discourse#

O Cloudflare bloqueou seu IP de recuperar a lista de IPs. Você pode tentar novamente, perguntar o motivo ou gerenciar a lista você mesmo.

Para corrigir o problema imediato, eu provavelmente recuperaria a lista do seu computador local e adaptaria o template para codificá-la em vez de recuperá-la do Cloudflare, depois entraria em contato com eles.

@RyanK alguma sugestão sobre isso? nosso template puxa as listas a cada build, mas isso não deveria ser um problema. Eu esperaria ser limitado pela taxa 429 em vez de 403 se fosse.

3 curtidas

Desculpe pela pergunta, não sou profissional :frowning: Como posso adicionar IPs do CloudFlare sem usar este template cloudflare.template.yml? Estou usando Discourse Docker no Ubuntu 20.04.

Tenho o mesmo problema em duas instâncias separadas, IPs diferentes. @GreenOWL qual DC você está usando?

1 curtida

Se o Cloudflare estiver bloqueando seu acesso e você não tiver familiaridade suficiente para corrigi-lo manualmente, recomendo profundamente remover o front do Cloudflare.

4 curtidas

Abre os portões do inferno para abusadores.

1 curtida

O data center do seu provedor de hospedagem.

1 curtida

A menos que você administre uma comunidade que atraia abusadores, não deve ser um problema. E executar o Discourse de forma que seu IP não seja vazado é bastante complicado.

Variante 2.

Se você não pode ajudar - pare de ofender os usuários.

Na verdade, a ação do template pode ser incorporada manualmente buscando os IPs do CF de outro IP. O @Falco lhe deu um conselho sólido.

Sim, vultr também. Acho que você deveria abrir um ticket para eles mencionando que é um problema em todos os seus IPs

Verifique no seu yaml a localização do volume montado.

Tento substituir as URLs cloudflare.com/ips-v4/, cloudflare.com/ips-v6/ em cloudflare.template.yml pelos IPs do meu servidor (quando a lista de IPs é hospedada).

contents: |
        #!/bin/bash -e
        # Baixar lista de IPs do CloudFlare
        wget -q https://www.myserver.com/ips-v4/ -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget -q https://www.myserver.com/ips-v6/ -O - >> /tmp/cloudflare-ips
        # Transformar em comandos nginx e escapar para inclusão no comando sed append
        CONTENTS=$(</tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from \u0026;/' | tr '\n' '\\' | sed 's/\\\\/\\\\n/g')

Tenho este resultado

I, [2022-03-22T18:49:10.469231 #1]  INFO -- : Baixando MaxMindDB...
Comprimindo Javascript e Gerando Source Maps

I, [2022-03-22T18:49:10.514524 #1]  INFO -- : Arquivo > /usr/local/bin/discourse  chmod: +x  chown:
I, [2022-03-22T18:49:10.521050 #1]  INFO -- : Arquivo > /usr/local/bin/rails  chmod: +x  chown:
I, [2022-03-22T18:49:10.528727 #1]  INFO -- : Arquivo > /usr/local/bin/rake  chmod: +x  chown:
I, [2022-03-22T18:49:10.534748 #1]  INFO -- : Arquivo > /usr/local/bin/rbtrace  chmod: +x  chown:
I, [2022-03-22T18:49:10.541288 #1]  INFO -- : Arquivo > /usr/local/bin/stackprof  chmod: +x  chown:
I, [2022-03-22T18:49:10.549718 #1]  INFO -- : Arquivo > /etc/update-motd.d/10-web  chmod: +x  chown:
I, [2022-03-22T18:49:10.554428 #1]  INFO -- : Arquivo > /etc/logrotate.d/rails  chmod:   chown:
I, [2022-03-22T18:49:10.558589 #1]  INFO -- : Arquivo > /etc/logrotate.d/nginx  chmod:   chown:
I, [2022-03-22T18:49:10.565929 #1]  INFO -- : Arquivo > /etc/runit/1.d/00-ensure-links  chmod: +x  chown:
I, [2022-03-22T18:49:10.571595 #1]  INFO -- : Arquivo > /etc/runit/1.d/01-cleanup-web-pids  chmod: +x  chown:
I, [2022-03-22T18:49:10.578243 #1]  INFO -- : Arquivo > /root/.bash_profile  chmod: 644  chown:
I, [2022-03-22T18:49:10.583602 #1]  INFO -- : Arquivo > /usr/local/etc/ImageMagick-7/policy.xml  chmod:   chown:
I, [2022-03-22T18:49:10.589959 #1]  INFO -- : Substituindo (?-mix:server.+{) por limit_req_zone $binary_remote_addr zone=flood:10m rate=$reqs_per_secondr/s;
limit_req_zone $binary_remote_addr zone=bot:10m rate=$reqs_per_minuter/m;
limit_req_status 429;
limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_status 429;
server {
 em /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T18:49:10.592764 #1]  INFO -- : Substituindo (?-mix:location @discourse {) por location @discourse {
  limit_conn connperip $conn_per_ip;
  limit_req zone=flood burst=$burst_per_second nodelay;
  limit_req zone=bot burst=$burst_per_minute nodelay; em /etc/nginx/conf.d/discourse.conf
I, [2022-03-22T18:49:10.601940 #1]  INFO -- : Arquivo > /tmp/add-cloudflare-ips  chmod: +x  chown:
I, [2022-03-22T18:49:10.604368 #1]  INFO -- : > /tmp/add-cloudflare-ips
I, [2022-03-22T18:49:10.791696 #1]  INFO -- :
I, [2022-03-22T18:49:10.811681 #1]  INFO -- : Terminando processos assíncronos
I, [2022-03-22T18:49:10.813970 #1]  INFO -- : Enviando INT para HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
2022-03-22 18:49:10.815 UTC [42] LOG:  recebido pedido de desligamento rápido
I, [2022-03-22T18:49:10.816541 #1]  INFO -- : Enviando TERM para exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1647974950) Recebido SIGTERM agendando desligamento...
2022-03-22 18:49:10.820 UTC [42] LOG:  abortando quaisquer transações ativas
2022-03-22 18:49:10.834 UTC [42] LOG:  worker em segundo plano \"logical replication launcher\" (PID 51) saiu com código de saída 1
2022-03-22 18:49:10.837 UTC [46] LOG:  desligando
2022-03-22 18:49:10.877 UTC [42] LOG:  o sistema de banco de dados está desligado
103:M 22 Mar 2022 18:49:10.896 # Desligamento solicitado pelo usuário...
103:M 22 Mar 2022 18:49:10.897 * Salvando o snapshot final do RDB antes de sair.
103:M 22 Mar 2022 18:49:10.923 * DB salvo em disco
103:M 22 Mar 2022 18:49:10.924 # Redis está pronto para sair, tchau tchau...


FALHOU
--------------------
Pups::ExecError: /tmp/add-cloudflare-ips falhou com retorno #<Process::Status: pid 1487 exit 8>
Localização da falha: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falhou com os parâmetros "/tmp/add-cloudflare-ips"
7b755fd1f149c4b1bfb984edccf952001a7d97621aba59a111d07784bf39dc78
** FALHA AO INICIAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.

Tente copiar o cloudflare.template.yml existente para cloudflare-static.template.yml e substitua a parte superior para que fique assim:

run:
  - file:
      path: /tmp/add-cloudflare-ips
      chmod: +x
      contents: |
        #!/bin/bash -e
        cat <<EOF > /tmp/cloudflare-ips
        173.245.48.0/20
        103.21.244.0/22
        103.22.200.0/22
        103.31.4.0/22
        141.101.64.0/18
        108.162.192.0/18
        190.93.240.0/20
        188.114.96.0/20
        197.234.240.0/22
        198.41.128.0/17
        162.158.0.0/15
        104.16.0.0/13
        104.24.0.0/14
        172.64.0.0/13
        131.0.72.0/22
        2400:cb00::/32
        2606:4700::/32
        2803:f800::/32
        2405:b500::/32
        2405:8100::/32
        2a06:98c0::/29
        2c0f:f248::/32
        EOF
        # Transformar em comandos nginx e escapar para inclusão no comando de anexo sed
        CONTENTS=$(</tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from &;/' | tr '\n' '\\\\' | sed 's/\\\\/\\\\n/g')
        
        echo CloudFlare IPs:
        echo $(echo | sed "/^/a $CONTENTS")
        # Inserir em discourse.conf
        sed -i "/sendfile on;/a $CONTENTS\\nreal_ip_header CF-Connecting-IP;" /etc/nginx/conf.d/discourse.conf
        # Limpar
        rm /tmp/cloudflare-ips

  - exec: "/tmp/add-cloudflare-ips"
  - exec: "rm /tmp/add-cloudflare-ips"

Em seguida, altere o contêiner do seu aplicativo para usar o modelo -static em vez do original.

Não deixe assim para sempre.

4 curtidas

Posso consertar isso em cloudflare.template.yml

Estou usando o GitHub para hospedar a lista de IPs do CloudFlare e tenho este erro porque uso um link com o símbolo /

        # Download list of CloudFlare ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v4/ -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v6/ -O - >> /tmp/cloudflare-ips

Precisa de URL sem este /:

        # Download list of CloudFlare ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v4 -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget https://raw.githubusercontent.com/xxx-cloud/CloudFlare-IPs/main/ips-v6 -O - >> /tmp/cloudflare-ips

Funciona :slight_smile:

Acho que, na perspectiva, é preciso criar um espelho para o site de IPs do CloudFlare https://www.cloudflare.com/ips-v4 e https://www.cloudflare.com/ips-v6 para obter uma lista atualizada e contornar o bloqueio.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.