Expansao do Plano de Manuais: Adicionados Suricata, OpenVPN, VLANs, Redis, CentOS/AlmaLinux, MagnusBilling, ferramentas de diagnostico e logs

This commit is contained in:
João Pedro Toledo Goncalves 2026-01-23 01:02:55 -03:00
parent ee976cd041
commit c3b0496e14
5 changed files with 581 additions and 12 deletions

View File

@ -210,6 +210,10 @@ Acesse `https://admin.microsoft.com` para gerenciar.
### Fase 1: Pesquisa e Descoberta
* **Ação:** Pesquise versões, pré-requisitos e telas atuais do sistema.
* **Objetivo:** Garantir que o manual não nasça obsoleto.
* **Gestão de Conhecimento (Novo):** Se encontrar documentação oficial ou ferramentas úteis, REGISTRE-AS para o futuro:
```bash
python .gemini/register_knowledge.py add --url "https://docs.exemplo.com" --description "Manual Oficial" --category "Docs"
```
### Fase 2: Estruturação (Padrão iT Guys)
O documento final deve seguir rigorosamente a hierarquia do modelo **MTITG 002-23 (Revisão Jr)**:

254
.gemini/knowledge_base.json Normal file
View File

@ -0,0 +1,254 @@
[
{
"url": "https://docs.netgate.com/pfsense/en/latest/",
"description": "pfSense Official Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:36:51"
},
{
"url": "https://www.truenas.com/docs/scale/",
"description": "TrueNAS Scale Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:36:51"
},
{
"url": "https://www.postgresql.org/docs/",
"description": "PostgreSQL Official Docs",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:36:51"
},
{
"url": "https://learn.microsoft.com/en-us/windows-server/",
"description": "Windows Server Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:36:51"
},
{
"url": "https://ubuntu.com/server/docs",
"description": "Ubuntu Server Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:09"
},
{
"url": "https://www.debian.org/doc/",
"description": "Debian Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:09"
},
{
"url": "https://wiki.alpinelinux.org/wiki/Main_Page",
"description": "Alpine Linux Wiki",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:09"
},
{
"url": "https://pve.proxmox.com/wiki/Main_Page",
"description": "Proxmox VE Wiki",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:09"
},
{
"url": "https://docs.docker.com/",
"description": "Docker Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:09"
},
{
"url": "https://docs.portainer.io/",
"description": "Portainer Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:10"
},
{
"url": "https://docs.gitea.com/",
"description": "Gitea Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:27"
},
{
"url": "https://www.zabbix.com/documentation/current/en",
"description": "Zabbix Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:27"
},
{
"url": "https://support.google.com/chrome/a/",
"description": "Chrome Enterprise Support",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:27"
},
{
"url": "https://support.mozilla.org/en-US/products/firefox-enterprise",
"description": "Firefox for Enterprise",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:27"
},
{
"url": "https://www.chiark.greenend.org.uk/~sgtatham/putty/docs.html",
"description": "PuTTY User Manual",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:37:28"
},
{
"url": "https://dev.mysql.com/doc/",
"description": "MySQL Reference Manual",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:41:49"
},
{
"url": "https://docs.asterisk.org/",
"description": "Asterisk Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:41:55"
},
{
"url": "https://nginx.org/en/docs/",
"description": "Nginx Official Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:52:14"
},
{
"url": "https://httpd.apache.org/docs/",
"description": "Apache HTTP Server Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:52:15"
},
{
"url": "https://www.manageengine.com/products/desktop-central/help/",
"description": "ManageEngine Endpoint Central Help",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:52:15"
},
{
"url": "https://webmin.com/docs/",
"description": "Webmin Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:52:15"
},
{
"url": "https://winscp.net/eng/docs/start",
"description": "WinSCP Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:52:15"
},
{
"url": "https://wiki.filezilla-project.org/Documentation",
"description": "FileZilla/FTP Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:52:15"
},
{
"url": "https://www.nano-editor.org/docs.php",
"description": "Nano Editor Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:55:18"
},
{
"url": "https://www.vim.org/docs.php",
"description": "Vim Official Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:55:18"
},
{
"url": "https://eff-certbot.readthedocs.io/en/stable/",
"description": "Certbot (Let's Encrypt) Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:55:18"
},
{
"url": "https://www.veeam.com/documentation-guides-datasheets.html",
"description": "Veeam Documentation Center",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:55:18"
},
{
"url": "https://ss64.com/bash/",
"description": "Linux Command Line Reference (ss64)",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:55:18"
},
{
"url": "https://ss64.com/nt/",
"description": "Windows CMD Reference (ss64)",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:55:19"
},
{
"url": "https://ss64.com/ps/",
"description": "PowerShell Reference (ss64)",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 00:55:19"
},
{
"url": "https://suricata.readthedocs.io/en/latest/",
"description": "Suricata IDS/IPS Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 01:00:49"
},
{
"url": "https://openvpn.net/community-resources/",
"description": "OpenVPN Community Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 01:00:49"
},
{
"url": "https://redis.io/docs/",
"description": "Redis Official Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 01:00:49"
},
{
"url": "https://docs.almalinux.org/",
"description": "AlmaLinux Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 01:00:49"
},
{
"url": "https://wiki.centos.org/",
"description": "CentOS Wiki",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 01:00:49"
},
{
"url": "https://www.magnusbilling.org/documentation/",
"description": "MagnusBilling Documentation",
"category": "Docs",
"tags": [],
"added_at": "2026-01-23 01:00:49"
}
]

View File

@ -0,0 +1,82 @@
import json
import os
import sys
import argparse
from datetime import datetime
# Configuration
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
KB_FILE = os.path.join(BASE_DIR, "knowledge_base.json")
def load_kb():
if not os.path.exists(KB_FILE):
return []
try:
with open(KB_FILE, 'r', encoding='utf-8') as f:
return json.load(f)
except Exception as e:
print(f"Error loading KB: {e}")
return []
def save_kb(data):
try:
with open(KB_FILE, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
except Exception as e:
print(f"Error saving KB: {e}")
sys.exit(1)
def register_source(url, description, category, tags):
kb = load_kb()
# Check for duplicates
for entry in kb:
if entry.get("url") == url:
print(f"URL already registered: {url}")
return
new_entry = {
"url": url,
"description": description,
"category": category,
"tags": tags,
"added_at": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
kb.append(new_entry)
save_kb(kb)
print("SUCCESS: Knowledge Source Registered")
print(json.dumps(new_entry, indent=2, ensure_ascii=False))
def list_sources(filter_text=None):
kb = load_kb()
print(f"Total Sources: {len(kb)}")
for entry in kb:
if filter_text:
search_content = (entry['url'] + entry['description'] + entry['category']).lower()
if filter_text.lower() not in search_content:
continue
print(f"[{entry['category']}] {entry['description']} ({entry['url']})")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Register knowledge sources for iT Guys.")
subparsers = parser.add_subparsers(dest="command", required=True)
# Add command
add_parser = subparsers.add_parser("add", help="Add a new source")
add_parser.add_argument("--url", required=True, help="URL of the source")
add_parser.add_argument("--description", required=True, help="Short description")
add_parser.add_argument("--category", default="General", help="Category (Docs, Tool, Reference)")
add_parser.add_argument("--tags", nargs="*", default=[], help="Tags provided as space-separated list")
# List command
list_parser = subparsers.add_parser("list", help="List sources")
list_parser.add_argument("filter", nargs="?", help="Optional filter text")
args = parser.parse_args()
if args.command == "add":
register_source(args.url, args.description, args.category, args.tags)
elif args.command == "list":
list_sources(args.filter)

View File

@ -0,0 +1,111 @@
import json
import os
import sys
import urllib.request
import urllib.error
import re
# Configuration
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
KB_FILE = os.path.join(BASE_DIR, "knowledge_base.json")
def load_kb():
if not os.path.exists(KB_FILE):
return []
try:
with open(KB_FILE, 'r', encoding='utf-8') as f:
return json.load(f)
except Exception as e:
print(f"Error loading KB: {e}")
return []
def save_kb(data):
try:
with open(KB_FILE, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
except Exception as e:
print(f"Error saving KB: {e}")
sys.exit(1)
def validate_url(url, description):
print(f"Checking: {url}...", end=" ", flush=True)
try:
# User-Agent is often required to avoid 403 Forbidden from some documentation sites
req = urllib.request.Request(
url,
data=None,
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
)
with urllib.request.urlopen(req, timeout=15) as response:
if response.status != 200:
print(f"[FAIL] Status {response.status}")
return False
content = response.read().decode('utf-8', errors='ignore').lower()
# Simple content check: look for significant words from description
# Exclude common stop words
stop_words = {'documentation', 'official', 'manual', 'reference', 'guide', 'wiki', 'site', 'docs', 'for', 'enterprise', 'support', 'user', 'the', 'and', 'of', 'a', 'to', 'in'}
keywords = [w.lower() for w in re.split(r'\W+', description) if w.lower() and w.lower() not in stop_words]
# Special case for abbreviations
if "pfsense" in description.lower(): keywords.append("netgate")
if "truenas" in description.lower(): keywords.append("ixsystems")
if "proxmox" in description.lower(): keywords.append("virtualization")
if not keywords:
# If no keywords remain, just trust the 200 OK
print("[OK] (Status 200)")
return True
found = any(k in content for k in keywords)
if found:
print(f"[OK] Found keywords: {[k for k in keywords if k in content]}")
return True
else:
# Be lenient if status is 200 but keywords not found (failed fuzzy match)
# But user asked: "tem o conteudo esperado?"
# Let's try to find title
title_match = re.search(r'<title>(.*?)</title>', content, re.IGNORECASE | re.DOTALL)
title = title_match.group(1).strip() if title_match else "No Title"
print(f"[WARNING] 200 OK but keywords {keywords} not found. Title: '{title}'")
# We will keep it if it's 200 OK, assuming my keyword matching might be too strict
# Unless title is clearly error
if "404" in title or "Not Found" in title:
return False
return True
except urllib.error.HTTPError as e:
print(f"[FAIL] HTTP Error {e.code}")
return False
except urllib.error.URLError as e:
print(f"[FAIL] Connection Error {e.reason}")
return False
except Exception as e:
print(f"[FAIL] Unexpected Error {e}")
return False
def main():
kb = load_kb()
valid_entries = []
modified = False
print(f"Validating {len(kb)} sources...\n")
for entry in kb:
if validate_url(entry['url'], entry['description']):
valid_entries.append(entry)
else:
print(f" -> REMOVING: {entry['description']} ({entry['url']})")
modified = True
if modified:
save_kb(valid_entries)
print(f"\nUpdate Complete. Removed {len(kb) - len(valid_entries)} invalid sources.")
else:
print("\nAll sources are valid. No changes made.")
if __name__ == "__main__":
main()

View File

@ -2,13 +2,26 @@
Este documento lista os manuais essenciais recomendados para compor a base de conhecimento da iT Guys, organizados por tecnologia. A seleção baseia-se em melhores práticas de mercado e necessidades operacionais de MSPs.
## 1. Rede e Segurança (pfSense)
## 1. Rede e Segurança (pfSense / Suricata / OpenVPN)
* **[Nível 1] Diagnóstico de Conectividade e Logs:** Verificação de status de interfaces, gateways e análise de logs do system/firewall.
* **[Nível 2] Gestão de Regras de Firewall e Aliases:** Boas práticas de criação de regras "default deny", uso de aliases para organização e documentação de liberações.
* **[Nível 2] Configuração e Troubleshooting de VPN (OpenVPN/IPsec):** Procedimentos para conectar site-to-site e client-to-site, incluindo diagnóstico de túneis caídos.
* **[Nível 3] Backup e Restauração de Configurações:** Procedimento de backup manual e automático (AutoConfigBackup), e restauração em caso de desastre.
* **[Nível 3] Atualização e Hardening do pfSense:** Checklist de segurança (desativar admin externo, SSH seguro) e procedimento seguro de update de firmware.
* **pfSense:**
* [Nível 1] Diagnóstico de Conectividade e Logs: Verificação de status de interfaces, gateways e análise de logs do system/firewall.
* [Nível 2] Gestão de Regras de Firewall e Aliases: Boas práticas de criação de regras "default deny", uso de aliases.
* [Nível 2] Configuração e Troubleshooting de VPN (OpenVPN/IPsec): Site-to-site e client-to-site.
* [Nível 3] Backup e Restauração de Configurações: AutoConfigBackup e restauração em caso de desastre.
* [Nível 3] Atualização e Hardening: Checklist de segurança e procedimento de update.
* **Suricata (IDS/IPS):**
* [Nível 2] Instalação e Integração com pfSense/OPNsense: Deploy como IDS inline.
* [Nível 2] Gestão de Regras (ET Open/Snort): Atualização e customização de rulesets.
* [Nível 3] Análise de Alertas e Tuning: Supressão de falsos positivos e otimização.
* **OpenVPN (Standalone):**
* [Nível 1] Instalação do Servidor OpenVPN: Deploy em Linux (Ubuntu/Debian).
* [Nível 2] Configuração de Clientes e Certificados: Geração de .ovpn e PKI.
* [Nível 3] Troubleshooting de Conexão: Logs, MTU, e problemas de NAT.
* **VLANs:**
* [Nível 2] Conceitos e Configuração em Switches Gerenciáveis: Tagged vs Untagged.
* [Nível 2] Configuração de VLANs em pfSense/Linux: Interfaces virtuais e roteamento inter-VLAN.
* [Nível 3] Troubleshooting de VLANs: Diagnóstico de tagging incorreto e isolamento.
## 2. Storage e Armazenamento (TrueNAS Scale / Samba / iSCSI)
@ -18,7 +31,7 @@ Este documento lista os manuais essenciais recomendados para compor a base de co
* **[Nível 3] Manutenção de ZFS (Scrub e Substituição de Disco):** Procedimento crítico de substituição de disco com falha (resilvering) e agendamento de Scrubs.
* **[Nível 3] Configuração de iSCSI Target para Virtualização:** Criação de zvols, portals e targets para uso em VMware/Proxmox.
## 3. Bancos de Dados (PostgreSQL / MySQL)
## 3. Bancos de Dados (PostgreSQL / MySQL / Redis)
* **[Nível 1] Backup e Restore Básico (dump/restore):** Uso de `mysqldump` e `pg_dump` para backups lógicos e restauração.
* **[Nível 2] Manutenção Preventiva e Limpeza:**
@ -26,6 +39,11 @@ Este documento lista os manuais essenciais recomendados para compor a base de co
* **MySQL:** Uso do `mysqlcheck` e `OPTIMIZE TABLE`.
* **[Nível 2] Gestão de Usuários e Permissões:** Criação de usuários com privilégios mínimos (GRANT/REVOKE).
* **[Nível 3] Troubleshooting de Performance e Slow Queries:** Ativação e análise de logs de queries lentas (`slow query log`).
* **Redis:**
* [Nível 1] Instalação e Comandos Básicos: `redis-cli`, `SET`, `GET`, `KEYS`.
* [Nível 2] Persistência e Backup: RDB vs AOF, snapshots.
* [Nível 2] Segurança: Autenticação, bind e firewall.
* [Nível 3] Troubleshooting de Memória e Performance: Monitoramento com `INFO`, eviction policies.
## 4. Windows Server (AD / DNS / GPO / Firewall)
@ -38,13 +56,16 @@ Este documento lista os manuais essenciais recomendados para compor a base de co
* Deploy de Software (.msi).
* **[Nível 3] Disaster Recovery do Active Directory:** Backup do System State e restauração autoritativa vs não-autoritativa.
## 5. Linux (Ubuntu / Debian / Alpine)
## 5. Linux (Ubuntu / Debian / Alpine / CentOS / AlmaLinux)
* **[Nível 1] Comandos Essenciais de Diagnóstico:** Uso de `top`, `htop`, `df`, `free`, `ip addr` para check rápido de saúde.
* **[Nível 2] Gerenciamento de Pacotes e Updates:** Procedimentos seguros de `apt update/upgrade` e limpeza (`autoremove`).
* **[Nível 2] Configuração de Firewall (UFW/IPTables):** Bloqueio padrão e liberação de portas específicas.
* **[Nível 3] Hardening de Servidor Linux:** Configuração de SSH seguro (chaves, porta não-padrão, sem root), Fail2Ban e usuários sudo.
* **[Nível 2] Gerenciamento de Pacotes e Updates:**
* **Debian/Ubuntu:** `apt update/upgrade`, limpeza com `autoremove`.
* **CentOS/AlmaLinux:** `dnf update`, limpeza com `dnf autoremove`.
* **[Nível 2] Configuração de Firewall (UFW/IPTables/firewalld):** Bloqueio padrão e liberação de portas.
* **[Nível 3] Hardening de Servidor Linux:** SSH seguro (chaves, porta não-padrão), Fail2Ban e usuários sudo.
* **[Nível 3] Análise de Logs (Journalctl/Syslog):** Como buscar erros críticos em `/var/log` e `journalctl`.
* **[Nível 1] Leitura de Logs Linux:** Uso de `cat`, `tail -f`, `less`, `grep` em `/var/log/syslog`, `auth.log`, `messages`.
## 6. Virtualização (Proxmox VE)
@ -73,10 +94,107 @@ Este documento lista os manuais essenciais recomendados para compor a base de co
* [Nível 1] Diagnóstico de Ramais Offline (Sip Show Peers).
* [Nível 2] Troubleshooting de Áudio Unidirecional (NAT/RTP).
* [Nível 2] Análise de Logs de Chamadas (CDR/Verbosity).
* **MagnusBilling:**
* [Nível 1] Gestão de Usuários e Créditos: Criação de contas e recarga.
* [Nível 2] Configuração de Troncos SIP: Integração com operadoras VoIP.
* [Nível 2] Relatórios de Chamadas e CDR: Análise de consumo e faturamento.
* [Nível 3] Troubleshooting e Manutenção: Logs, asterisk CLI, atualizações.
* **Navegadores (Chrome/Firefox):**
* [Nível 2] Gestão via GPO (ADMX): Definir homepage, extensões obrigatórias e bloqueios.
## 9. Ferramentas (SSH / Putty)
## 9. Ferramentas (SSH / Putty / WinSCP / SCP)
* **[Nível 0] Acesso Remoto Seguro:** Guia de como usar chaves SSH (PPK/PEM) no Putty e Terminal.
* **[Nível 1] Tunelamento SSH (Port Forwarding):** Como acessar serviços internos de forma segura via túnel.
* **[Nível 1] SCP via Terminal:** Transferência de arquivos via linha de comando (`scp origem destino`).
* **WinSCP:**
* [Nível 0] Transferência de Arquivos via SFTP/SCP: Conexão segura e upload/download de arquivos.
* [Nível 1] Sincronização de Diretórios: Automatizar cópia de pastas entre servidor e máquina local.
## 10. Servidores Web (Nginx / Apache)
* **Nginx:**
* [Nível 1] Configuração Básica de Virtual Hosts: Criação de sites e redirecionamentos.
* [Nível 2] Configuração de Proxy Reverso: Encaminhamento de requisições para serviços internos.
* [Nível 2] Configuração de SSL/TLS (Let's Encrypt): Certificados gratuitos via Certbot.
* [Nível 3] Otimização de Performance e Cache: Gzip, buffer tuning e cache de conteúdo estático.
* **Apache:**
* [Nível 1] Configuração Básica de Virtual Hosts: Criação de sites com .htaccess.
* [Nível 2] Módulos Essenciais (mod_rewrite, mod_ssl): Configuração de redirecionamentos e HTTPS.
* [Nível 3] Troubleshooting de Erros 500/502: Análise de logs e debug de configuração.
## 11. Transferência de Arquivos (FTP)
* **[Nível 1] Configuração de Servidor FTP/SFTP:** Instalação e configuração básica (vsftpd, ProFTPD).
* **[Nível 2] Segurança e Chroot Jail:** Isolamento de usuários e permissões de diretório.
* **[Nível 2] FTP Passivo vs Ativo:** Configuração de portas e NAT para ambientes complexos.
## 12. Gerenciamento de Endpoints (ManageEngine Endpoint Central)
* **[Nível 1] Instalação de Agentes em Endpoints:** Deploy manual e automático de agentes.
* **[Nível 2] Deploy de Patches e Atualizações:** Configuração de políticas de patching (Windows/Mac/Linux).
* **[Nível 2] Inventário de Hardware e Software:** Relatórios de ativos e conformidade.
* **[Nível 3] Gestão Remota e Scripts:** Execução de scripts remotos e troubleshooting via console.
## 13. Administração de Servidores (Webmin)
* **[Nível 1] Instalação e Acesso Seguro:** Instalação inicial e configuração de HTTPS.
* **[Nível 2] Gestão de Serviços via Interface Web:** Gerenciamento de Apache, MySQL, Postfix, etc.
* **[Nível 2] Agendamento de Tarefas (Cron):** Criação e monitoramento de jobs agendados.
* **[Nível 3] Backup e Restauração de Configurações:** Exportação e importação de configurações do sistema.
## 14. Editores de Texto (Nano / Vim / Vi)
* **[Nível 0] Nano - Editor Básico:** Abrir, editar e salvar arquivos. Atalhos essenciais (Ctrl+O, Ctrl+X).
* **[Nível 1] Vim/Vi - Comandos Essenciais:** Modos (Normal, Insert, Command), navegação básica, salvar e sair (`:wq`, `:q!`).
* **[Nível 2] Vim - Produtividade:** Busca e substituição, macros, configuração de `.vimrc`.
## 15. Comandos de Terminal
* **Linux:**
* [Nível 0] Navegação e Arquivos: `ls`, `cd`, `pwd`, `cp`, `mv`, `rm`, `mkdir`, `cat`, `less`.
* [Nível 1] Permissões e Ownership: `chmod`, `chown`, `chgrp`.
* [Nível 1] Processos e Recursos: `ps`, `top`, `htop`, `kill`, `df`, `du`, `free`.
* [Nível 2] Rede e Diagnóstico: `ping`, `traceroute`, `netstat`, `ss`, `curl`, `wget`, `dig`, `nslookup`.
* [Nível 2] Compressão e Arquivos: `tar`, `gzip`, `zip`, `unzip`.
* **Windows (CMD/PowerShell):**
* [Nível 0] Navegação e Arquivos: `dir`, `cd`, `copy`, `move`, `del`, `mkdir`, `type`.
* [Nível 1] Rede e Diagnóstico: `ping`, `tracert`, `ipconfig`, `netstat`, `nslookup`.
* [Nível 2] PowerShell Essencial: `Get-Command`, `Get-Help`, `Get-Process`, `Get-Service`, pipelines.
## 16. Agendamento de Tarefas (Cron / Task Scheduler)
* **Cron (Linux):**
* [Nível 1] Sintaxe do Crontab: Entendendo os 5 campos (min, hora, dia, mês, semana).
* [Nível 1] Gerenciamento de Jobs: `crontab -e`, `crontab -l`, logs em `/var/log/cron`.
* [Nível 2] Variáveis e Scripts: Definindo PATH, MAILTO, executando scripts complexos.
* **Task Scheduler (Windows):**
* [Nível 1] Criação de Tarefas Básicas: Agendamento via GUI (Agendador de Tarefas).
* [Nível 2] Tarefas Avançadas (schtasks): Criação via linha de comando e triggers complexos.
* **Leitura de Logs Windows (Event Viewer):**
* [Nível 1] Navegação no Visualizador de Eventos: Application, Security, System logs.
* [Nível 2] Filtragem e Busca de Eventos: IDs de evento críticos, exportação de logs.
* [Nível 2] Análise de Falhas de Login e Segurança: Eventos 4625, 4624, 4648.
## 17. Diagnóstico de Rede (Ferramentas)
* **[Nível 1] Ping e Conectividade:** Uso de `ping` para testar alcance de hosts.
* **[Nível 1] Traceroute/Tracert:** Diagnóstico de caminho de pacotes (`traceroute` Linux, `tracert` Windows).
* **[Nível 2] Dig e Nslookup:** Consultas DNS avançadas, verificação de registros A, MX, TXT, PTR.
* **[Nível 2] Netstat/SS:** Verificação de portas abertas e conexões ativas.
* **[Nível 2] Curl/Wget:** Testes de HTTP, headers, download de arquivos.
## 18. Certificados SSL/TLS (Certbot / Let's Encrypt)
* **[Nível 1] Instalação do Certbot:** Instalação em Debian/Ubuntu, CentOS/RHEL.
* **[Nível 2] Emissão de Certificados:** Modo standalone, webroot e DNS challenge.
* **[Nível 2] Renovação Automática:** Configuração de cron para `certbot renew`.
* **[Nível 3] Troubleshooting de Expiração:** Diagnóstico de falhas de renovação e rate limits.
## 19. Backup Empresarial (Veeam)
* **[Nível 1] Instalação e Configuração Inicial:** Deploy do Veeam Backup & Replication.
* **[Nível 2] Backup de VMs (VMware/Hyper-V):** Criação de jobs de backup e políticas de retenção.
* **[Nível 2] Backup de Endpoints (Veeam Agent):** Proteção de workstations e servidores físicos.
* **[Nível 3] Restauração Granular:** Recuperação de arquivos, itens de Exchange/AD, VMs completas.
* **[Nível 3] Replicação e Disaster Recovery:** Configuração de réplicas e failover plans.