Modulo Fundamentals
Configuracoes basicas do sistema operacional.
implant check --modules fundamentals # somente leitura
implant check --auto-fix --modules fundamentals # aplicaVerificacoes
| 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 22Fluxo do ssh-port:
- Cria snapshot da configuracao SSH atual
- Libera a nova porta no firewall (UFW, com fallback para iptables)
- Agenda watchdog de reversao (5 minutos)
- Aplica a nova porta
- Usuario testa a conexao na nova porta e confirma com
--confirm-change - 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:
- Para o unattended-upgrades temporariamente (este servico segura o lock do apt por minutos)
- Suspende o needrestart (modo list-only) para evitar prompts interativos
- 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
/swapfilede 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 65535Os 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`.