---
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

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
