Skip to content

Latest commit

 

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 ██████╗  ██████╗ ████████╗███████╗██╗██╗     ███████╗███████╗
 ██╔══██╗██╔═══██╗╚══██╔══╝██╔════╝██║██║     ██╔════╝██╔════╝
 ██║  ██║██║   ██║   ██║   █████╗  ██║██║     █████╗  ███████╗
 ██║  ██║██║   ██║   ██║   ██╔══╝  ██║██║     ██╔══╝  ╚════██║
 ██████╔╝╚██████╔╝   ██║   ██║     ██║███████╗███████╗███████║
 ╚═════╝  ╚═════╝    ╚═╝   ╚═╝     ╚═╝╚══════╝╚══════╝╚══════╝
 ┌──────────────────────────────────────────────────────────────┐
 │  "The quieter you become, the more you are able to hear."   │
 │                                          — Kali Linux       │
 └──────────────────────────────────────────────────────────────┘

ShellCheck License: MIT GitHub stars

Shell Script Linux Ubuntu Kali

50+ scripts to turn any Linux box into a productivity machine. 🇬🇧

50+ scripts para transformar qualquer Linux numa máquina de guerra. 🇧🇷

Scripts independentes para montar, configurar e manter ambientes de desenvolvimento e administração em Linux/WSL. Escolha os módulos conforme seu uso: terminal, linguagens, containers, rede ou servidor.

Tested on Ubuntu 22.04+ / 24.04+, Kali Linux & WSL2.


 ╔═══════════════════════════════════════════════════════╗
 ║                    T A B L E                          ║
 ║                 O F  C O N T E N T S                  ║
 ╠═══════════════════════════════════════════════════════╣
 ║                                                       ║
 ║  [0x01] .... Quick Install                            ║
 ║  [0x02] .... Estrutura do projeto                     ║
 ║  [0x03] .... Shell & Terminal                         ║
 ║  [0x04] .... Editor & Multiplexer                     ║
 ║  [0x05] .... Linguagens & Runtime                     ║
 ║  [0x06] .... DevOps & Containers                      ║
 ║  [0x07] .... Segurança & Hardening                    ║
 ║  [0x08] .... Rede & Pentest                           ║
 ║  [0x09] .... Utilitários                              ║
 ║  [0x0A] .... Compatibilidade                          ║
 ║  [0x0B] .... Contribuindo                             ║
 ║                                                       ║
 ╚═══════════════════════════════════════════════════════╝

[0x01] Quick Install

Cada script roda direto via curl — instale só o que precisar:

URL="https://raw.githubusercontent.com/vynazevedo/dotfiles/main"
 ┌─ SHELL & TERMINAL ───────────────────────────────────────────────────────┐
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/git-boost.sh)       # git aliases        │
 │  bash <(curl -fsSL $URL/scripts/github-keys.sh)     # gh + chave SSH     │
 │  bash <(curl -fsSL $URL/scripts/lazygit.sh)         # lazygit TUI        │
 │  bash <(curl -fsSL $URL/scripts/zsh.sh)             # zsh + p10k + tools │
 │  bash <(curl -fsSL $URL/scripts/aliases-extra.sh)   # aliases produtivos │
 │  bash <(curl -fsSL $URL/scripts/fzf.sh)             # fzf + integrações  │
 │                                                                           │
 ├─ EDITOR & MULTIPLEXER ──────────────────────────────────────────────────┤
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/neovim.sh)          # neovim + plugins   │
 │  bash <(curl -fsSL $URL/scripts/tmux.sh)            # tmux + config      │
 │                                                                           │
 ├─ LINGUAGENS ─────────────────────────────────────────────────────────────┤
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/mise.sh)            # version manager universal│
 │  bash <(curl -fsSL $URL/scripts/direnv.sh)          # env por diretório  │
 │  bash <(curl -fsSL $URL/scripts/node.sh)            # NVM + Node LTS     │
 │  bash <(curl -fsSL $URL/scripts/bun-deno.sh)        # Bun + Deno         │
 │  bash <(curl -fsSL $URL/scripts/golang.sh)          # Go + tools         │
 │  bash <(curl -fsSL $URL/scripts/rust.sh)            # Rust + cargo tools │
 │  bash <(curl -fsSL $URL/scripts/python.sh)          # pyenv + Python     │
 │  bash <(curl -fsSL $URL/scripts/uv.sh)              # projetos Python + uv│
 │  bash <(curl -fsSL $URL/scripts/android-dev.sh)     # Android SDK + Expo │
 │                                                                           │
 ├─ DEVOPS & CLOUD ─────────────────────────────────────────────────────────┤
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/docker.sh)          # Docker CE + aliases│
 │  bash <(curl -fsSL $URL/scripts/podman.sh)          # Podman (rootless)  │
 │  bash <(curl -fsSL $URL/scripts/lazydocker.sh)      # lazydocker TUI     │
 │  bash <(curl -fsSL $URL/scripts/k8s.sh)             # kubectl + helm + k9s│
 │  bash <(curl -fsSL $URL/scripts/terraform.sh)       # Terraform + tflint │
 │  bash <(curl -fsSL $URL/scripts/ansible.sh)         # Ansible + lint     │
 │  bash <(curl -fsSL $URL/scripts/cloud-cli.sh)       # AWS + GCP + Azure  │
 │  bash <(curl -fsSL $URL/scripts/caddy.sh)           # Caddy + HTTPS auto │
 │  bash <(curl -fsSL $URL/scripts/nginx.sh)           # Nginx + certbot    │
 │  bash <(curl -fsSL $URL/scripts/network-tools.sh)   # ferramentas rede   │
 │                                                                           │
 ├─ DADOS & IA ─────────────────────────────────────────────────────────────┤
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/databases.sh)       # pgcli mycli redis  │
 │  bash <(curl -fsSL $URL/scripts/miller.sh)          # mlr CSV/JSON/TSV   │
 │  bash <(curl -fsSL $URL/scripts/ollama.sh)          # LLM local (ollama) │
 │                                                                           │
 ├─ SEGURANÇA ──────────────────────────────────────────────────────────────┤
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/security-doctor.sh) # diagnóstico       │
 │  bash <(curl -fsSL $URL/scripts/gitleaks.sh)        # segredos em Git   │
 │  bash <(curl -fsSL $URL/scripts/supply-chain.sh)    # Cosign + Syft     │
 │  bash <(curl -fsSL $URL/scripts/falco.sh)           # sensor eBPF       │
 │  bash <(curl -fsSL $URL/scripts/ssh-hardening.sh)   # SSH hardening      │
 │  bash <(curl -fsSL $URL/scripts/firewall.sh)        # UFW setup          │
 │  bash <(curl -fsSL $URL/scripts/fail2ban.sh)        # anti brute force   │
 │  bash <(curl -fsSL $URL/scripts/sysctl.sh)          # kernel tuning      │
 │  bash <(curl -fsSL $URL/scripts/pentest.sh)         # toolkit pentest    │
 │  bash <(curl -fsSL $URL/scripts/gpg-yubikey.sh)     # GPG + YubiKey      │
 │  bash <(curl -fsSL $URL/scripts/secrets.sh)         # age + sops + pass  │
 │  bash <(curl -fsSL $URL/scripts/wazuh.sh)           # Wazuh SIEM agent   │
 │  bash <(curl -fsSL $URL/scripts/yara.sh)            # YARA + rule sets   │
 │  bash <(curl -fsSL $URL/scripts/unattended-upgrades.sh) # auto security updates│
 │  bash <(curl -fsSL $URL/scripts/wireguard.sh)       # WireGuard VPN      │
 │                                                                           │
 ├─ PRIVACIDADE & REDE ─────────────────────────────────────────────────────┤
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/tor.sh)             # Tor + obfs4        │
 │  bash <(curl -fsSL $URL/scripts/pi-hole.sh)         # Pi-hole + unbound  │
 │  bash <(curl -fsSL $URL/scripts/tailscale.sh)       # Tailscale mesh VPN │
 │  bash <(curl -fsSL $URL/scripts/atuin.sh)           # shell history sync │
 │  bash <(curl -fsSL $URL/scripts/restic.sh)          # backup criptografado│
 │  bash <(curl -fsSL $URL/scripts/modern-cli.sh)      # eza zoxide delta...│
 │                                                                           │
 ├─ UTILITÁRIOS ────────────────────────────────────────────────────────────┤
 │                                                                           │
 │  bash <(curl -fsSL $URL/scripts/security-audit.sh)  # audit de segurança │
 │  bash <(curl -fsSL $URL/scripts/system-info.sh)     # dashboard sistema  │
 │  bash <(curl -fsSL $URL/scripts/miller.sh)          # mlr — CSV/JSON/TSV │
 │  bash <(curl -fsSL $URL/scripts/cleanup.sh)         # limpeza sistema    │
 │  bash <(curl -fsSL $URL/scripts/backup.sh)          # backup configs     │
 │  bash <(curl -fsSL $URL/scripts/wsl.sh)             # otimizações WSL2   │
 │                                                                           │
 └───────────────────────────────────────────────────────────────────────────┘

Ou clone o repo:

git clone https://github.com/vynazevedo/dotfiles.git

[0x02] Estrutura do projeto

dotfiles/
└── scripts/
    ├── git-boost.sh         # git aliases & config
    ├── github-keys.sh       # gh CLI + chave SSH + cadastro no GitHub
    ├── lazygit.sh           # lazygit TUI moderna pra git
    ├── fzf.sh               # fzf + integrações shell (Ctrl+R, Ctrl+T)
    ├── unattended-upgrades.sh # auto security updates
    ├── zsh.sh               # zsh + oh-my-zsh + p10k
    ├── neovim.sh            # neovim + lazy.nvim + LSP
    ├── tmux.sh              # tmux + TPM + tema hacker
    ├── mise.sh              # version manager universal
    ├── direnv.sh            # variáveis de ambiente por diretório
    ├── node.sh              # NVM + Node.js LTS + tools
    ├── bun-deno.sh          # Bun + Deno (runtimes JS modernos)
    ├── golang.sh            # Go + ferramentas
    ├── rust.sh              # Rust + cargo tools
    ├── python.sh            # pyenv + Python + tools
    ├── uv.sh                # projetos Python, lockfiles e ferramentas isoladas
    ├── security-doctor.sh   # diagnóstico de pré-requisitos e sensores
    ├── gitleaks.sh          # segredos no histórico Git + SARIF redigido
    ├── supply-chain.sh      # Cosign + Syft: assinaturas e SBOM
    ├── falco.sh             # runtime eBPF + teste de entrega de alerta
    ├── android-dev.sh       # Android SDK + emulador + Expo
    ├── docker.sh            # docker CE + aliases
    ├── podman.sh            # podman rootless containers
    ├── lazydocker.sh        # lazydocker TUI (Docker/Podman)
    ├── k8s.sh               # kubectl + helm + k9s + kubectx
    ├── terraform.sh         # Terraform + tflint + trivy
    ├── ansible.sh           # Ansible + lint + skeleton
    ├── cloud-cli.sh         # AWS + GCP + Azure CLIs
    ├── caddy.sh             # Caddy web server (HTTPS automático)
    ├── nginx.sh             # Nginx + vhost template + certbot
    ├── databases.sh         # pgcli + mycli + litecli + redis-cli + usql
    ├── ollama.sh            # LLM local (llama, mistral, qwen)
    ├── wireguard.sh         # WireGuard VPN (server + client QR)
    ├── tailscale.sh         # Tailscale mesh VPN
    ├── restic.sh            # backup deduplicado + criptografado
    ├── secrets.sh           # age + sops + pass
    ├── modern-cli.sh        # eza, zoxide, dust, delta, bottom...
    ├── atuin.sh             # shell history searchable + sync E2E
    ├── ssh-hardening.sh     # hardening do SSH server
    ├── firewall.sh          # UFW com profiles
    ├── fail2ban.sh          # proteção brute force
    ├── sysctl.sh            # kernel tuning
    ├── network-tools.sh     # ferramentas de rede
    ├── pentest.sh           # toolkit de pentest
    ├── aliases-extra.sh     # aliases de produtividade
    ├── wsl.sh               # otimizações WSL2
    ├── security-audit.sh    # auditoria de segurança
    ├── gpg-yubikey.sh       # GPG + YubiKey + signed commits
    ├── wazuh.sh             # Wazuh SIEM agent
    ├── yara.sh              # YARA + rule sets curados
    ├── tor.sh               # Tor + torsocks + obfs4
    ├── pi-hole.sh           # Pi-hole + unbound DNS
    ├── system-info.sh       # dashboard do sistema
    ├── miller.sh            # Miller (mlr) — CSV/TSV/JSON
    ├── cleanup.sh           # limpeza do sistema
    └── backup.sh            # backup de configs

[0x03] Shell & Terminal

git-boost.sh

Git aliases para quem não tem tempo a perder.

 ┌─ COMMIT ──────────────────────────────────────────────┐
 │  git c  "msg"    commit -m                             │
 │  git ca "msg"    add . + commit -m                     │
 │  git amend       adiciona ao último commit             │
 │  git reword      edita mensagem do último commit       │
 │  git squash N    squash dos últimos N commits          │
 ├─ PUSH / PULL ─────────────────────────────────────────┤
 │  git p           push                                  │
 │  git pf          push --force-with-lease               │
 │  git pu          push -u origin <branch atual>         │
 │  git up          pull --rebase --autostash             │
 ├─ BRANCH ──────────────────────────────────────────────┤
 │  git b / recent  branch / ordenar por data             │
 │  git co / cob    checkout / checkout -b                │
 │  git sw / swc    switch / switch -c                    │
 │  git cleanup     remove branches mergeadas             │
 ├─ STATUS / LOG ────────────────────────────────────────┤
 │  git s           status resumido                       │
 │  git l / ll      log graph (20 / all)                  │
 ├─ OUTROS ──────────────────────────────────────────────┤
 │  git ss / sp     stash / stash pop                     │
 │  git d / ds      diff / diff --staged                  │
 │  git undo        desfaz último commit                  │
 │  git blame       blame detalhado (-w -C -C -C)        │
 └────────────────────────────────────────────────────────┘

zsh.sh

De terminal padrão pra cockpit de nave em um comando.

Instala Zsh + Oh My Zsh + Powerlevel10k (tema hacker) + plugins (syntax-highlighting, autosuggestions, completions) + ferramentas CLI (lsd, bat, btop, fastfetch) + JetBrainsMono Nerd Font.

Usa bloco gerenciado no .zshrc — suas customizações são preservadas.

aliases-extra.sh

40+ atalhos e funções para o dia a dia.

 ┌─ DESTAQUES ───────────────────────────────────────────┐
 │  extract <file>     extrair qualquer formato           │
 │  compress <dir>     comprimir diretório                │
 │  mkcd <dir>         criar e entrar no diretório        │
 │  genpass [len]      gerar senha segura                 │
 │  cheat <cmd>        cheat sheet do comando             │
 │  weather [city]     previsão do tempo                  │
 │  serve [port]       HTTP server rápido                 │
 │  calc <expr>        calculadora                        │
 │  note <texto>       notas rápidas                      │
 │  jwt <token>        decodificar JWT                    │
 │  b64encode/decode   Base64                             │
 │  urlencode/decode   URL encoding                       │
 │  psmem / pscpu      top processos por mem/CPU          │
 │  hg <text>          buscar no histórico                │
 └────────────────────────────────────────────────────────┘

[0x04] Editor & Multiplexer

neovim.sh

IDE no terminal com um único script.

 ┌─ O QUE INSTALA ───────────────────────────────────────┐
 │                                                        │
 │  Plugin Manager ... lazy.nvim                          │
 │  Tema ............ tokyonight (transparente)           │
 │  Fuzzy finder .... telescope                           │
 │  Syntax .......... treesitter (17 linguagens)          │
 │  LSP ............. mason + lspconfig                   │
 │  Autocomplete .... nvim-cmp + luasnip                  │
 │  Git ............. gitsigns                            │
 │  Extras .......... autopairs, comment, surround,       │
 │                    which-key, indent-blankline          │
 │                                                        │
 ├─ KEYBINDINGS (leader = Space) ────────────────────────┤
 │                                                        │
 │  <leader>ff    buscar arquivos                         │
 │  <leader>fg    buscar texto (grep)                     │
 │  <leader>fb    listar buffers                          │
 │  <leader>e     file explorer                           │
 │  <leader>w     salvar                                  │
 │  gd / gr       go to definition / references           │
 │  K             hover docs                              │
 │  <leader>rn    rename                                  │
 │  <leader>ca    code action                             │
 │                                                        │
 └────────────────────────────────────────────────────────┘

tmux.sh

Múltiplos terminais, uma tela.

 ┌─ KEYBINDINGS (prefix = Ctrl+A) ──────────────────────┐
 │                                                        │
 │  |           split horizontal                          │
 │  -           split vertical                            │
 │  h/j/k/l     navegar panes (vim-style)                │
 │  H/J/K/L     resize panes                             │
 │  Shift+←/→   navegar janelas                           │
 │  Enter       copy mode (vi)                            │
 │  r           reload config                             │
 │  S           nova session                              │
 │                                                        │
 │  Plugins: sensible, resurrect, continuum, yank         │
 │                                                        │
 └────────────────────────────────────────────────────────┘

[0x05] Linguagens & Runtime

 ┌─ NODE.JS ─────────────────────────────────────────────┐
 │  NVM + Node LTS + typescript, tsx, eslint, prettier,   │
 │  nodemon, pm2, http-server, tldr                       │
 ├─ GO ──────────────────────────────────────────────────┤
 │  Última versão estável + gopls, dlv, golangci-lint,    │
 │  air (live reload), swag, gotestsum                    │
 ├─ RUST ────────────────────────────────────────────────┤
 │  rustup + stable + rustfmt, clippy, rust-analyzer      │
 │  cargo-watch, cargo-edit, cargo-audit, cargo-nextest,  │
 │  bacon, tokei, hyperfine, zoxide, du-dust, procs       │
 ├─ PYTHON ──────────────────────────────────────────────┤
 │  pyenv + latest Python 3 + ruff, black, mypy, poetry,  │
 │  httpie, ipython, pre-commit, cookiecutter             │
 └────────────────────────────────────────────────────────┘
bash <(curl -fsSL $URL/scripts/node.sh)
bash <(curl -fsSL $URL/scripts/golang.sh)
bash <(curl -fsSL $URL/scripts/rust.sh)
bash <(curl -fsSL $URL/scripts/python.sh)
bash <(curl -fsSL $URL/scripts/uv.sh)

uv.sh

Instala uv para gerenciar projetos Python com pyproject.toml, uv.lock e ambientes isolados. É uma opção ao fluxo com python.sh/pyenv; pode coexistir com mise ou pyenv. O script preserva uma instalação existente, faz backup dos arquivos de shell antes de alterá-los e não duplica o PATH ao executar novamente. Não instala Python nem ferramentas extras automaticamente.

bash scripts/uv.sh
uv init meu-projeto
cd meu-projeto
uv add requests
uv run python -c 'import requests; print(requests.__version__)'
uv sync --locked
uvx ruff check .

Requer curl e certificados CA para a primeira instalação. Usa o instalador oficial em ~/.local/bin; reabra o terminal após executar.


[0x06] DevOps & Containers

docker.sh

Docker CE + o melhor set de aliases que existe.

 ┌─ ALIASES DOCKER ──────────────────────────────────────┐
 │                                                        │
 │  CONTAINERS         COMPOSE          CLEANUP           │
 │  dps   (running)    dc  (compose)    dprune (tudo)     │
 │  dpsa  (all)        dcu (up -d)      drmi   (images)   │
 │  dex   (exec -it)   dcd (down)       drm    (stopped)  │
 │  dsh   (shell)      dcr (restart)    dvol   (volumes)  │
 │  dl    (logs)       dcl (logs -f)                      │
 │  dip   (IP)         dcp (pull)                         │
 │  dtop  (stats)      dcb (build)                        │
 │  dstopall           dce (exec)                         │
 │                                                        │
 └────────────────────────────────────────────────────────┘

[0x07] Segurança & Hardening

Diagnóstico e módulos avançados

Comece pelo diagnóstico: ele é somente leitura, sem sudo ou rede. Identifica arquitetura, WSL, BTF, systemd, dependências e possíveis conflitos entre sensores. --strict retorna 1 se houver avisos/falhas; ferramentas opcionais ausentes são informativas. Serviço ativo não comprova entrega de eventos.

bash scripts/security-doctor.sh
bash scripts/security-doctor.sh --json
bash scripts/security-doctor.sh --strict

Gitleaks — prevenção de vazamento de segredos

bash scripts/gitleaks.sh install
bash scripts/gitleaks.sh self-test
bash scripts/gitleaks.sh scan /caminho/do/repo  # histórico Git
bash scripts/gitleaks.sh dir /caminho/projeto  # arquivos locais

Os scans geram SARIF com valores de segredos ocultados em diretórios privados em ${XDG_STATE_HOME:-$HOME/.local/state}/dotfiles/security. Saídas: 0 sem achados, 10 com achados, outros códigos indicam erro. Configurações/allowlists do Gitleaks influenciam o resultado; revise exceções antes de confiar em um scan. O self-test usa regra própria e dado sintético para validar detecção positiva, negativa e redação. O workflow Security também analisa o histórico Git. Referência do Gitleaks.

Supply chain — assinatura e inventário de componentes

bash scripts/supply-chain.sh install
bash scripts/supply-chain.sh self-test
bash scripts/supply-chain.sh sbom /caminho/projeto
bash scripts/supply-chain.sh verify-blob artefato.tar.gz artefato.sigstore.json \
  'IDENTIDADE_EXATA_DO_PUBLICADOR' 'https://token.actions.githubusercontent.com'
bash scripts/supply-chain.sh verify-image 'registry/projeto/imagem@sha256:DIGEST' \
  'IDENTIDADE_EXATA_DO_PUBLICADOR' 'https://token.actions.githubusercontent.com'

Substitua os exemplos pela identidade, emissor OIDC e digest reais. Obtenha a identidade esperada da política/documentação do publicador, independentemente do artefato recebido. O wrapper exige identidade exata, verifica imagens por digest e mantém as verificações de transparência do Cosign. A verificação pode acessar Sigstore/registro de imagens. Não executa nem implanta o artefato verificado.

O SBOM CycloneDX JSON descreve componentes identificados pelo Syft; não é uma análise de vulnerabilidades nem garante cobertura de todos os componentes. O self-test valida o conteúdo de um SBOM sintético e a execução do Cosign; assinaturas reais são verificadas com verify-blob ou verify-image. Cosign, Syft.

Falco — detecção durante a execução

bash scripts/falco.sh check
bash scripts/falco.sh install
bash scripts/falco.sh enable
bash scripts/falco.sh self-test
sudo journalctl -u dotfiles-falco -f

Requer Linux amd64/arm64, systemd e recursos de kernel para modern eBPF (BTF e ring buffer). A presença de BTF é um pré-requisito; suporte efetivo e permissões só são confirmados na ativação. Em WSL, o sensor observa o ambiente Linux.

install usa o repositório APT assinado oficial e prepara um serviço separado, sem ativar o sensor. Recusa outros serviços Falco ativos/habilitados e preserva configurações existentes. enable valida as regras, inicia o serviço e exige um alerta JSON correspondente a um processo inofensivo; só então habilita no boot. Se o teste falhar, interrompe o serviço que acabou de iniciar.

Inclui regras distribuídas com o pacote, uma regra de teste e uma regra local para escritas em /etc/cron.d e /etc/systemd/system. Essa regra local observa aberturas para escrita, não todas as formas possíveis de persistência; alterações legítimas também geram alertas e exigem ajuste. Há métricas periódicas e alertas de perda de eventos no journal. Configure retenção no journald conforme o volume de eventos. O módulo não bloqueia processos nem configura encaminhamento para Wazuh.

Configuração: /etc/falco/dotfiles.yaml, /etc/falco/dotfiles-rules.yaml e /etc/systemd/system/dotfiles-falco.service. Para revisar antes da instalação: bash scripts/falco.sh render /tmp/falco-preview (diretório novo). Para desativar: sudo systemctl disable --now dotfiles-falco. Instalação oficial, requisitos do sensor.

Versões e confiança dos downloads

Ferramenta Versão fixada Verificação
Gitleaks 8.30.1 SHA-256 do binário compactado, fixado no script
Cosign 3.1.3 SHA-256 do binário, fixado no script
Syft 1.52.0 SHA-256 do binário compactado, fixado no script
Falco 0.45.0 APT assinado com chave cujo SHA-256 está fixado no script

Os instaladores CLI suportam amd64/arm64, não usam sudo e preservam ferramentas já instaladas (sem atestar sua origem ou substituir sua versão). Requerem curl, certificados CA, sha256sum, tar e install. Usam ~/.local/bin; os wrappers já incluem esse diretório no PATH da sessão. Os self-tests CLI exigem Python 3; Falco também usa Python 3 para validar a entrega do alerta.

O bootstrap dos binários depende da confiança nesta revisão do repo e nos hashes revisados das releases oficiais; checksum não é uma assinatura independente. Atualizações são deliberadas: revise release, hashes de ambas as arquiteturas, compatibilidade e testes antes de mudar as versões. O pacote/regras Falco pode receber atualizações por APT administrado fora destes scripts; falcoctl automático não é habilitado pelo módulo. Ao alterar a versão Falco, atualize também o pacote e hash usados no workflow Security.

ssh-hardening.sh

 ┌─ O QUE FAZ ───────────────────────────────────────────┐
 │                                                        │
 │  ✗ Root login via SSH                                  │
 │  ✗ Password authentication                             │
 │  ✗ X11 / TCP forwarding                               │
 │  ✓ Apenas chaves ED25519                               │
 │  ✓ Ciphers modernos (chacha20, aes-gcm)               │
 │  ✓ Max 3 tentativas                                    │
 │  ✓ Timeout 5 min                                       │
 │  ✓ Gera chave ED25519 + config do cliente              │
 │                                                        │
 └────────────────────────────────────────────────────────┘

firewall.sh

 ┌─ PROFILES ────────────────────────────────────────────┐
 │                                                        │
 │  1) minimal    SSH only (rate-limited)                 │
 │  2) webserver  SSH + HTTP + HTTPS                      │
 │  3) dev        + portas dev (3000,5173,8080,5432,6379) │
 │  4) custom     escolha manual                          │
 │                                                        │
 └────────────────────────────────────────────────────────┘

fail2ban.sh

Proteção automática contra brute force no SSH (e nginx/apache opcionais). Ban progressivo: 3h no SSH, 24h para DDoS.

sysctl.sh

 ┌─ PROFILES ────────────────────────────────────────────┐
 │                                                        │
 │  1) desktop   swap=10, BBR, inotify alto, Docker ok    │
 │  2) server    + mais conexões, port range, ARP cache   │
 │  3) hardened  ASLR=2, no forwarding, dmesg restrito,   │
 │               ptrace restrito, no core dumps            │
 │                                                        │
 └────────────────────────────────────────────────────────┘

security-audit.sh

Scan completo de segurança do sistema com score.

Verifica: usuários, SSH, firewall, portas abertas, filesystem (SUID, permissões), kernel (ASLR, syncookies), serviços desnecessários. Output colorido com PASS/WARN/FAIL e score percentual.

bash <(curl -fsSL $URL/scripts/security-audit.sh)

[0x08] Rede & Pentest

network-tools.sh

 ┌─ FERRAMENTAS ─────────────────────────────────────────┐
 │  nmap, netcat, tcpdump, tshark, masscan, mtr,          │
 │  traceroute, iperf3, socat, jq, httpie                 │
 ├─ ALIASES ─────────────────────────────────────────────┤
 │  myip / localip / ips    info de IP                    │
 │  ports / listening       portas abertas                │
 │  quickscan <subnet>      host discovery                │
 │  portscan <host>         scan + versão                 │
 │  scanlocal               scan rede local               │
 │  certinfo <host>         info SSL cert                 │
 │  dnsall <host>           todos registros DNS           │
 │  whichip <ip>            info do IP (ipinfo.io)        │
 │  trace <host>            traceroute visual             │
 │  sniff / sniffhttp       tcpdump rápido                │
 └────────────────────────────────────────────────────────┘

pentest.sh

As ferramentas do Kali em qualquer Ubuntu.

 ┌─ TOOLKIT ─────────────────────────────────────────────┐
 │                                                        │
 │  RECON ......... nmap, gobuster, nikto, enum4linux     │
 │  EXPLOIT ....... sqlmap, hydra, john, hashcat          │
 │  WIRELESS ...... aircrack-ng                           │
 │  AD ............ bloodhound, crackmapexec, responder,  │
 │                  impacket, evil-winrm                   │
 │  POST-EXPLOIT .. linpeas, pspy                         │
 │  WORDLISTS ..... rockyou, seclists                     │
 │                                                        │
 ├─ ALIASES ─────────────────────────────────────────────┤
 │  nmapfull <ip>      scan completo                      │
 │  nmapvuln <ip>      scan de vulns                      │
 │  dirscan <url>      directory bruteforce               │
 │  webscan <url>      nikto scan                         │
 │  listener <port>    nc listener                        │
 │  tun0               IP da VPN (HTB/THM)                │
 │                                                        │
 └────────────────────────────────────────────────────────┘

[0x09] Utilitários

 ┌─ SCRIPTS ─────────────────────────────────────────────┐
 │                                                        │
 │  --info       Dashboard do sistema (CPU, RAM, disco,   │
 │               rede, serviços, toolchain, segurança)    │
 │               com barras de progresso coloridas         │
 │                                                        │
 │  --cleanup    Limpa APT cache, kernels antigos, logs,  │
 │               thumbnails, snaps e temporários          │
 │               lixeira e Docker via flags explícitas   │
 │                                                        │
 │  --backup     Backup de dotfiles, configs do sistema,  │
 │               lista de pacotes (apt/pip/npm/cargo),    │
 │               crontab. Restore extrai para revisão.    │
 │               Uso: bash scripts/backup.sh               │
 │               Ou:  bash scripts/backup.sh [dotfiles|   │
 │                    full|configs|custom|restore]         │
 │                                                        │
 │  --wsl        Otimizações para WSL2: wsl.conf,         │
 │               .wslconfig, DNS fix, aliases (clipboard, │
 │               explorer, VS Code)                       │
 │                                                        │
 └────────────────────────────────────────────────────────┘

Limpeza com controle explícito

bash scripts/cleanup.sh --dry-run                 # visualizar comandos
bash scripts/cleanup.sh                           # manutenção padrão
bash scripts/cleanup.sh --trash --docker          # incluir lixeira e Docker
bash scripts/cleanup.sh --docker-volumes --dry-run # visualizar remoção de volumes

Kernels são tratados pelo apt-get autoremove, respeitando a política da distribuição. Temporários seguem as regras do systemd-tmpfiles, quando disponível. Lixeira e Docker são preservados por padrão. Volumes anônimos Docker sem uso só são removidos com --docker-volumes; isso pode apagar dados persistentes. O modo --dry-run mostra os comandos, sem executar remoções; não calcula o espaço que será recuperado nem enumera os pacotes que o APT removeria.

Backup e recuperação

bash scripts/backup.sh dotfiles
BACKUP_DIR="$HOME/backups" bash scripts/backup.sh restore

Novos backups de dotfiles usam caminhos relativos ao diretório pessoal e incluem os arquivos .*_aliases. Arquivos de backup novos são privados (umask 077) e só recebem o nome final após a conclusão do tar. Falhas na criação dos arquivos compactados interrompem o script com erro.

restore exige terminal interativo e extrai todos os tipos para um diretório temporário, informado na saída. Revise e copie os arquivos desejados manualmente; suas configurações atuais não são sobrescritas. Backups antigos continuam extraíveis, mas mantêm o prefixo original (por exemplo, home/usuario/.bashrc). Os arquivos .tar.gz não são criptografados; para backups criptografados, consulte restic.sh.


[0x0A] Compatibilidade

 DISTRO              VERSÃO       STATUS
 ──────              ──────       ──────
 Ubuntu              22.04 LTS    ✔ testado
 Ubuntu              24.04 LTS    ✔ testado
 Kali Linux          2024.x+      ✔ testado
 Debian              12+          ✔ compatível
 WSL2 (Ubuntu)       qualquer     ✔ testado
 ARCH                STATUS
 ────                ──────
 amd64 (x86_64)     ✔ testado
 arm64 (aarch64)    ✔ suportado

[0x0B] Contribuindo

 1. Fork o repo
 2. Crie uma branch (git swc minha-feature)
 3. Commit (git c "add: minha feature")
 4. Push (git pu)
 5. Abre um PR

PRs com novos scripts, fixes ou melhorias são bem-vindos.

Validação local (Bash, ShellCheck e Python 3):

for script in scripts/*.sh; do bash -n "$script" || exit; done
shellcheck --severity=warning scripts/*.sh
python3 -m unittest discover -s tests -v

Os testes usam diretórios temporários e comandos simulados, sem instalar pacotes ou executar operações administrativas. O CI executa os testes de comportamento em Ubuntu 22.04 e 24.04; isso não substitui testes completos de instalação em cada distribuição e arquitetura.


 ┌──────────────────────────────────────────────────────────────┐
 │                                                              │
 │   "Talk is cheap. Show me the code." — Linus Torvalds       │
 │                                                              │
 └──────────────────────────────────────────────────────────────┘

@vynazevedo

About

No description, website, or topics provided.

Resources

Contributing

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages