Bloqueando o cliente que tenta usar ultrasurf por x minutos



  • Bom dia pessoal,

    Ontem recebi dica de implementação do fail2ban para bloquear o ultrasurf baseado nas listas de ip que já usamos para o bloqueio tradicional.

    O procedimento basicamente bloqueia o ip do cliente por x minutos caso ele tente acessar a rede de ips principal do ultrasurf.

    Como este procedimento pode ser feito sem a necessidade do fail2ban no pfsense, resolvi descrever o procedimento para colocar na lista de tutoriais disponível.

    • 1o passo, Siga a risca este tutorial para bloquear as redes mais conhecidas do ultrasurf

    • 2o passo, Instale o pacote cron em system -> packages

    • 3o passo, Acesse system-> cron e alltere o agendamento do /usr/local/sbin/expiretable -v -t 120 virusprot
      mude todos os campos de tempo (minute, hour, mday, etc) para * de forma que o script rode a cada minuto.
      em seguida altere o parametro "-t  3600" para a quantidade de tempo em segundos que você quer o usuario malandrão bloqueado. Para bloquear por 5 minutos , use -t 300  ;)

    • 4o passo, Na regra criada na interface lan, cadastre os parametros de limite de conexões da regra, estabelecendo um limite baixo de conexões para que o ip do cliente seja cadastrado na lista de bloqueio.
      Abaixo dica de configuração:
      Maximum number of established connections per host:1
      Maximum state entries per host: vazio
      Maximum new connections / per second: 1/60(s)

      Para que o limite seja alcançado, altere a regra de deny para allow.

    Salvando todas as configurações, você já poderá acompanhar os ips bloqueados em diagnostic -> tables -> virusprot



  • Curti muito! Excelente! Valeu, Marcello!



  • @marcelloc:

    Para que o limite seja alcançado, altere a regra de deny para allow.

    Marcello, esta alteração de deny para allow, você está se referindo a marcar a opção "This allows packets with IP options to pass. Otherwise they are blocked by default. This is usually only seen with multicast traffic" em Advanced options? Acredito que seja isto, não é?



  • É no allow da regra mesmo. No lugar de reject, o permit.

    Você pode adicionalmente criar um limite de banda de 1k.



  • @marcelloc:

    Abaixo dica de configuração:

    Maximum number of established connections per host:1
    Maximum state entries per host:1
    Maximum new connections / per second: 1/60(s)

    Para que o limite seja alcançado, altere a regra de deny para allow.

    Sendo assim, o cliente (estação) irá exceder as permissões - conforme tabela acima - e portanto será bloqueado pelo tempo estabelecido no passo 3. Está correto este meu entendimento agora?



  • @johnnybe:

    Sendo assim, o cliente (estação) irá exceder as permissões - conforme tabela acima - e portanto será bloqueado pelo tempo estabelecido no passo 3. Está correto este meu entendimento agora?

    Isso. :)



  • @marcelloc:

    @johnnybe:

    Sendo assim, o cliente (estação) irá exceder as permissões - conforme tabela acima - e portanto será bloqueado pelo tempo estabelecido no passo 3. Está correto este meu entendimento agora?

    Isso. :)

    Ilustrativo. Obrigado de montão, Marcello!  :)  :D  ;D



  • Desculpe pela ignorancia mas nao entendi direto essa parte

    **_4o passo, Na regra criada na interface lan, cadastre os parametros de limite de conexões da regra, estabelecendo um limite baixo de conexões para que o ip do cliente seja cadastrado na lista de bloqueio.
    Abaixo dica de configuração:
    Maximum number of established connections per host:1
    Maximum state entries per host:1
    Maximum new connections / per second: 1/60(s)

    Para que o limite seja alcançado, altere a regra de deny para allow._**

    pelo que entendi eu preciso criar um limite, mas nao sei onde criar, podem me ajudar.



  • @amendoinn:

    pelo que entendi eu preciso criar um limite, mas nao sei onde criar, podem me ajudar.

    Fica na própria regra, no campo advanced options.



  • Mas para isso devo criar um limiter (em Firewall: Traffic Shaper: Limiter), correto?



  • Se quiser além de limitar a banda além de limitar as  conexões, fique a vontade.

    o tutorial deste tópico limita o acesso por quantidade de conexões.



  • Alguém poderia me dar uma luz pq não to conseguindo encontrar o erro na adição das regras: (ultrasurf continua passando direto)

    Uso proxy transparente.






  • Com proxy transparente,  você precisa incluir o alias na lista "bypass proxy for these destinations".



  • Valeu Marcelo, obrigado pela dica.
    Ainda não testei no pfsense pq já instalei no meu cliente e não sei porque raios, perdi acesso à ele desde ontem.
    Assim que conseguir ir até o local já  vou corrigir oque ficou faltando e dar um retorno aqui.
    Seria até interessante adicionar essa informação no primeiro post  ;)



  • marcelloc, boa tarde!

    Fiz essa implementação no meu pfsense 2.1, porém ao realizar o teste, o cliente não é bloqueado, apesar de ser identificado pelo log do firewall como pass para um dos ips do ultrasurf.

    Estou com proxy transparent, e já coloquei a opção citada acima.

    Não sei mais por onde procurar.

    Se puder ajudar, agradeço.

    Forte abraço.

    Riroxi








  • @Riroxi:

    Não sei mais por onde procurar.

    No tcpdump.

    Se o proxy não intercepta o ip e o firewall tem o alias configurado com a regra certa e o limite de conexões, é pra funcionar.



  • @marcelloc:

    Se o proxy não intercepta o ip e o firewall tem o alias configurado com a regra certa e o limite de conexões, é pra funcionar.

    Vou verificar o tcpdump.

    A regra do firewall funciona, pois o limitador é aplicado.



  • Em diagnostic tables é possível ver os ips bloqueados.



  • @marcelloc:

    Em diagnostic tables é possível ver os ips bloqueados.

    Então, não aparece nenhum. E a navegação está fluindo pelo ultrasurf sem problemas.

    :(



  • @Riroxi:

    Então, não aparece nenhum. E a navegação está fluindo pelo ultrasurf sem problemas.

    Tenta refazer o procedimento então. Preste atenção principalmente na regra da lan que tem acão "allow" no lugar de "deny"



  • Marcelloc, reparei que mesmo quando o pfsense loga um ou outro pacote pela regra, outros ainda passam, evitando assim o trigger, acredito eu.

    Fiz um teste mandando logar tudo do IP teste, e vários hosts do ultrasurf que não estão na lista original apareceram. Bloquei na mão aqui mais de 50 que não estavam, mas mesmo assim o trigger não ativa.

    Notei que algumas vezes o log não capta o pacote do alias, creio que justamente pelo programa ter encontrado um host diferente do que está cadastrado.

    Mas mesmo quando encontra, não ativa o trigger, pelo menos não envia a tabela.

    Grato!



  • @Riroxi:

    Marcelloc, reparei que mesmo quando o pfsense loga um ou outro pacote pela regra, outros ainda passam, evitando assim o trigger, acredito eu.

    Sua regra(ou a posição dela) está errada. O fato de logar já indica que passou trafego suficiente para atingir o limite de conexões definido para bloquear.

    EDIT: acabei de testar no pfsense 2.1 e o comportamento parece ser um pouco diferente.

    altere o paramentro Maximum state entries per host para vazio no lugar de 1

    Aqui a tabela virusprot foi preenchida normalmente após a alteração.



  • @marcelloc:

    EDIT: acabei de testar no pfsense 2.1 e o comportamento parece ser um pouco diferente.

    altere o paramentro Maximum state entries per host para vazio no lugar de 1

    Aqui a tabela virusprot foi preenchida normalmente após a alteração.

    Perfeito. Funcionou.

    Reparei uma coisa que já tinha citado. Mesmo com a regra funcionando, a gama de hosts do ultrasurf é tão grande que no último teste que fiz um client não usou a lista conhecida para acessar, logo não apareceu no virusprot.

    Você tem alguma lista mais recente? Procurei algumas horas na net, mas não achei nada que fosse útil.

    Outro detalhe, como tirar um client da lista, visto que o "x" que tem ali por algum motivo não é clicável lol

    Abraços e obrigado.



  • @Riroxi:

    Outro detalhe, como tirar um client da lista, visto que o "x" que tem ali por algum motivo não é clicável lol

    A alteração do schedule limpa a lista a cada x minutos conforme você configurou.

    Você pode usar o X ou limpar a lista completa.



  • Bom dia!

    Prezado Riroxi,

    Pelo que pude verificar, logo a sua primeira regra do Firewall, está liberando todo trafego na porta 443.
    Justamente esta porta é utilizada para a conexão ultrasurf.
    Tente ajustar essa regra do Firewall e faça os testes.

    Abraço!