+ Responder ao Tópico



  1. #1

    Padrão Iptables Macaddress vs. Proxy Transparente

    Oi pessoal,

    Gostaria que os colegas desta lista analisassem este script, p/ encontra algum linha com erro e tb me ajudasse a resolver um outro problema. Este script foi criado p/ bloquear e liberar o acesso a rede através do MACADDRESS da placa de rede, vc vão poder entender melhor este script acessando este site “http://www.linuxit.com.br/section-viewarticle-154.html”.

    O problema:

    Na minha rede tenho um servidor de proxy transparente utilizando a porta 3128, bem, estou querendo incorpora o controle p/ o proxy coisa que já tinha mais não funciona na pratica, pelo que notei o script original esta com bug, Estou querendo que a porta 3128 seja bloqueado p/ todo, e só depois liberado p/ os ips ou mac que estão no arquivo MACLIST.

    Grato,



    Exemplo do MACLIST
    a;00:21:ab:0d:ef:bb;192.168.0.2;cliente1
    b;21:AD:dc:00:ff:10;192.168.0.3;cliente2

    ---------------------------------------- INICIO DO SCRIPT -----------------------------------------

    #!/bin/bash

    IPT=/sbin/iptables
    PROGRAMA=/etc/init.d/macip
    NET_IFACE=eth0
    LAN_IFACE=eth1
    MACLIST=/etc/maclist

    case $1 in
    start)

    echo 1 > /proc/sys/net/ipv4/ip_forward

    $IPT -t nat -F
    $IPT -t nat -Z
    $IPT -F
    $IPT -Z

    # Ordem certa do script
    #$IPT -t filter -P FORWARD DROP
    $IPT -P FORWARD DROP

    for i in `cat $MACLIST`;
    do
    STATUS=`echo $i | cut -d ';' -f 1`
    MACSOURCE=`echo $i | cut -d ';' -f 2`
    IPSOURCE=`echo $i | cut -d ';' -f 3`
    IDUSER=`echo $i | cut -d ';' -f 4`

    if [ $STATUS = "a" ]; then
    $IPT -t nat -A POSTROUTING -s $IPSOURCE -j MASQUERADE
    $IPT -A FORWORD -s $IPSOURCE -m mac --mac-source $MACSOURCE -j ACCEPT
    $IPT -A FORWORD -d $IPSOURCE -j ACCEPT
    fi

    if [ $STATUS = "d" ]; then
    $IPT -t nat -A POSTROUTING -s $IPSOURCE -j MASQUERADE
    $IPT -A FORWORD -s $IPSOURCE -j ACCEPT
    $IPT -A FORWORD -d $IPSOURCE -j ACCEPT
    fi

    if [ $STATUS = "b" ]; then
    $IPT -A FORWORD -m mac --mac-source $MACSOURCE -j DROP
    $IPT -A INPUT -m mac --mac-source $MACSOURCE -j DROP
    $IPT -A OUTPUT -m mac --mac-source $MACSOURCE -j DROP
    fi
    done
    ;;
    stop)
    $IPT -F
    $IPT -Z
    $IPT -t nat -F
    $IPT -t nat -Z
    ;;
    restart)
    $PROGRAMA stop
    $PROGRAMA start
    ;;
    esac

  2. #2
    gmlinux
    Visitante

    Padrão Iptables Macaddress vs. Proxy Transparente

    Nem analisei seu script mais começa trocando FORWORD por FORWARD.



  3. #3

    Padrão Iptables Macaddress vs. Proxy Transparente

    para forcar o proxy transparente, faca um redir da 80 para a 3128, easy.

  4. #4

    Padrão Iptables Macaddress vs. Proxy Transparente

    Oi gmlinux,

    Obrigado, eu escrevei errado na hora de passa do artigo p/ o fórum, vc entendeu qual e meu problema?



    Citação Postado originalmente por gmlinux
    Nem analisei seu script mais começa trocando FORWORD por FORWARD.



  5. #5

    Padrão Iptables Macaddress vs. Proxy Transparente

    Oi mistymst,

    Cara eu sei q tenho q redirecionar da porta 80 p/ 3128, minha pergunta não e essa, quero bloquear todos os acesso a porta 3128 de quem não tiver no arquivo maclist, pois do jeito que esta, e só eu configura meu navegador na porta 3128 mesmo a maquina estando bloqueado pelo script ele navega.

    Esta e a linha q controla o proxy neste script:
    [size=9px]$IPT –t nat –A PREROUTING –s $IPSOURCE –p tcp –dport 80 –j REDIRECT –to-port 3128[/size]


    Citação Postado originalmente por mistymst
    para forcar o proxy transparente, faca um redir da 80 para a 3128, easy.

  6. #6

    Padrão Iptables Macaddress vs. Proxy Transparente

    cara faz o seguinte,
    bloquei tudo primeiro

    iptables -P INPUT DROP

    ai pra vc liberar o proxy,

    iptables -A INPUT -p tcp -s IP_DO_CLIENTE -d IP_DO_PROXY --dport 3128 -j ACCEPT

    claro q vc tera de liberar as portas q vc utliza no seu servidor ex: 25, 53, 80, 110 e outras q vc utliliza no seu servidor,

    isso deve resolver seu problema,

    Rosauro



  7. #7

    Padrão Iptables Macaddress vs. Proxy Transparente

    Citação Postado originalmente por rosauro
    cara faz o seguinte,
    bloquei tudo primeiro

    iptables -P INPUT DROP

    ai pra vc liberar o proxy,

    iptables -A INPUT -p tcp -s IP_DO_CLIENTE -d IP_DO_PROXY --dport 3128 -j ACCEPT

    claro q vc tera de liberar as portas q vc utliza no seu servidor ex: 25, 53, 80, 110 e outras q vc utliliza no seu servidor,

    isso deve resolver seu problema,

    Rosauro
    Eu não queria chegar a este estremo, vc não poderia me da outra solução tipo bloquear so a porta 3128, e libera a mesma p/ os ips que estão cadastrados em maclist?

    Grato,

  8. #8
    fabianocese
    Visitante

    Padrão bloquear por mac

    e ai Good_speed, olha usa essa regra aqui iptables -t mangle -A PREROUTING s ip_do_cliente -p ALL -m mac --mac-source mac_do_cliente -j ACCEPT, essa regra libera somente o q vier do ip_do_cliente e para o bloquear o resto vc coloca essa embaixo
    iptables -t mangle -A PREROUTING -s rede_ip_/mask -d 0/0 -p ALL -j DROP

    dai td q nao tiver no prerouting com mac ele bloqueia, tenta ai se nao der certo posta msg ai



  9. #9

    Padrão Iptables Macaddress vs. Proxy Transparente

    veja este modelo, fiz o teste aqui e funcionou o cara so navega se tiver no maclist. http://www.zago.eti.br/firewall/iptables-mac.txt