Jump to content

[pedido] Plugin desbloqueio de IP CSF para WHMCS


Recommended Posts

Boa tarde pessoal , tudo jóia? 

Atualmente estou utilizando o plugin da ServerPing UnBlockIp na versão 2.04, porém quando o cliente realiza o desbloqueio não é retornado o motivo que acarretou o bloqueio do IP no firewall, ficando uma mensagem "Desconhecido" como motivo. 

Alguém conhece algum outro plugin para essa função de desbloqueio ou alguma correção para o problema acima? 

 

Obrigado!!! 

 

 

Link to comment
Share on other sites

Eu enfrentava muito esse problema principalmente devido a clientes que usavam uma versão do Outlook antiga e quando a senha era inválida este Outlook ficava tentando se conectar várias vezes -- o mesmo comportamento de alguém tentando fazer força bruta.

O meu CSF deixo configurado para bloquear o IP se o usuário usar dados inválidos ao se conectar usando o protocolo IMAP mais de 20 vezes.

Teve um dia que não aguentei mais e acabei dando um "jeitinho" porque não aguentava mais desbloquear IP de cliente. Tomava muito o meu tempo.

O comando para desbloquear um IP no CSF é o "csf -g IP", então procurei uma ferramenta que pudesse transformar o shell em uma API para poder fazer a integração com outros sistemas, como o WHMCS:

msoap/shell2http: Executing shell commands via HTTP server (github.com)

Achei essa ferramenta que funcionou muito bem.

Através dela eu poderia criar um endereço do tipo:

https://example.com/desbloquear_ip?ip=1.1.1.1

E quando a minha aplicação acessasse essa URL, um servidor web iria receber a solicitação e executar o comando no shell. Simples.

Implementei essa solução utilizando um bot do Telegram:

Screenshot_923.png.9f32763cb2e61786033ae08e6b22fe51.png

No entanto, se for utilizar esse método, algumas considerações de segurança:

1. Configure BASIC AUTH e crie uma URL randômica

Exemplo, em vez de criar uma URL assim:

https://example.com/desbloquear_ip?ip=1.1.1.1

Crie algo como:

https://example.com/desbloquear_ipGLFFKCLKDCLDKFCDLDK?ip=1.1.1.1

Vai da sua criatividade. O uso de uma hash, api key ou o que quer que seja, vai impedir que seja indexado pelo Google por exemplo.

Configure o basic auth também. Isso é básico sobre segurança.

2. SEMPRE valide a informação recebida pelo usuário

Se não for um endereço de IP legítimo o meu BOT já barra a solicitação. Nem envia a requisição pro servidor. Mais do que necessário.

3. Dica extra: Crie um shell script

Do lado do servidor, crie um script do tipo "unblock_ip.sh" e nele, verifique se o argumento passado é um endereço de IP legítimo e só depois desbloqueie o IP.

Acho importante essa verificação nas duas pontas. Tanto do lado do BOT do Telegram quanto do servidor.

O próprio shell2http vai te ajudar na segurança. Até onde eu sei, não é possível fazer um "&&" ou ";" e concatenar comandos. No entanto, usando o bom senso eu não vejo nenhuma possível vulnerabilidade neste método.

4. Recaptcha (Eu não implementei) - Avançado

Indo um pouco além, você pode criar uma página web para só para verificar o endereço IP do usuário. Não faz sentido alguém poder desbloquear um IP de terceiro, ok? Pode implementar o reCaptcha do Google também para evitar que bots acessem a página OU utiliza o Cloudflare e cria um page rule com a regra "I'm under attack" para a página em questão. O Cloudflare é bem efetivo também.

Não vi ainda a necessidade, mas se a sua hospedagem for bem 'famosinha', pois a maioria dos ataques que eu recebo, até onde eu sei não são direcionados, são apenas bots estúpidos tentando acessar o usuário "anonymous" ou "admin", você pode dá uma olhada no passo 4 com mais calma.

 

Bem te passei a ideia do que você pode fazer. Parece complicado mas é bem simples. Tem muita coisa pronta. O trabalho que você vai ter mesmo é só integrar tudo. Se quiser me contratar $$$ fico à disposição, ou você mesmo pode fazer. É bem fácil.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...

Important Information

Do you agree with our terms?