Executar nós e serviços seguros
Recomendações para executar nós e serviços seguros.
A execução segura de nós e serviços Celo, especialmente como parte da execução de um validador, é de extrema importância. Não fazer isso pode levar a consequências graves, incluindo, entre outras, perda de fundos, corte devido a assinatura dupla, etc.
RPC Endpoints
Os nós Celo podem interagir por meio de uma interface RPC para interações comuns, como consultar o blockchain, inspecionar a conectividade da rede e muito mais. A interface RPC é exposta via HTTP, WebSockets ou um soquete IPC local. Há duas considerações:
Não há autenticação na interface RPC. Qualquer pessoa com acesso à interface poderá executar quaisquer ações habilitadas com as opções de linha de comando. Isso inclui módulos RPC sensíveis como
personal
que interage com as chaves privadas armazenadas no nó (admin
é outro). Não é recomendado habilitar os módulos RPC, a menos que você precise explicitamente deles. Outros módulos RPC podem ser menos sensíveis, mas podem criar carga desnecessária em sua máquina (como o módulodebug
) para executar um ataque DoS.Se você precisar acessar os módulos RPC (por exemplo, para usar
celocli
ou o serviço de atestado), use um firewall e mecanismos semelhantes para restringir o acesso à interface RPC. Você quase nunca deseja que a interface seja acessível de fora da própria máquina.
Public Endpoints
Além da interface RPC, os nós e serviços Celo possuem outras interfaces que realmente precisam ser expostas à internet pública. Embora existam vários graus de proteção dentro do software, como validar solicitações de atestado contra o blockchain ou monitorar conexões no protocolo de descoberta, medidas adicionais são recomendadas para reduzir o impacto do tráfego malicioso. Exemplos incluem, mas não estão limitados a:
- DDoS protection: Endpoints públicos protegidos de um ataque DDoS são altamente recomendados para permitir que solicitações válidas sejam atendidas
- Whitelist endpoints: O serviço de atestado expõe um número limitado de caminhos para funcionar corretamente. Você pode usar um proxy reverso para rejeitar caminhos que não correspondam a eles.