faef9b47dc
Dify foi removido 06-03-2026. Skills brainstorm/discover ainda referenciam-no no corpo. Bump v1.2 + nota top-of-file. Reescrita workflow para próxima sessão. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
330 lines
7.1 KiB
Markdown
330 lines
7.1 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
|
|
|
|
---
|
|
|
|
## 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.*
|