InfraFenceInfraFence

Live Security Operations

Começar

O que o instalador faz

Cada passo do install.sh do InfraFence, a verificação preflight somente leitura que ele executa antes de alterar qualquer coisa e o dry run que mostra o plano sem tocar no servidor.

Última atualização:

O InfraFence foi feito para servidores de produção: o instalador verifica o servidor em modo somente leitura antes de alterar qualquer coisa e deixa em paz o que não pode alterar com segurança.

Os passos

  1. Token e root. Sem --token, em um servidor que ainda não está registrado, ele para com Install token is required; o dry run não precisa de token. Precisa rodar como root.
  2. Sistema. Só Linux; ele detecta o sistema de init (systemd, upstart ou sysvinit) e a arquitetura (amd64 ou arm64).
  3. Certificados. Em sistemas da família RHEL, ou quando o curl não consegue verificar o download, ele adiciona o certificado ISRG Root X1 (Let's Encrypt) a um bundle próprio, /etc/infrafence/ca-bundle.pem, e em sistemas da família RHEL também aos certificados do sistema. O certificado vem dentro do instalador e nunca é baixado; onde há openssl, ele é conferido antes com a impressão digital SHA-256 fixada.
  4. Dependências. curl, iptables ou ca-certificates ausentes são instalados com apt-get, dnf ou yum; em sistemas rpm, o iptables é instalado como iptables-nft onde esse pacote existe, para que as regras dele usem o mesmo backend do firewalld e do nftables. Se outra operação de pacotes estiver em andamento, ele espera até 5 minutos (Another package operation is running — waiting for it to finish...). Ele nunca executa dpkg --configure -a nem conserta pacotes quebrados por conta própria.
  5. Download. O binário do agente para a arquitetura é baixado da última versão no GitHub (github.com e release-assets.githubusercontent.com, a única fonte de download) e conferido com o checksum SHA-256 publicado. O checksum é obrigatório: se não puder ser baixado ou não bater, nada é instalado. --skip-checksum instala sem ele e é inseguro.
  6. Verificação somente leitura. Ele executa infrafence-agent preflight antes de instalar qualquer coisa (veja abaixo).
  7. ipset. Instalado só se estiver ausente, se não for recusado com --no-ipset e se a verificação disser que é seguro: há um gerenciador de pacotes disponível e nenhuma operação de pacotes em andamento.
  8. Instalação. O binário vai para /usr/local/bin/infrafence-agent, e o serviço é criado, habilitado e iniciado.
  9. Registro. O agente se registra com o seu token e guarda o próprio token em /etc/infrafence/config.json. O token de instalação não é mantido.
  10. Verificação da inicialização. Ele confirma que o serviço está rodando e mostra onde ler os logs.

O download, o registro e a inicialização do serviço reportam o resultado ao painel (só com os primeiros caracteres do token), para que uma instalação com falha possa ser rastreada.

A verificação somente leitura (preflight)

infrafence-agent preflight examina o servidor e não altera nada. O instalador a executa antes de instalar, o agente a executa a cada inicialização e depois uma vez por dia, e você pode executá-la quando quiser:

bash
sudo infrafence-agent preflight
sudo infrafence-agent preflight --json

A saída começa com InfraFence preflight (read-only — nothing was changed) e depois traz uma linha por constatação, com o nível: ok, info, warn ou block. Sem --json, o código de saída é 2 quando uma constatação é block e 0 nos outros casos.

Ela examina:

  • Firewall: se o iptables está instalado e utilizável, e qual o backend; se o ipset está presente; outros gerenciadores de firewall e ferramentas de segurança (ufw, firewalld, CSF, fail2ban, CrowdSec, netfilter-persistent, Docker, Kubernetes).
  • Servidores web: nginx, Apache (apache2 ou httpd), Caddy e LiteSpeed.
  • Quem gerencia a configuração: painéis de hospedagem e ferramentas de gerenciamento de configuração (Ansible, Puppet, Chef, Salt). Quando há um deles, o InfraFence nunca edita a configuração do servidor web.
  • Pacotes: o gerenciador de pacotes e qualquer operação de pacotes em andamento.
  • Recursos: espaço livre em disco em / (avisa abaixo de 200 MB), memória disponível (avisa abaixo de 128 MB), o modo do SELinux.

O resultado também chega ao painel: a aba Host do servidor o mostra em Compatibilidade do servidor.

O dry run

bash
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --dry-run

Ele não precisa de token, e também não altera nada em sistemas da família RHEL: a etapa dos certificados vale só para aquela execução. Ele baixa o agente, executa a verificação somente leitura e mostra Dry run — nothing was installed or changed., seguido do que uma execução real faria: instalar o binário e o serviço, instalar ou não o ipset, criar as chains de firewall INFRAFENCE (com saltos a partir de INPUT, e de DOCKER-USER se o Docker estiver presente) e registrar. As alterações na configuração do servidor web e o bloqueio de entrada das listas de threat intelligence ficam desligados até você ativá-los no painel.

O que ele nunca faz

  • Nunca modifica as suas regras de firewall existentes: tudo fica nas chains próprias do agente.
  • Nunca conclui configurações pela metade de outros pacotes (dpkg --configure -a), o que poderia reiniciar serviços.
  • Nunca edita uma configuração que pertence a um painel de hospedagem, ao LiteSpeed ou a uma ferramenta de gerenciamento de configuração.