Files
SamWaf/README_pt.md
T
samwaf c8dc8853c4 fix(security): bcrypt password hashing + server-side forced password change
- Migrate MD5+global-salt hashing to bcrypt with transparent upgrade on login
- Enforce password change in Auth middleware (allow only changepwd/logout/ws)
- Generate random initial admin password on fresh install (data/initial_password.txt)
2026-07-03 14:47:59 +08:00

15 KiB

English | 简体中文 | Español | हिन्दी | العربية | Français | Português | Русский | বাংলা | اردو | 日本語 | Deutsch | Bahasa Indonesia | 한국어

SamWaf

Um firewall de aplicação web leve e de código aberto

Release Last commit Docker Pulls Release Downloads Gitee GitHub stars Gitee star Atomgit star License

Motivação do Desenvolvimento:

  • Leveza: No início, eu usava alguns produtos de segurança baseados em plugins para nginx, apache e iis como proteção, mas o formato de plugin tinha um alto grau de acoplamento.
  • Privatização: Mais tarde, passaram a ser adotados principalmente serviços de proteção em nuvem, mas a implantação privada é acessível apenas para médias e grandes empresas, enquanto pequenas empresas e estúdios a consideram cara.
  • Privacidade e Criptografia: Durante a proteção web, é preferível processar os dados localmente, sem enviá-los para a nuvem. O objetivo era criar uma ferramenta que criptografasse as informações locais e as comunicações de rede do painel de gerenciamento.
  • DIY: Ao longo dos anos de manutenção e desenvolvimento de sites, havia funções específicas que eu queria adicionar, mas não conseguia implementar.
  • Visibilidade: Se o administrador do site nunca usou um WAF semelhante, é inconveniente entender quem está acessando o site e quais requisições estão sendo feitas apenas a partir de logs ou do nginx, apache, IIS etc.

Em resumo, o objetivo era criar uma ferramenta eficaz de proteção para sites ou APIs, capaz de lidar com situações anormais e garantir o funcionamento normal de sites e aplicações.

Apresentação do Software

O SamWaf é um firewall de aplicação web leve e de código aberto para pequenas empresas, estúdios e sites pessoais. Ele suporta implantação totalmente privada, criptografa os dados armazenados localmente, é fácil de iniciar e suporta Linux, Windows 64 bits e ARM64, com imagens Docker disponíveis. Por padrão, utiliza um banco de dados SQLite embutido e criptografado, sem nenhuma dependência externa, podendo opcionalmente ser trocado por MySQL.

Arquitetura

Arquitetura do SamWaf

Interface

Visão Geral do Firewall de Aplicação Web SamWaf

Adicionar Host Log de Ataques
Adicionar Host Log de Ataques
CC Lista de Bloqueio de IP
CC Lista de Bloqueio de IP
Lista de Permissão de IP LDP
Lista de Permissão de IP LDP
Adicionar Script de Regra a partir do Log Selecionar Log
Adicionar Script de Regra a partir do Log Selecionar Log
Detalhes do Log Regra Manual
Detalhes do Log Regra Manual
Lista de Bloqueio de URL Lista de Permissão de URL
Lista de Bloqueio de URL Lista de Permissão de URL

Principais Funcionalidades

Básico

  • Código totalmente aberto (Apache 2.0)
  • Implantação totalmente privada; os dados são criptografados e armazenados somente localmente
  • Inicialização com um clique em arquivo único, leve e sem dependência de serviços de terceiros (MySQL/Redis são opcionais)
  • Motor totalmente independente; a proteção não depende de IIS nem de Nginx
  • Suporte a IPv6

Entrada de Tráfego

  • Suporte a HTTP/1.1, HTTP/2 e HTTP/3 (QUIC)
  • Encaminhamento de WebSocket
  • Proxy reverso com balanceamento de carga (round-robin ponderado, hash de IP, menor número de conexões); verificações de integridade removem automaticamente os backends com problemas
  • Regras de caminho: proxy reverso por caminho, arquivos estáticos ou redirecionamento 301/302, com protocolo de backend e tempo limite de resposta configuráveis
  • Hospedagem de sites estáticos
  • Encaminhamento de túnel TCP/UDP na camada 4 (com controle de acesso por IP e controle por janela de tempo)
  • Cache de páginas web
  • HTTP Basic Auth para acesso ao site
  • Página de bloqueio personalizável

Proteção contra Ataques

  • Detecção de injeção de SQL
  • Detecção de XSS (cross-site scripting)
  • Detecção de RCE (execução remota de comandos)
  • Detecção de ferramentas de varredura (scanners)
  • Detecção de path traversal
  • Detecção de upload de arquivos (extensões perigosas, assinaturas de webshell, Content-Type falsificado)
  • Proteção contra CC / limitação de taxa (rate limit)
  • Detecção de crawlers/bots falsos (verificação por DNS reverso dos bots de mecanismos de busca)
  • Proteção contra hotlink (anti-leech)
  • Proteção contra CSRF (validação de Origin/Referer por site)
  • Filtragem de palavras sensíveis
  • Suporte ao conjunto de regras OWASP CRS (motor Coraza; as regras podem ser habilitadas/desabilitadas/sobrescritas)
  • Regras de proteção personalizáveis, com edição por script e por interface gráfica
  • Verificação humana: CAPTCHA de clique e prova de trabalho (proof-of-work) com Cap.js
  • Modo somente registro: registra os ataques sem bloqueá-los, útil para observar e ajustar as regras

Controle de Acesso

  • Lista de permissão / lista de bloqueio de IP
  • Lista de permissão / lista de bloqueio de URL
  • Bloqueio geográfico (bancos de dados offline ip2region/GeoIP2 integrados, IPv4/IPv6)
  • Banimento de IP vinculado ao firewall do sistema operacional
  • Banimento automático quando o número de falhas de um IP atinge um limite
  • Configuração global com um clique e estratégias de proteção por site

Segurança de Dados

  • Armazenamento de logs criptografado
  • Logs de comunicação criptografados
  • Mascaramento de dados (DLP) com saída designada para dados privados
  • Antiadulteração de páginas web (aprendizado de linha de base + recuperação automática)
  • Reforço de segurança de cookies (HttpOnly/Secure/SameSite)

Certificados SSL

  • Solicitação e renovação automáticas de certificado SSL (ACME, múltiplas CAs com suporte a EAB)
  • Múltiplos certificados via SNI e HTTPS em múltiplas portas
  • Verificação em lote da expiração de certificados SSL
  • Carregamento automático de certificados

Operações e Gerenciamento

  • RBAC de contas, autenticação de dois fatores com OTP, logs de login/operações
  • Relatórios estatísticos e monitoramento de sistema/hosts
  • Política de retenção de dados com fragmentação (sharding) e arquivamento automáticos de logs
  • SQLite (criptografado) por padrão, MySQL opcional, com ferramenta integrada de migração SQLite→MySQL
  • Atualização online com um clique, reinício gradual sem tempo de inatividade e reversão de versão
  • Tarefas em lote, tarefas agendadas e backup de dados
  • API aberta

Notificações

  • Canais de entrega por e-mail, DingTalk, Feishu, WeCom (WeChat Work), ServerChan, Webhook, Kafka, RabbitMQ e arquivo de log

Instruções de Uso

Recomenda-se fortemente realizar testes completos em um ambiente de teste antes de implantar em produção. Se ocorrer algum problema, envie seu feedback prontamente.

Baixar a Versão Mais Recente

Gitee: https://gitee.com/samwaf/SamWaf/releases

GitHub: https://github.com/samwafgo/SamWaf/releases

AtomGit: https://atomgit.com/SamSafe/SamWaf/releases

Início Rápido

Windows

  • Iniciar diretamente
SamWaf64.exe
  • Executar como serviço (requer privilégios de Administrador)
//Install & Start
SamWaf64.exe install && SamWaf64.exe start

//Stop &  Uninstall 
SamWaf64.exe stop && SamWaf64.exe uninstall

Linux

  • instalar
curl -sSO https://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh install 
  • desinstalar
curl -sSO https://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh uninstall 

Docker

docker run -d --name=samwaf-instance \
           --restart always \
           -p 26666:26666 \
           -p 80:80 \
           -p 443:443 \
           -v /path/to/your/conf:/app/conf \
           -v /path/to/your/data:/app/data \
           -v /path/to/your/logs:/app/logs \
           -v /path/to/your/ssl:/app/ssl \
           samwaf/samwaf


Mais detalhes sobre o Docker: https://hub.docker.com/r/samwaf/samwaf

Tags:

  • latest: A versão estável mais recente (recomendada para uso em produção).
  • beta: A versão de teste mais recente (permite testar novas funcionalidades ou correções específicas de bugs).

Ferramentas de Linha de Comando

Command Descrição
install / uninstall Instala / desinstala o serviço do sistema
start / stop / restart Inicia / para / reinicia o serviço
rolling-restart Reinício gradual sem tempo de inatividade (troca o worker sem interromper o tráfego)
resetpwd Redefine a senha do administrador
resetotp Redefine o código de segurança (OTP)
repairdb Repara um banco de dados corrompido
execsql Executa instruções SQL em um banco de dados selecionado
migratedb Migração offline de banco de dados SQLite → MySQL (--dry-run para apenas estimar, --force para sobrescrever)
rollback Reverte para uma versão de backup anterior

Exemplo: SamWaf64.exe resetpwd (no Linux: ./SamWafLinux64 resetpwd)

Acesso Inicial

http://127.0.0.1:26666

Conta padrão: admin Senha inicial: instalações novas geram automaticamente uma senha aleatória salva em data/initial_password.txt (instalações existentes mantêm a senha anterior; altere-a no primeiro login)

Guia de Atualização

Observação: o processo de atualização encerrará o serviço; realize a atualização fora dos horários de pico.

Atualização Automática

Se uma nova versão estiver disponível, um aviso de atualização será exibido para confirmação, permitindo que você inicie a atualização. A página será recarregada automaticamente após a conclusão da atualização.

Atualização Manual

  • Para inicialização direta:

    1. Feche a aplicação.
    2. Baixe o programa mais recente, substitua os arquivos existentes e, em seguida, inicie-o manualmente de novo.
  • Para o modo de serviço:

1. First, pause the service.

  Windows: SamWaf64.exe stop
  Linux: ./SamWafLinux64 stop
  
2. Replace with the latest application files.

3. Start the service:
Windows: SamWaf64.exe start
Linux: ./SamWafLinux64 start

Observação: a atualização do serviço no Windows pode acionar regras de segurança do 360 ou do Huorong, impedindo que os novos arquivos sejam substituídos normalmente. Nesse caso, você pode substituir os arquivos manualmente. Quem tem familiaridade com essa área pode ajudar a determinar o método correto de tratamento.

Documentação Online

Documentação Online

Informações sobre o Código

Repositório de Código

Introdução e Compilação

Como compilar Instruções de Compilação

Manual Online de Compilação: https://doc.samwaf.com/en/dev/

Plataformas Testadas e Suportadas

Plataformas Testadas e Suportadas

Outras Informações

Resultados de Testes

Resultados de Testes

Política de Segurança

Política de Segurança

Feedback

O SamWaf está em iteração contínua. Feedback e sugestões são bem-vindos.

Conta Oficial do WeChat

SamWaf

Histórico de Stars

Gráfico de Histórico de Stars

Licença

O SamWaf é licenciado sob a Apache License 2.0. Consulte LICENSE para mais detalhes.

Para o aviso de uso de software de terceiros, consulte ThirdLicense

Contribuição

Agradecimentos aos seguintes contribuidores!