--- name: cwp-security description: CWP security management with CSF firewall. Block/unblock IPs, configure firewall, security hardening. Based on official CWP documentation only. Use when user mentions "csf", "firewall cwp", "bloquear ip", "segurança cwp", "ban ip". author: Descomplicar® Crescimento Digital version: 1.0.0 quality_score: 70 user_invocable: true desk_task: null --- # /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) --- ## 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 --- **Versão:** 1.0.0 | **Autor:** Descomplicar® **Fonte:** wiki.centos-webpanel.com/csf-firewall-command-line