Files
claude-plugins/infraestrutura/skills/cwp-security/SKILL.md
Emanuel Almeida 6b3a6f2698 feat: refactor 30+ skills to Anthropic progressive disclosure pattern
- All SKILL.md files now <500 lines (avg reduction 69%)
- Detailed content extracted to references/ subdirectories
- Frontmatter standardised: only name + description (Anthropic standard)
- New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator
- Design skills: anti-slop guidelines, premium-proposals reference
- Removed non-standard frontmatter fields (triggers, version, author, category)

Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao,
core-tools, negocio, perfex-dev, wordpress, design-media

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:05:03 +00:00

318 lines
6.9 KiB
Markdown

---
name: cwp-security
description: Gestão de segurança CWP com firewall CSF/LFD — bloqueio/desbloqueio de IPs, configuração de firewall e hardening baseado na documentação oficial.
disable-model-invocation: true
---
# /cwp-security - Segurança CWP (Documentação Oficial)
Gestão de segurança no CWP usando CSF/LFD. **Zero assumptions, zero hallucinations** - apenas comandos documentados.
**REGRA #38 - ZERO INVENCAO:** NUNCA improvisar comandos. Verificar estado actual ANTES de alterar. Pesquisar wiki CWP se necessario. Usar APENAS scripts oficiais.
---
## Servidor Alvo
| Servidor | IP | MCP | User |
|----------|-----|-----|------|
| **CWP Principal** | 176.9.3.158 | ssh-unified | root |
---
## Documentação Base
- [CSF Firewall command line](https://wiki.centos-webpanel.com/csf-firewall-command-line)
- [CSF/LFD Firewall configuration](https://wiki.centos-webpanel.com/csflfd-firewall-configuration)
- [CWP Security Instructions](https://wiki.centos-webpanel.com/cwp-security-instructions)
### Documentação Hub (Consultar SEMPRE)
**Manuais locais** (`Hub/06-Operacoes/Documentacao/Manuais/CWP/`):
- `CWP-Manual-Completo.md` - Admin Guide (seccao Security: CSF, Mod Security, Maldet, RKHunter, Lynis, Symlink, Shell Access) + Wiki (Firewall, SSL & Security) - **503KB**
**Quick Reference:** `Hub/06-Operacoes/Documentacao/Quick-Reference/QR-CWP.md`
**NotebookLM (pesquisa AI sobre toda a documentacao CWP):**
```
mcp__notebooklm__notebook_query notebook_id:"0ded7bd6-69b3-4c76-b327-452396bf7ea7" query:"csf firewall seguranca malware bloqueio ip"
```
---
## Paths de Configuração
| Path | Descrição |
|------|-----------|
| `/etc/csf/csf.conf` | Configuração principal CSF |
| `/etc/csf/` | Directório de configuração |
| `/etc/csf/csf.pignore` | Whitelist de processos |
| `/var/log/lfd.log` | Log do LFD |
---
## Comandos CSF Documentados
### Ajuda e Documentação
```bash
csf --help
man csf
```
### Controlo do Firewall
| Comando | Descrição |
|---------|-----------|
| `csf -e` | **Activar** CSF Firewall |
| `csf -x` | **Desactivar** CSF Firewall |
| `csf -r` | **Restart** (apenas regras iptables) |
| `csf -ra` | **Restart completo** (iptables + LFD) |
| `service lfd restart` | Restart apenas LFD |
### Gestão de IPs
| Comando | Descrição |
|---------|-----------|
| `csf -g IP` | **Verificar** se IP está bloqueado e porquê |
| `csf -d IP` | **Bloquear** IP permanentemente |
| `csf -td IP 86400` | **Bloquear temporário** (86400 = 24 horas em segundos) |
| `csf -dr IP` | **Desbloquear** IP |
| `csf -a IP` | **Whitelist** IP (acesso a todas as portas) |
| `csf -a 192.168.0.0/24` | **Whitelist** range de IPs |
| `csf -ta IP 86400` | **Whitelist temporário** (24 horas) |
| `csf -tf` | **Limpar** todos os bloqueios temporários |
| `csf -df` | **Limpar** todos os bloqueios permanentes |
### Verificar Logs
```bash
# Ver actividade de IP específico
grep "IP" /var/log/lfd.log
```
---
## Workflows
### 1. Verificar se IP está Bloqueado
```bash
csf -g 123.45.67.89
```
### 2. Bloquear IP Malicioso
```bash
# Bloquear permanentemente
csf -d 123.45.67.89
# Ou bloquear por 24 horas
csf -td 123.45.67.89 86400
```
### 3. Desbloquear IP (Cliente Legítimo)
```bash
csf -dr 123.45.67.89
```
### 4. Whitelist IP de Confiança
```bash
# Whitelist permanente
csf -a 188.251.199.30
# Whitelist range
csf -a 192.168.1.0/24
```
### 5. Limpar Todos os Bloqueios Temporários
```bash
csf -tf
```
### 6. Restart Completo do Firewall
```bash
csf -ra
```
---
## Configuração de Portas
**Ficheiro:** `/etc/csf/csf.conf`
```bash
# Portas abertas são definidas em:
# TCP_IN, TCP_OUT, UDP_IN, UDP_OUT
# Exemplo: abrir range de portas 30000-50000
# TCP_IN = "...,30000:50000"
```
**Importante:** Após alterações, executar `csf -r` para aplicar.
---
## Whitelist de Processos
**Ficheiro:** `/etc/csf/csf.pignore`
Adicionar processos que não devem ser monitorizados pelo LFD.
---
## Ignorar País (Evitar Bloqueios)
**Ficheiro:** `/etc/csf/csf.conf`
```bash
# Adicionar código do país para ignorar
CC_IGNORE = "PT"
```
---
## Scripts CWP de Segurança
| Script | Descrição |
|--------|-----------|
| `/scripts/cwp_bruteforce_protection` | Activa protecção brute-force CSF/LFD |
| `/scripts/security_is_my_server_hacked` | **Verifica** se servidor tem sinais de hack |
| `/scripts/cwpsecure_update_rules` | Actualiza regras do kernel seguro |
```bash
# Verificar se servidor foi comprometido
sh /scripts/security_is_my_server_hacked
# Activar protecção brute-force
sh /scripts/cwp_bruteforce_protection
```
---
## Configurações de Segurança (Documentadas)
### SSH Port
**Ficheiro:** `/etc/ssh/sshd_config`
```bash
# Após alterar porta SSH:
# 1. Actualizar csf.conf (TCP_IN)
# 2. service sshd restart
```
### tmpfs Security
**Ficheiro:** `/etc/fstab`
```bash
# Original:
tmpfs /dev/shm tmpfs defaults 0 0
# Seguro (documentado):
tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
```
### Kernel Panic Reboot
**Ficheiro:** `/etc/sysctl.conf`
```bash
# Adicionar:
vm.panic_on_oom=1
kernel.panic=10
# Aplicar:
sysctl -p
```
### MySQL Connection Limits
**Ficheiro:** `/etc/my.cnf` ou `/etc/my.cnf.d/server.cnf`
```bash
# Secção [mysqld]:
max_user_connections=45
# Restart:
service mysql restart
```
---
## Anti-Patterns (NUNCA FAZER)
| Anti-Pattern | Risco | Alternativa |
|--------------|-------|-------------|
| Bloquear IP sem verificar | Bloquear cliente | `csf -g IP` primeiro |
| Desactivar firewall | Servidor exposto | Manter sempre activo |
| Editar iptables directamente | Conflito com CSF | Usar comandos CSF |
| Ignorar logs LFD | Não detectar ataques | Monitorizar regularmente |
---
## Validação Pós-Operação
```bash
# 1. Verificar firewall activo
csf -l | head -20
# 2. Verificar IP específico
csf -g IP
# 3. Verificar LFD activo
service lfd status
# 4. Testar conectividade
curl -sI http://localhost | head -5
```
---
## Thresholds de Alerta
| Condição | Acção |
|----------|-------|
| Muitos IPs bloqueados por LFD | Verificar se ataque ou falsos positivos |
| IP legítimo bloqueado | Desbloquear + whitelist |
| Firewall desactivado | Activar imediatamente |
---
## Checklist de Execução
- [ ] Verificar estado actual (`csf -l`)
- [ ] Identificar IP correcto
- [ ] Executar comando apropriado
- [ ] Verificar resultado (`csf -g IP`)
- [ ] Documentar acção tomada
---
## Contexto NotebookLM
ANTES de executar, consultar notebooks para contexto especializado:
| Notebook | ID | Consultar quando |
|----------|-----|-----------------|
| Cibersegurança WordPress | 5f60adfd-2435-4725-8c12-9c11c5f51d75 | Sempre |
```
mcp__notebooklm__notebook_query({
notebook_id: "5f60adfd-2435-4725-8c12-9c11c5f51d75",
query: "<adaptar ao contexto de segurança CWP e firewall>"
})
```
Integrar insights do NotebookLM nas recomendações e decisões.
---
**Versão:** 1.0.0 | **Autor:** Descomplicar®
**Fonte:** wiki.centos-webpanel.com/csf-firewall-command-line