+ Responder ao Tópico



  1. #1
    NeoRamza
    Visitante

    Padrão Como ficaria esse comando do IPTABLES?

    Pessoal, eu uso proxi transparende na minha rede. Porem eu uso o seguinte comando do iptables para liberar o acesso ao IP 200.201.174.207 sem passar pelo squid.

    iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128

    Repare que o comando vale para todos os destinations menos o ip indicado (por isso informado o "!").

    Mas agora eu quero fazer isso com varios ips e não só com esse. Como eu devo fazer isso?

  2. #2
    eric_lc
    Visitante

    Padrão Re: Como ficaria esse comando do IPTABLES?

    iptables -t nat -A PREROUTING -p tcp -d 200.201.174.207 --dport 80 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -d A.B.C.D --dport 80 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -d E.F.G.H --dport 80 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    Com isso ele faz NAT para todos os destinos com excessão dos citados nas 3 primeiras linhas. É só ir adicionando mais regras antes da última.

  3. #3

    Padrão Re: Como ficaria esse comando do IPTABLES?

    olá,

    Código :
    for ip in 200.201.174.207 200.201.174.208 200.201.174.209 200.201.174.210
     do
     iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! $ip --dport 80 -j REDIRECT --to-port 3128
     done

    até...

  4. #4

    Padrão Re: Como ficaria esse comando do IPTABLES?

    Citação Postado originalmente por flamehazard
    olá,

    Código :
    for ip in 200.201.174.207 200.201.174.208 200.201.174.209 200.201.174.210
     do
     iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! $ip --dport 80 -j REDIRECT --to-port 3128
     done

    até...
    Flame, essas regras nao funcionam conforme o desejado.
    Vamos analisar:

    As regras criadas seriam as seguintes:

    iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128

    iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.208 --dport 80 -j REDIRECT --to-port 3128

    iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.209 --dport 80 -j REDIRECT --to-port 3128

    iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.210 --dport 80 -j REDIRECT --to-port 3128

    Se a requisicao do usuario fosse para o ip 209, a primeira regra carregada pelo kernel diz o seguinte: redirecione para a porta 3128 todos os pacotes com destino a porta 80 que nao sejam para o ip de destino 200.201.174.207. Como o ip de destino em questao é o 209, o kernel aplica a regra para a solicitacao, redirecionando para o squid. A forma correta e mais 'limpa' é a citada pelo Eric.

    Ou, ainda, se a sua necessidade for apenas com relacao ao Conectividade Social, voce pode cirar a regra pra classe toda, é mais garantido.

    iptables -t nat -A PREROUTING -p tcp -d ! 200.201.174.0/24 --dport 80 -j REDIRECT --to-port 3128

    Att,

    Fabio K. Lima
    LPIC1/81913

  5. #5

    Padrão Re: Como ficaria esse comando do IPTABLES?

    para ficar mais organizados.. pode usar chains personalizadas assim:

    iptables -t nat -N proxy

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j proxy
    iptables -t nat -A proxy -d 200.200.200.1 -j ACCEPT
    iptables -t nat -A proxy -d 200.200.200.2 -j ACCEPT
    iptables -t nat -A proxy -j DNAT --to-destination 192.168.0.1:3128

    assim fica mais organizado

  6. #6
    NeoRamza
    Visitante

    Padrão

    Desculpem não responder antes. Funcionou direitinho. Obrigado a todos.