Modulo Fundamentals

Configuracoes basicas do sistema operacional.

implant check --modules fundamentals             # somente leitura
implant check --auto-fix --modules fundamentals  # aplica

Verificacoes

Item Descricao Valor Aplicado
Privilegios root Execucao como root -
Espaco em disco / Memoria RAM Recursos minimos apenas reporta
Conectividade internet Acesso a internet apenas reporta
Porta SSH Porta atual apenas reporta (use implant ssh-port)
SSH Hardening MaxAuthTries, LoginGraceTime, ClientAlive, X11Forwarding 3, 20s, 300s x 2, no
SSH PerSourcePenalties Penalidade por IP de origem (OpenSSH 9.8+) habilitado
SSH Permissoes Sem escrita de grupo/outros em /root, /root/.ssh e authorized_keys chmod go-w
SSH PasswordAuthentication Login por senha apenas reporta (Fail de risco alto se yes)
SSH PermitRootLogin Login de root apenas reporta (Fail de risco alto se yes)
NTP Sync Sincronizacao de tempo systemd-timesyncd
Timezone Fuso horario --timezone (padrao America/Sao_Paulo)
Locale Idioma do sistema --locale (padrao: derivado do timezone)
Swap Memoria swap 2GB se RAM <= 2GB
limits.conf / systemd limits / Docker ulimits Limites de arquivos e processos nofile=1048576, nproc=65535
sysctl.conf Limites de kernel (memoria, file descriptors, inotify) /etc/sysctl.d/99-implant.conf
Logrotate Rotacao proporcional ao disco /etc/logrotate.d/implant-logs
Ferramentas Instala ferramentas essenciais curl, wget, git, vim, htop, net-tools, iotop, iftop, ncdu, tmux, jq, zip, unzip, rsync, conntrack
Bloatware Remove pacotes desnecessarios (Debian/Ubuntu) snapd, lxd-installer, lxd-agent-loader, popularity-contest, apport, ubuntu-advantage-tools

Todos os itens medem o valor efetivo do host (por exemplo, sshd -T para o SSH), e nao a presenca de um arquivo escrito pelo Implant. Uma configuracao equivalente feita por outro meio conta como correta.

SSH

Porta SSH

O check nao altera a porta SSH; apenas reporta a atual. A troca e um comando proprio, com watchdog de reversao: `implant ssh-port`.

implant ssh-port 2222               # libera no firewall, troca e agenda o watchdog
implant ssh-port --confirm-change   # confirma e cancela a reversao
implant reset --ssh-port            # volta para 22

Fluxo do ssh-port:

  1. Cria snapshot da configuracao SSH atual
  2. Libera a nova porta no firewall (UFW, com fallback para iptables)
  3. Agenda watchdog de reversao (5 minutos)
  4. Aplica a nova porta
  5. Usuario testa a conexao na nova porta e confirma com --confirm-change
  6. Sem confirmacao: o watchdog reverte automaticamente

Systemd Socket Activation

Em servidores que usam systemd socket activation para SSH (Ubuntu 22.04+), o Implant detecta e configura via override do systemd em vez de editar sshd_config.

Senha e root

PasswordAuthentication yes e PermitRootLogin yes (efetivos) aparecem como Fail de risco alto, mas o auto-fix nao os altera: desligar isso por efeito colateral poderia trancar o operador fora do servidor.

Gerenciamento de Pacotes

Preparacao do Ambiente APT

Antes de instalar qualquer pacote, o Implant:

  1. Para o unattended-upgrades temporariamente (este servico segura o lock do apt por minutos)
  2. Suspende o needrestart (modo list-only) para evitar prompts interativos
  3. Mata processos apt/dpkg antigos (mais de 30 minutos) e aguarda a liberacao do lock (maximo 60 segundos)

Atualizacao de indices e cada instalacao tem timeout de 120 segundos, com DEBIAN_FRONTEND=noninteractive. Ao final, o needrestart e o unattended-upgrades voltam ao estado original.

Ferramentas Instaladas

Pacote Uso
curl Transferencia de dados HTTP/HTTPS
wget Download de arquivos
git Controle de versao
vim Editor de texto
htop Monitor de processos interativo
net-tools Ferramentas de rede (ifconfig, netstat)
iotop Monitor de I/O de disco
iftop Monitor de trafego de rede
ncdu Analisador de uso de disco
tmux Multiplexador de terminal
jq Processador de JSON em linha de comando
zip / unzip Compactacao de arquivos
rsync Sincronizacao e copia eficiente de arquivos
conntrack Inspecao da tabela de conexoes do kernel

Swap

  • Cria /swapfile de 2GB se RAM <= 2GB e nao houver swap suficiente
  • Nao cria swap em servidores com mais de 2GB de RAM
  • vm.swappiness = 10

Gerenciamento manual: `implant swap enable --size N | disable | status`.

Limites

# /etc/security/limits.conf
* soft nofile 1048576
* hard nofile 1048576
* soft nproc  65535
* hard nproc  65535

Os mesmos limites sao aplicados ao systemd e ao Docker. Gerenciamento manual: `implant limits apply | revert | status`.

Logrotate

Configuracao proporcional ao tamanho do disco, em /etc/logrotate.d/implant-logs:

Logs Tamanho maximo Rotacao
kern.log, syslog 1% do disco (min 50MB, max 500MB) 2 a 4 arquivos, conforme o disco
auth.log, user.log, mail.log, cron.log 0.5% do disco (min 20MB, max 100MB) semanal, 4 a 7 arquivos
debug, daemon.log, messages 0.5% do disco semanal, 2 arquivos

Gerenciamento manual: `implant logrotate apply | revert | status`.