implant sysctl
Aplica, reverte e inspeciona o hardening base do kernel, gravado em
/etc/sysctl.d/99-hardening.conf. É a mesma camada que o
check --auto-fix aplica sempre; o subcomando permite operá-la de forma
isolada e idempotente.
O conteúdo se adapta ao host:
- Papel de roteamento — se o host roteia pacotes (Docker, K3s ou
WireGuard ativo),
ip_forwardfica em1erp_filterem2(loose, tolera tráfego assimétrico). Em host comum, sem roteamento,ip_forward = 0erp_filter = 1(strict). - BBR — se o kernel oferece o congestion control BBR (embutido ou como
módulo carregável), adiciona
fq+bbre persiste o módulo. Sem BBR, nada é adicionado e o kernel segue com o algoritmo padrão.
Uso
implant sysctl [OPTIONS] <SUBCOMANDO>Requer root. As opções do comando (--dry-run) vêm antes do subcomando:
sudo implant sysctl --dry-run apply # correto
sudo implant sysctl apply --dry-run # erro: argumento inesperadoSubcomandos
| Subcomando | Descrição |
|---|---|
apply |
Grava 99-hardening.conf e carrega com sysctl -p |
revert |
Remove 99-hardening.conf e recarrega com sysctl --system |
status |
Mostra se o hardening está aplicado e os valores efetivos no kernel |
Flags
| Flag | Descrição |
|---|---|
--dry-run |
Simula sem aplicar mudanças |
-o, --output <FORMATO> |
human (padrão), json ou yaml |
-v, --verbose |
Mostra os comandos executados |
-c, --config <ARQUIVO> |
Arquivo de configuração (padrão /etc/protocolo-implant/config.toml) |
-t, --token <TOKEN> |
Token de identificação do servidor (ou PROTOCOLO_TOKEN) |
O que é aplicado
Arquivo: /etc/sysctl.d/99-hardening.conf
| Sysctl | Valor | Por quê |
|---|---|---|
net.ipv4.tcp_syncookies |
1 |
Resiste a SYN flood sem esgotar a fila |
net.ipv4.ip_forward |
0 ou 1 |
1 só quando o host roteia (Docker/K3s/WireGuard) |
net.ipv4.conf.{all,default}.send_redirects |
0 |
Host não é roteador: não envia ICMP redirect |
net.ipv4.conf.{all,default}.accept_source_route |
0 |
Rejeita pacotes com source routing |
net.ipv4.conf.{all,default}.accept_redirects |
0 |
Ignora ICMP redirect (anti sequestro de rota) |
net.ipv4.conf.{all,default}.secure_redirects |
0 |
Ignora redirect até de gateways conhecidos |
net.ipv4.icmp_echo_ignore_broadcasts |
1 |
Anti smurf (ping em broadcast) |
net.ipv4.icmp_ignore_bogus_error_responses |
1 |
Descarta respostas ICMP malformadas |
net.ipv4.conf.{all,default}.rp_filter |
1 ou 2 |
Anti spoofing; 2 (loose) quando o host roteia |
net.ipv4.tcp_timestamps |
0 |
Não expõe uptime via timestamps TCP |
kernel.randomize_va_space |
2 |
ASLR completo |
net.core.default_qdisc |
fq |
Só com BBR disponível |
net.ipv4.tcp_congestion_control |
bbr |
Só com BBR disponível |
Com BBR, o implant também grava /etc/modules-load.d/tcp_bbr.conf e carrega o
módulo tcp_bbr, para que a configuração sobreviva ao reboot.
Status
O status lê os valores efetivos do kernel (sysctl -n), não só o arquivo:
| Campo | Significado |
|---|---|
applied |
99-hardening.conf existe e foi gerado pelo implant |
config_file |
Caminho do arquivo |
ip_forward, rp_filter, congestion_control |
Valores em vigor no kernel |
docker_detected |
Docker ou K3s presente |
routing_role |
Host roteia pacotes (Docker, K3s ou WireGuard) |
Se applied é true mas algum valor efetivo diverge, outro drop-in em
/etc/sysctl.d/ está sobrescrevendo o do implant (arquivos com nome maior na
ordem alfabética vencem).
Como reverter
sudo implant sysctl revertO revert:
- remove
/etc/sysctl.d/99-hardening.conf; - se o host roteia (Docker/K3s/WireGuard), grava
/etc/sysctl.d/99-ip-forward.confcomnet.ipv4.ip_forward = 1, para não derrubar a rede dos containers ou da VPN; - recarrega tudo com
sysctl --system.
Observações:
sysctl --systemsó reaplica o que outros arquivos definem. Uma chave que nenhum outro arquivo define mantém o valor atual no kernel até o próximo reboot.- O
revertnão remove/etc/modules-load.d/tcp_bbr.conf. implant reset --kernel-hardeninge o passo 6 do emergency-reset fazem a mesma reversão.
O hardening base não faz parte do emergency-mode:
para suspendê-lo, use revert e depois apply.
Exemplos
# Ver o que seria feito
sudo implant sysctl --dry-run apply
# Aplicar
sudo implant sysctl apply
# Conferir valores efetivos em JSON
sudo implant sysctl status -o json
# Reverter
sudo implant sysctl revertSaída JSON do status (resumida):
{
"success": true,
"command": "sysctl",
"data": {
"action": "status",
"target": "sysctl",
"result": "completed",
"dry_run": false,
"state": {
"applied": true,
"config_file": "/etc/sysctl.d/99-hardening.conf",
"ip_forward": "1",
"rp_filter": "2",
"congestion_control": "bbr",
"docker_detected": true,
"routing_role": true
}
}
}Relação com outros comandos
| Camada | Arquivo | Comando |
|---|---|---|
| Hardening base (este) | /etc/sysctl.d/99-hardening.conf |
implant sysctl / check --auto-fix |
| Pack estendido opt-in (IPv6, SYN flood, TIME_WAIT) | /etc/sysctl.d/99-harden-network.conf |
harden-network |
| Tuning de capacidade (file-max, inotify, filas) | /etc/sysctl.d/99-implant.conf |
check --auto-fix (removido por limits revert) |
Veja também
- harden-network — pack estendido de rede
- check — aplica o hardening base no
--auto-fix - reset —
--kernel-hardening