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
- Token e root. Sem
--token, em um servidor que ainda não está registrado, ele para comInstall token is required; o dry run não precisa de token. Precisa rodar como root. - Sistema. Só Linux; ele detecta o sistema de init (systemd, upstart ou sysvinit) e a arquitetura (
amd64ouarm64). - Certificados. Em sistemas da família RHEL, ou quando o
curlnã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. - Dependências.
curl,iptablesouca-certificatesausentes são instalados comapt-get,dnfouyum; em sistemas rpm, oiptablesé instalado comoiptables-nftonde 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 executadpkg --configure -anem conserta pacotes quebrados por conta própria. - Download. O binário do agente para a arquitetura é baixado da última versão no GitHub (
github.comerelease-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-checksuminstala sem ele e é inseguro. - Verificação somente leitura. Ele executa
infrafence-agent preflightantes de instalar qualquer coisa (veja abaixo). - ipset. Instalado só se estiver ausente, se não for recusado com
--no-ipsete se a verificação disser que é seguro: há um gerenciador de pacotes disponível e nenhuma operação de pacotes em andamento. - Instalação. O binário vai para
/usr/local/bin/infrafence-agent, e o serviço é criado, habilitado e iniciado. - 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. - 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:
sudo infrafence-agent preflight
sudo infrafence-agent preflight --jsonA 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
iptablesestá instalado e utilizável, e qual o backend; se oipsetestá presente; outros gerenciadores de firewall e ferramentas de segurança (ufw, firewalld, CSF, fail2ban, CrowdSec, netfilter-persistent, Docker, Kubernetes). - Servidores web: nginx, Apache (
apache2ouhttpd), 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
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --dry-runEle 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.
