+ Responder ao Tópico



  1. #1
    whinston
    Visitante

    Padrão iptables: forward x postrouting

    PERSONAS, estou usando as regras abaixo
    Gostaria de liberar todas as portas, exceto a 80
    Eu to comendo bronha em algum lugar, pq "sempre" deu certo e agora tá liberando!!!HEEEEEEEELP

    $iptables -A FORWARD -s $lan -d $tudo -o eth0 -j ACCEPT
    $iptables -A FORWARD -d $lan -s $tudo -i eth0 -j ACCEPT
    $iptables -A FORWARD -p tcp -s $lan --dport 80 -j REJECT

    echo "Ativando o MASCARAMENTO para o IP Previlegiados:"
    $iptables -t nat -A POSTROUTING -s $notebook -j LOG --log-prefix SPY-NOTEBOOK__
    $iptables -t nat -A POSTROUTING -s $notebook -j MASQUERADE

  2. #2
    charadaa
    Visitante

    Padrão iptables: forward x postrouting

    cara eu uso as seguintes regras para fazer o que vc esta querendo, primeiro

    iptables -t nat -A PREROUTING -s 192.168.0.5/24 -p tcp --dport 80 -j ACCEPT
    esta acima é para liberar


    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1:65535 -j REDIRECT --to 192.168.0.253 --to-port 80
    iptables -t nat -A PREROUTING -i eth1 -p udp --dport 1:65535 -j REDIRECT --to 192.168.0.253 --to-port 80

    esta acima é para bloquear

    sendo 192.168.0.253 ip do seu firewall e eth1 sua interface deste ip ou seja a interna.

    Com isso qualquer usuario que não tenha permissão e tente navegar por fora do proxy cai numa pagina de erro do proprio servidor que vc pode configurar, e nenhuma conexão sai sem que vc libere.

    Duvidas posta ae
    Abraços

  3. #3
    nett
    Visitante

    Padrão Re: iptables: forward x postrouting

    Citação Postado originalmente por whinston
    PERSONAS, estou usando as regras abaixo
    Gostaria de liberar todas as portas, exceto a 80
    Eu to comendo bronha em algum lugar, pq "sempre" deu certo e agora tá liberando!!!HEEEEEEEELP

    $iptables -A FORWARD -s $lan -d $tudo -o eth0 -j ACCEPT
    $iptables -A FORWARD -d $lan -s $tudo -i eth0 -j ACCEPT
    $iptables -A FORWARD -p tcp -s $lan --dport 80 -j REJECT

    echo "Ativando o MASCARAMENTO para o IP Previlegiados:"
    $iptables -t nat -A POSTROUTING -s $notebook -j LOG --log-prefix SPY-NOTEBOOK__
    $iptables -t nat -A POSTROUTING -s $notebook -j MASQUERADE
    Amiguinho, sua regra de REJECT tem que ser a primeira regra. Outra coisa use as regras de NAT antes das de FORWARD, isso ajuda a identificar o problema.
    em vez de REJECT eu usaria DROP. OK

    $iptables -t nat -A POSTROUTING -s $notebook -j MASQUERADE
    $iptables -t nat -A POSTROUTING -s $notebook -j LOG --log-prefix SPY-NOTEBOOK__

    $iptables -A FORWARD -p tcp -s $lan --dport 80 -j DROP
    $iptables -A FORWARD -s $lan -d $tudo -o eth0 -j ACCEPT
    $iptables -A FORWARD -d $lan -s $tudo -i eth0 -j ACCEPT

  4. #4
    whinston
    Visitante

    Padrão /24 ?

    valeu pela dica brow..
    viu, confere a mascara do 192.168.0.5/24
    /24 eh toda rede, /32 apenas o ip


    Citação Postado originalmente por charadaa
    cara eu uso as seguintes regras para fazer o que vc esta querendo, primeiro

    iptables -t nat -A PREROUTING -s 192.168.0.5/24 -p tcp --dport 80 -j ACCEPT
    esta acima é para liberar


    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1:65535 -j REDIRECT --to 192.168.0.253 --to-port 80
    iptables -t nat -A PREROUTING -i eth1 -p udp --dport 1:65535 -j REDIRECT --to 192.168.0.253 --to-port 80

    esta acima é para bloquear

    sendo 192.168.0.253 ip do seu firewall e eth1 sua interface deste ip ou seja a interna.

    Com isso qualquer usuario que não tenha permissão e tente navegar por fora do proxy cai numa pagina de erro do proprio servidor que vc pode configurar, e nenhuma conexão sai sem que vc libere.

    Duvidas posta ae
    Abraços

  5. #5
    nett
    Visitante

    Padrão Re: /24 ?

    Citação Postado originalmente por whinston
    valeu pela dica brow..
    viu, confere a mascara do 192.168.0.5/24
    /24 eh toda rede, /32 apenas o ip


    Citação Postado originalmente por charadaa
    cara eu uso as seguintes regras para fazer o que vc esta querendo, primeiro

    iptables -t nat -A PREROUTING -s 192.168.0.5/24 -p tcp --dport 80 -j ACCEPT
    esta acima é para liberar


    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1:65535 -j REDIRECT --to 192.168.0.253 --to-port 80
    iptables -t nat -A PREROUTING -i eth1 -p udp --dport 1:65535 -j REDIRECT --to 192.168.0.253 --to-port 80

    esta acima é para bloquear

    sendo 192.168.0.253 ip do seu firewall e eth1 sua interface deste ip ou seja a interna.

    Com isso qualquer usuario que não tenha permissão e tente navegar por fora do proxy cai numa pagina de erro do proprio servidor que vc pode configurar, e nenhuma conexão sai sem que vc libere.

    Duvidas posta ae
    Abraços
    Carinha é o seguinte

    192.0.0.0/8
    192.168.0.0/16
    192.168.1.0/24
    192.168.1.232/32 - este seria /32 mas usando o iptables não precisa colocar a mascara ele coloca por vc.

  6. #6
    charadaa
    Visitante

    Padrão iptables: forward x postrouting

    Somente uma observação muiiiitttoooooo importante o REJECT ou DROP sempre vem por ultimo, primeiro vem o ACCEPT

  7. #7
    nett
    Visitante

    Padrão iptables: forward x postrouting

    Senhor, as regras de iptables, seguem precedencia.
    Portanto se ele está liberando tudo logo no começo não irá atender a sua necesside que é bloquear a porta 80. Portanto se você analizar as regras que ele colocou ( independente da Policy da Chain ) quando o pacote for recebido e atender a 1 condição, que é "pode tudo", automaticamente o pacote 'não irá mais verificar as demais regras.
    Por tanto se o DENY ou REJECT forem os ultimos não adiantará absolutamente nada que é justamente o problema que ele está enfrentando.

    OK, qualquer duvida adicional pode perguntar... Aproveite este tópico.

  8. #8
    sadirj
    Visitante

    Padrão Re: iptables: forward x postrouting

    Caso não tenha entendido sua necessidade, mil perdões.

    Citação Postado originalmente por whinston
    PERSONAS, estou usando as regras abaixo
    Gostaria de liberar todas as portas, exceto a 80
    Eu to comendo bronha em algum lugar, pq "sempre" deu certo e agora tá liberando!!!HEEEEEEEELP

    $iptables -A FORWARD -s $lan -d $tudo -o eth0 -j ACCEPT
    $iptables -A FORWARD -d $lan -s $tudo -i eth0 -j ACCEPT
    $iptables -A FORWARD -p tcp -s $lan --dport 80 -j REJECT

    echo "Ativando o MASCARAMENTO para o IP Previlegiados:"
    $iptables -t nat -A POSTROUTING -s $notebook -j LOG --log-prefix SPY-NOTEBOOK__
    $iptables -t nat -A POSTROUTING -s $notebook -j MASQUERADE

    Meu amigo,

    Primeiro, quanto a ordem das regras, realmente deve-se colocar as ACCEPT antes dos DROP, mas quando se trata de CHAINS diferentes, não faz a mínima diferença em que ordem voce vai carrega-las dentro do seu script. Manter as regras juntas serve apenas para manter a organização do script...
    ex.:
    $IPTABLES -A FORWARD -s $LAN -d $WAN -j ACCEPT
    $IPTABLES -A INPUT -p tcp -s $WAN -d $IP_EXTERNO --dport 22 -j ACCEPT
    $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    faz o mesmo efeito que:

    $IPTABLES -A INPUT -p tcp -s $WAN -d $IP_EXTERNO --dport 22 -j ACCEPT
    $IPTABLES -A FORWARD -s $LAN -d $WAN -j ACCEPT
    $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    a ordem citada nesse exmplo não vai mudar a ordem em que o pacote vai percorrer as regras dentro do kernel.

    Segundo, pelo que entendí, basta substituir essas 3 regras de FORWARD que voce postou aqui por 1 única que permita qualquer porta, exceto a 80. defina a politica padrão pra DROP e pronto.
    ou seja:
    no início da contrução das regras de FORWARD voce coloca

    $IPTABLES -P FORWARD DROP
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A FORWARD -p tcp --dport ! 80 -j ACCEPT

    só isso (não se esqueça de permitir outras coisas que voce não tenha postado). e na POSTROUTING pode manter o que voce já tem.

    Acredito que seja isso. Se alguém discordar, por favor posta aí para ajudar nosso amigo que gosta de mandar usuários metidos a esperto pro RH...

    Abraços a todos.

  9. #9
    whinston
    Visitante

    Padrão Re: iptables: forward x postrouting

    valeu velhinho, mas olha soh..vc falo que accept vem antes do drop e postou:

    $IPTABLES -P FORWARD DROP
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A FORWARD -p tcp --dport ! 80 -j ACCEPT

    ou seja, drop antes. como q fica, rs? to meio perdido

    Citação Postado originalmente por sadirj
    Caso não tenha entendido sua necessidade, mil perdões.

    Citação Postado originalmente por whinston
    PERSONAS, estou usando as regras abaixo
    Gostaria de liberar todas as portas, exceto a 80
    Eu to comendo bronha em algum lugar, pq "sempre" deu certo e agora tá liberando!!!HEEEEEEEELP

    $iptables -A FORWARD -s $lan -d $tudo -o eth0 -j ACCEPT
    $iptables -A FORWARD -d $lan -s $tudo -i eth0 -j ACCEPT
    $iptables -A FORWARD -p tcp -s $lan --dport 80 -j REJECT

    echo "Ativando o MASCARAMENTO para o IP Previlegiados:"
    $iptables -t nat -A POSTROUTING -s $notebook -j LOG --log-prefix SPY-NOTEBOOK__
    $iptables -t nat -A POSTROUTING -s $notebook -j MASQUERADE

    Meu amigo,

    Primeiro, quanto a ordem das regras, realmente deve-se colocar as ACCEPT antes dos DROP, mas quando se trata de CHAINS diferentes, não faz a mínima diferença em que ordem voce vai carrega-las dentro do seu script. Manter as regras juntas serve apenas para manter a organização do script...
    ex.:
    $IPTABLES -A FORWARD -s $LAN -d $WAN -j ACCEPT
    $IPTABLES -A INPUT -p tcp -s $WAN -d $IP_EXTERNO --dport 22 -j ACCEPT
    $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    faz o mesmo efeito que:

    $IPTABLES -A INPUT -p tcp -s $WAN -d $IP_EXTERNO --dport 22 -j ACCEPT
    $IPTABLES -A FORWARD -s $LAN -d $WAN -j ACCEPT
    $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    a ordem citada nesse exmplo não vai mudar a ordem em que o pacote vai percorrer as regras dentro do kernel.

    Segundo, pelo que entendí, basta substituir essas 3 regras de FORWARD que voce postou aqui por 1 única que permita qualquer porta, exceto a 80. defina a politica padrão pra DROP e pronto.
    ou seja:
    no início da contrução das regras de FORWARD voce coloca

    $IPTABLES -P FORWARD DROP
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A FORWARD -p tcp --dport ! 80 -j ACCEPT

    só isso (não se esqueça de permitir outras coisas que voce não tenha postado). e na POSTROUTING pode manter o que voce já tem.

    Acredito que seja isso. Se alguém discordar, por favor posta aí para ajudar nosso amigo que gosta de mandar usuários metidos a esperto pro RH...

    Abraços a todos.

  10. #10
    nett
    Visitante

    Padrão iptables: forward x postrouting

    Amiguinho Whinston, vou tentar te explicar rapidamente, a sua dúvida de organização de Firewall.

    Existem várias maneiras de se configurar um Firewall, com regras de DROP primeiro, com regras de ACCEPT primeiro e assim por diante, Porém tudo depende de como você irá planejar o seu Firewall. O que vc pretende ? O que vc quer fazer ? essas perguntas devem estar claras na sua cabeça. As respostas podem ser mais diversas ainda para resolver o seu problema inicial. Que erá um simples problema de precedencia.

    A sugestão de configuração do nosso amigo “sadirj” é uma ótima forma de se começar a configurar um Firewall. Mas imagine um Firewall com um Script de 700 linha e você com uma necessidade pontual precisando bloquear este acesso. Estamos falando aqui de uma necessidade coorporativa certo ?.
    Ou você começa a criar o seu script de firewall com um conhecimento geral sobre as suas necessidades ou a chance do seu firewall ter uma brecha de segurança é muito grande. Você precisa ter conhecimento suficiente sobre as regras e estruturas do iptables para fazer o que precisa.
    Quanto o que vem primeiro ou depois se é ACCEPT ou DROP, de novo depende da necessidade atual. Ficando claro esses pontos

    O iptables (Netfilter ) utiliza tabelas de INPUT, FORWARD, OUTPUT, NAT e MANGLE, essas tabelas são responsáveis pela implantação de um firewall, cada uma com sua caracteristica. As regras postadas pelo sadirj onde ele utiliza a opção –P, ele está se referindo a POLICE da CHAIN FORWARD ou seja, se ele está DROPando a CHAIN FORWARD, isso significa que qualquer coisa que passar de uma interface para outra será DROPado. OK. Usando uma simples analogia, seria você colocar um cadeado na geladeira.

    Quando ele fala da regra $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    Ele está se referindo que todas as conexões que forem estabelecidas e amarradas ele faz o seu caminho de volta sem necessidade de uma regra adicional para isso.
    Com essa regra ele controla as conexões que j;a foram estabelecidas a partir de alguma regra. Sem a necessidade de efetuar a regra de volta. ( OBS. O ipchains vc precisava fazer isto.)

    Usando a analogia ainda é como se você abrisse a geladeira para pegar o leite, e depois que usar o leite você coloca o leite devolta a geladeira ( sem ter que abrir e fechar a geladeira )

    E para finalizar a regra $IPTABLES -A FORWARD -p tcp --dport ! 80 -j ACCEPT

    Simplesmente Libera tudo exceto a porta 80 utilizando o wildcat ! como parametro para exceto.

    As regras de NAT é uma outra estoria que se você tiver necessidade eu te explico.


    Mediante tudo isso, acredito que você possa ter concluido que existem várias maneiras de se configurar um Firewall, e que depende de que e pra que você o quer. E que todos os lugares o levam a um unico objetivo que é bloquear a porta 80. O principal de tudo é que vc realmente tenha ententendido a diferença entre CHAIN e RULE e as suas polices.

    Desculpe pelo texto confuso, mas é que o assunto é chato mesmo.

    Depois dessa você vai mandar não só um mas uns tres para o RH
    :wink:

  11. #11
    whinston
    Visitante

    Padrão citação

    achei uma citação aqui, dum famoso "todo" que tem na net sobre o assunto,que era mais ou menos está minha dúvida:

    fonte: http://planeta.terra.com.br/informat...ablesbr/3.html
    citação: "As regras serão interpretadas na ordem em que aparecerem. Sempre que um pacote se adequar a uma regra, tal regra processará o pacote e a sequência iptables será finalizada naquele instante, sem que as regras seguintes atuem. Isso não se aplicará às regras terminadas com -j LOG. Nesse caso, a regra com -j LOG irá atuar, se for o caso, e permitirá o prosseguimento da seqüencia. Conclusão: se houver impasse entre regras, sempre valerá a primeira. Assim, entre as regras:

    #iptables -A FORWARD -p icmp -j DROP
    #iptables -A FORWARD -p icmp -j ACCEPT

    Valerá:
    #iptables -A FORWARD -p icmp -j DROP

    Já entre as regras:
    #iptables -A FORWARD -p icmp -j ACCEPT
    #iptables -A FORWARD -p icmp -j DROP

    Valerá:
    #iptables -A FORWARD -p icmp -j ACCEPT

    Em resumo:
    ACCEPT --> Pára de processar regras para o pacote atual;
    DROP --> Pára de processar regras para o pacote atual;
    REJECT --> Pára de processar regras para o pacote atual;
    LOG --> Continua a processar regras para o pacote atual;"

  12. #12
    nett
    Visitante

    Padrão iptables: forward x postrouting

    Isso mesmo amiguinho, a velha PRECEDENCIA. Que bom que ficou claro para vc ....

  13. #13
    sadirj
    Visitante

    Padrão iptables: forward x postrouting

    é isso aí nett!!! e o pior é que eu tava no trabalho hoje preparando uma explicação melhor do que a anterior, mas sabe como é... as vezes eu tenho que atacar de Supervisor de Suporte técnico... hehe... Provedor é fogo. Demorei tanto que a página recarregou e mandou tudo que eu tinha digitado pro espaço! aí acabei perdendo o "fio da meiada"... mas voce explicou melhor do que eu.
    Whinston, clica nesse link aqui embaixo e dá uma lida. Vai te ajudar a esclarecer dúvidas, tá bem mastigado... qualquer coisa posta ae.

    http://iptables.under-linux.org

    abraços.

  14. #14
    whinston
    Visitante

    Padrão ops

    valeu velhinho, mas esta url eh a mesma q eu postei acima, rs.. digo, o mesmo autor e conteudo

    Citação Postado originalmente por sadirj
    é isso aí nett!!! e o pior é que eu tava no trabalho hoje preparando uma explicação melhor do que a anterior, mas sabe como é... as vezes eu tenho que atacar de Supervisor de Suporte técnico... hehe... Provedor é fogo. Demorei tanto que a página recarregou e mandou tudo que eu tinha digitado pro espaço! aí acabei perdendo o "fio da meiada"... mas voce explicou melhor do que eu.
    Whinston, clica nesse link aqui embaixo e dá uma lida. Vai te ajudar a esclarecer dúvidas, tá bem mastigado... qualquer coisa posta ae.

    http://iptables.under-linux.org

    abraços.