+ Responder ao Tópico



  1. #1

    Question Retorno de msg de bloqueio ao cliente... como?

    Olá prezados linuxers:

    Estou usando um micro para fazer o roteamento da internet em uma empresa.
    Estou fazendo o mascaramento com o iptables e estou com uma dúvida.
    Levando em consideração que eu não uso e não vou usar o squid (isso é fato consumado), alguém conhece uma maneira de configurar através do iptables (e somente com iptables) uma mensagem do tipo "este site foi bloqueado pelo administrador" por exemplo?

    Pelo que já li, o REJECT manda um pacote de retorno. Será que é por aí o caminho?

    OBS: quando eu coloquei o REJECT no lugar do DROP, no navegador do cliente não houve diferença nenhuma...

  2. #2

    Padrão

    Amigo acho que apenas com iptables isso não sera possivel, acredito que nesta sua solução tera de usar o iptables e o apache, e no apache colocar uma página de bloqueio e redireciona seus clientes pra ela.

  3. #3

    Padrão

    olha cara a resposta do cleciorodrigo foi mto boa mas vc tb pode usar outros proxies num precisa exatamente ser squid... ou a intensão é não usar proxy?

  4. #4

    Padrão

    Ok! Em não encontrando uma outra solução, vou estudar outras possibilidades. Por hora obrigado...

  5. #5

    Padrão

    se vc nao rodar o servidor web apache em sua rede, poderia roda-lo na porta 8080 e fazer um redirecionamento da 80 pra 8080 para nao haver algum tipo de problema, e especificamente liberar para o ip do cliente para apenas isto, e no apache vc faria em seu index da vida uma pagina avisando o bloqueio.

    iptables -t nat -A PREROUTING -s ipdocara -p tcp --dport 80 -j DNAT --to-destination ip:8080

    iptables -A INPUT -s ipdocara -j DROP

    tem tempo que fiz isso, acho que foram essas regras que usei no script, teste ae e dê retorno
    =]

  6. #6

    Padrão Valeu...

    Vou experimentar implementar o apache conforme vc me falou...
    Mas devo dizer que vou demorar, pois meu tempo está curtíssimo para cuidar deste caso em específico.
    Maaaaaas... Assim que eu instalar o apache, implantar a regra e realizar os testes eu te retorno para dizer se deu certo ou não... Por hora muito obrigado.

  7. #7

    Padrão Fiz a página... e agora?

    Fiz a página, ergui o apache e está tudo beleza... só falta a regra do iptables...
    porque esta regra não está funcionando?

    iptables -t nat -A PREROUTING -p tcp -d www.orkut.com --dport 80 -j DNAT --to [IP DA PÁGINA DE BLOQUEIO:8080 => PORTA DA PÁGINA]

  8. #8

    Padrão

    recomendo a regra:

    iptables -A FORWARD -d www.proibido.com -o ethX -j REJECT --reject-with icmp-host-prohibited

  9. #9

    Unhappy Vamos nós com quase um novo tópico...

    Seguinte...

    as regras abaixo estão funcionando perfeitamemente:
    $IPT -t nat -A PREROUTING -d 'www.orkut.com' -j DNAT --to [ip do apache]
    $IPT -A FORWARD -m string --string 'orkut' --algo bm -j DROP

    eu gostaria que a segunda funcionasse como a primeira, no sentido de apontar para o ip do apache, mas qdo uso -m string, não está funcionando o redirecionamento. Já tentei -t nat PREROUTING -m ... e não vai, com FORWARD, não vai... não sei mais o que fazer!!!

  10. #10

    Padrão

    Citação Postado originalmente por denysiacanga Ver Post
    Seguinte...

    as regras abaixo estão funcionando perfeitamemente:
    $IPT -t nat -A PREROUTING -d 'www.orkut.com' -j DNAT --to [ip do apache]
    $IPT -A FORWARD -m string --string 'orkut' --algo bm -j DROP

    eu gostaria que a segunda funcionasse como a primeira, no sentido de apontar para o ip do apache, mas qdo uso -m string, não está funcionando o redirecionamento. Já tentei -t nat PREROUTING -m ... e não vai, com FORWARD, não vai... não sei mais o que fazer!!!
    Cara... testei aqui
    iptables -t nat -I PREROUTING -m string --string orkut -j DROP

    e funcionou... Porém, a própria netfilter desaconselha o uso do modulo string para esse fim...

  11. #11

    Padrão obrigado pela atenção, mas...

    O problema não é barrar o orkut, isso eu já fiz, o que eu quero é que ele, além de barrar, exiba a página de bloqueio que está rodando no meu apache, por isso eu gostaria que, quando ele recebesse qualquer pacote contendo a string ´orkut´, ele redirecionasse para o ip 191.168.1.100 onde ele exibiria a página do apache.

    Sem o módulo string ele funciona perfeitamente, com a regra:

    iptables -t nat -A PREROUTING -d 'www.orkut.com' -j DNAT --to 192.168.1.100

    O problema é fazer o redirecionamento para 192.168.1.100 usando o módulo string.
    Última edição por denysiacanga; 24-09-2007 às 13:58.

  12. #12

    Padrão

    iptables -t nat -A PREROUTING -m string --algo kmp --string orkut -j DNAT --to-destination $DESTINO

    Isso deveria resolver... Recomendo você ajustar o offset da busca para evitar delay no seu firewall... Se torna um problema grande em redes de alto tráfego!

  13. #13

    Padrão Obrigado, mas me vi forçado à adotar outra solução...

    Ao que me parece, o match string não funciona na tebela nat, já havia tentado antes mesmo de vc postar uma linha exatamente igual a que vc sugeriu.

    Não produz efeito algum.

    Vou adotar outra solução. Obrigado pela sua atenção.

  14. #14

    Padrão

    Você pode tentar isso:

    iptables -t mangle -A FORWARD -m string --string orkut --algo kmp -j CONNMARK --set-mark 0x60

    iptables -t nat -A PREROUTING -m connmark --mark 0x60 -j DNAT --to-destination $DST

    Só vejo um problema:

    Ao digitar ``www.orkut.com'' no navegador, será enviado um pacote SYN para o destino. Esse pacote não casará com as regras pois ele não possue nehuma cadeia de caractere (string) sobre o destino. Logo em seguida, o destino enviará um pacote ACK+SYN para informar que está recebendo sua requisição. Esse pacote também não conterá nenhuma informação em forma de cadeias de caracteres. Logo em seguida, será enviado um pacote ACK do remetente informando que irá enviar dados, e logo em seguida será enviado um pacote ACK+PUSH com a página requisitada. Esse pacote sim possuirá a cadeia de caractere necessaria a sua regra. Então, só depois desse 4 pacote sua regra será casada com o conteúdo. Com isso, ao redirecionar a conexão para outro host, sua conexão estará perdida. Por isso o time de desenvolvimento do Netfilter/iptables não aconselha o uso do strings para esse fim.