Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 17464|Resposta: 2

[Web] ngx_lua_waf é um firewall para aplicações web baseado no módulo lua-nginx (openresty).

[Copiar link]
Publicado em 21/12/2016 16:51:51 | | | |

ngx_lua_waf

ngx_lua_waf é um firewall de aplicações web baseado em ngx_lua desenvolvido quando entrei na Fun Travel.

O código é simples, e a intenção original do desenvolvimento é usar simplicidade, alto desempenho e leveza.

Agora é de código aberto e está em conformidade com a licença do MIT. Ele contém nossas regras de filtragem. Se você tiver alguma sugestão ou quiser fazer fa, fique à vontade para melhorar comigo.

Utilizações:
            
      
Prevenir ataques web como injeção SQL, inclusão local, transbordamento parcial, testes de fuzzing, xss, SSRF, etc
        Prevenir vazamento de arquivos, como SVN/backup
        Prevenir ataques de ferramentas de testes de estresse como o ApacheBench
        Bloqueie ferramentas comuns de varredura e scanners
        Bloquear solicitações de rede incomuns
        Bloqueie a permissão de execução PHP do diretório anexo de imagens
        Prevenir uploads de webshell


Instalação Recomendada:

Recomenda-se usar o lujit2.1 para suporte a lua

ngx_lua se for uma versão 0.9.2 ou posterior, recomenda-se mudar a função de filtro regular para ngx.re.find, e a eficiência de correspondência será aumentada cerca de três vezes.


Instruções de uso:

O caminho de instalação nginx é assumido como: /usr/local/nginx/conf/

Baixe o ngx_lua_waf no diretório de conf, descompacte e dê o nome WAF

Adicione na seção http do nginx.conf

            

Configure o diretório de regras WAF no config.lua (geralmente no diretório waf/conf/)

        RulePath = "/usr/local/nginx/conf/waf/wafconf/"

Se o caminho absoluto mudar, ele precisa ser modificado de acordo

Depois reinicie o nginx


Detalhes do Perfil:

           
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
        --diretório de armazenamento de regras
        Registro de ataques = "desligado"
        --Para ativar o registro de informações de ataque, você precisa configurar o logdir
        logdir = "/usr/local/nginx/logs/hack/"
        --diretório de armazenamento de logs, que precisa ser criado pelo próprio usuário, e requer a permissão de gravação do usuário nginx
        UrlDeny="on"
        --se deve bloquear o acesso à URL
        Redireciona="on"
        --se redirecionar após a interceptação
        CookieMatch = "ligado"
        --Se bloquear ataques de cookies
        pósPartida = "on"
        --se deve bloquear um ataque pós-ataque
        whiteModule = "ligado"
        --ativar ou não a lista de URL
        black_fileExt={"php","jsp"}
        --Preencha o tipo de sufixo do arquivo que não pode ser enviado
        ipWhitelist={"127.0.0.1"}
        --lista branca de IP, múltiplos IPs são separados por vírgulas
        ipBlocklist={"1.0.0.1"}
        --lista negra de IP, múltiplos IPs são separados por vírgulas
        CCDeny="on"
        --Se deve permitir a interceptação de ataques cc (requer que o segmento HTTP do nginx.conf seja aumentado lua_shared_dict limite de 10m; )
        CCrate = "100/60"
        --Ajuste a frequência de ataque do CC em segundos.
        --Por padrão, o mesmo endereço IP só pode solicitar o mesmo endereço 100 vezes por minuto
        html=[[Por favor, vá embora~~]]
        --Conteúdo de aviso, personalizável entre parênteses
        Nota: Não use aspas duplas para ser sensível a maiúsculas minúsculas

        
Verifique se as regras estão em vigor

Após a implantação, você pode tentar o seguinte comando:        
  
      

Nota: Por padrão, a máquina não filtra na lista branca, e você pode ajustar a configuração do config.lua sozinho


As renderizações são as seguintes


Atualizações das Regras:

Considerando o problema de cache dos regulares, regras dinâmicas afetam o desempenho, então não uso coisas como dicionários de memória compartilhada e redis para gerenciamento dinâmico.

Atualizações de regras podem ser colocadas em outros servidores, e as regras podem ser atualizadas baixando-as regularmente pela tarefa crontab, e o recarregamento nginx entrará em vigor. Para garantir o alto desempenho do NGX LUA WAF.

Grave apenas o registro do filtro, não ative o filtro, apenas adicione um comentário antes de check no código, se precisar filtrar, vice-versa

Algumas observações:

        As regras de filtragem podem ser ajustadas de acordo com suas necessidades no wafconf, e cada regra precisa ser encapsulada ou dividida com |
        
                Regras ARG Get Parameter to Filter
                URLs são regras que solicitam apenas URLs filtradas no GET               
                Post é uma regra de filtragem apenas em solicitações de Post               
                A whitelist é uma whitelist, e as URLs nela coincidem para que não seja filtrada               
                user-agent é uma regra de filtragem para user-agent
        

        O filtro de Get e de posts está ativado por padrão, se precisar ativar o filtro de cookies, edite a parte waf.lua cancelar - comentário
        
        O formato do nome do arquivo de log é o seguinte: Nome do Host Web _sec.log






Anterior:O PowerShell falha em carregar arquivos ao fazer scripts diretamente porque o script é proibido
Próximo:cmd /c e cmd /k são explicados em detalhes
Publicado em 08/11/2017 15:23:22 |
Sim, aprendi
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com