+ Responder ao Tópico



  1. #1
    cristianmr
    Visitante

    Padrão Usar o Prerouting para mais de uma origem.

    Olá pessoal, estou precisando usar o prerouting para mais de uma origem, por exemplo: estou precisando que toda a rede passe pelo squid, exeto umas 4 estações, para uma estação eu consigo usando:
    iptables -t nat -A PREROUNTING -s ! 192.168.0.5/32 -t tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

    Se alguém puder me ajudar eu agradeço desde já,

    Cristian

  2. #2

    Padrão Usar o Prerouting para mais de uma origem.

    se vc naum precisa d um prerouting pra tdas as maquinas, crie uma regra d postrouting pra essas maquina antes da sua d prerouting, e se for o caso, crie uma d prerouting pra essas maquinas, enviando as requisicoes d volta pra porta 80 no seu gw... fazendo um loop, mas q funciona

    eu sei q eh feio, mas funfa hehee

    []'s

  3. #3
    xiruca
    Visitante

    Padrão Regras

    Antes dessas regras, cria mais 4 regras..uma para cada ip.....em que vc libera o trafeco na porta sem passarpelo squid......o resto, vai cair na regra do squid.

  4. #4
    Danilo_Montagna
    Visitante

    Padrão Usar o Prerouting para mais de uma origem.

    Citação Postado originalmente por demiurgo
    se vc naum precisa d um prerouting pra tdas as maquinas, crie uma regra d postrouting pra essas maquina antes da sua d prerouting, e se for o caso, crie uma d prerouting pra essas maquinas, enviando as requisicoes d volta pra porta 80 no seu gw... fazendo um loop, mas q funciona

    eu sei q eh feio, mas funfa hehee
    Demiurgo

    Infelizmente isso nao irá funcionar.. pois a chain PREROUTING será lida antes da chain de postrouting.. pois a prerouting é lida antes do pacote sofrer roteamento.. entao nesse caso.. a sintaxe (-s 0/0) já ira cair em qualquer pacote possivel nesse prerouting dele... eliminando qualquer possibilidade da chain postrouting ser lida.. antes disso..

    Antes dessas regras, cria mais 4 regras..uma para cada ip.....em que vc libera o trafeco na porta sem passarpelo squid......o resto, vai cair na regra do squid.
    Xiruca,

    Isso tb nao ira funcionar.. pois a sintaxe (-s 0/0) esta explicita na 1 regra.. sendo assim.. todo o pacote se encaixa já na 1 regra.. menos a exceção.. que no caso dele é apenas um IP.. (-s ! XXX.XXX.XXX.XXX/32).. pois nenhuma regra abaixo dessa será lida pelo fato simples de qualquer pacote ja ser checado na 1 regra (-s 0/0)

    Existem duas formas de resolver isso.. a 1º é criando regra uma por uma para cada estacao que precisará ter o pacote interceptado pela chain prerouting..

    algo assim..

    --------------------------------------------------------------------------
    no arquivo /etc/firewall/ips vc poe o conteudo abaixo.. altere pelos os ips que vc quer que passe pelo squid.. quem nao estiver cadastrado nesse arquivo.. nao ira passar pelo squid..

    -----------------
    192.168.0.1
    192.168.0.2
    192.168.0.3
    -----------------

    for a in `cat /etc/firewall/ips`
    do
    iptables -A PREROUTING -t nat -p tcp -o eth0 -s $a --dport 80 -j REDIRECT --to-port 3128
    done

    ---------------------------------------------------------------

    A 2º forma.. Se vc achou isso meio complicado.. é fazer o seguinte.. se for possivel ae alterar os ips das maquinas que vc nao quer que passe pelo proxy transparent..

    vc poderia criar a sua regra assim..

    iptables -A PREROUTING -t nat -p tcp -s ! 192.168.0.0/29 --dport 80 -j REDIRECT --to-port 3128

    em termos de TCP/IP isso diz que do ip 192.168.0.1 ao IP 192.168.0.6 nao passaram pela regra acima.. pelo fato da mascara /29 estar dizendo isso.. ae vc usa do ip 0.1 até o ip 0.6 nas maquinas que vc nao quer que passe pelo proxy..

    []'s