Modulo Docker
Instalacao e configuracao otimizada do Docker (ou do K3s, com --cluster-mode k3s).
implant check --modules docker # somente leitura
implant check --auto-fix --modules docker # aplicaVerificacoes
| Item | Descricao | Valor |
|---|---|---|
| Docker instalado | Instalacao | via script oficial get.docker.com |
| Docker service | Servico ativo e habilitado | - |
| Docker Compose | Plugin v2 | docker compose |
| Network public | Rede para servicos publicos (proxy) | public (bridge) |
| Limites de logs Docker | Rotacao de logs dos containers | max-size <= 100m e max-file <= 10 (aplica 10MB x 3) |
| Limpeza Docker | Mais de 5 containers parados | prune de containers/imagens com mais de 24h e volumes orfaos |
| K3s instalado / nao instalado | Coerencia com o --cluster-mode |
- |
O item de limites de log aceita qualquer valor definido dentro do teto, nao apenas o template do Implant.
Configuracao Aplicada
daemon.json
As chaves abaixo sao mescladas ao /etc/docker/daemon.json existente (com backup); as demais chaves do arquivo sao preservadas:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3",
"compress": "true"
},
"storage-driver": "overlay2",
"live-restore": true,
"userland-proxy": false,
"experimental": false,
"features": { "buildkit": true }
}Gerenciamento manual: `implant docker-limits apply | revert | status`.
Network
Cria a network public se nao existir. As demais networks ficam a cargo de cada stack.
docker network create publicip_forward
Apos uma instalacao nova do Docker, o Implant garante net.ipv4.ip_forward = 1 na mesma rodada (veja Hardening).
K3s
Com --cluster-mode k3s, o Implant instala e configura K3s em vez de Docker:
implant check --auto-fix --cluster-mode k3s
implant check --auto-fix --cluster-mode k3s --cluster-role agent \
--cluster-url https://<servidor>:6443 --cluster-token <token>Para trocar um servidor ja configurado: `implant reconfigure`.
Firewall e containers
Portas publicadas pelo Docker passam pela chain DOCKER-USER, nao pela INPUT. Os bans, o rate-limit (rate-limit add --docker <porta>) e o geo-block do Implant instalam ganchos tambem na DOCKER-USER. O item Cobertura DOCKER-USER do modulo Hardening confere isso.
Traefik
Para servidores com Traefik como proxy, ha um modulo e dois comandos dedicados:
| O que | Como |
|---|---|
| Permissao e query string do access log | implant check --modules traefik (corrige com implant fix --auto) |
| Ligar/desligar o access log e restringir permissoes | `implant traefik-accesslog` (--enable, --disable, --fix-perms) |
Bloquear arquivos sensiveis (/.env, /.git, chaves...) no ingresso com 403 |
`implant traefik-edge` (--audit, --configure) |
O access log configurado pelo Implant grava em JSON, so erros (400-599), descarta os headers por padrao (mantem User-Agent, Content-Type, X-Forwarded-For e X-Real-Ip; Authorization e Cookie nunca) e, nas versoes do Traefik que suportam, descarta a query string, que pode conter credenciais. Os arquivos ficam com modo 0640 (grupo adm).