+ Responder ao Tópico



  1. #1

    Padrão Bloquear tudo e liberar apenas para uma lista de ips

    Bom dia!
    Galera seguinte, editei uma lista com alguns ips e no squid liberei o acesso pra eles. Todo o resto da rede bloqueado, para http beleza funcionou, mas como posso fazer para bloquear o resto? Msn e outlook o squid não barra.
    No squid mesmo ou alguma regra no iptables?

    Desde já obrigado!

  2. #2

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    A solução é fazer o NAT apenas para uma range da sua rede, ou para alguns IP's... tente a regra abaixo.

    Código :
    # iptables -t nat -A POSTROUTING -m iprange --src-range $RANGE_COMECO-$RANGE_FINAL -o $INTERFACE_SAIDA -j MASQUREADE


    Abraços!

  3. #3

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    ele ta me retornando esse erro
    iptables: No chain/target/match by that name

    usei a regra abaixo
    iptables -t nat -A POSTROUTING -m iprange --src-range 10.x.x.2-10.x.x.8 -o eth1 -j MASQUERADE

  4. #4

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    Talvez você não tenha o kernel compilado com esse módulo do IPTables. Qual distro e versão do kernel você tá usando?

  5. #5

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    Slackware 10.2
    Kernel 2.4

  6. #6

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    Estranho... bem... eu não sou usuário de Slackware, mas no Debian os módulos do IPTables ficam em /lib/modules/`uname -r`/kernel/net/ipv4/netfilter. Isso na versão 2.6 do kernel, mas acho que não muda para a 2.4. Dá uma olhada dentro do diretório e procura o arquivo chamado ipt_iprange.o. Se você não encontrar, muito provavelmente o seu kernel não foi compilado com suporte à ele.


    Abraços!

  7. #7

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    Valeu cara vo da uma olhada!
    Brigado!!!

  8. #8

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    Magina... mas se não tiver compilado, tu pode adicionar IP por IP também... claro que é mais trabalhoso, mas também dá certo.

  9. #9

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    Você também pode deixar o NAT(MASQUERADE) para todos:
    iptables -t nat -A POSTROUTING -o eth_net -j MASQUERADE

    E bloquear o resto na FORWARD.
    Eu pelo menos uso assim.

    De uma olhada nesse script e ve se te ajuda...
    eth1 -> a rede local
    eth0 -> internet

    # Lembrando que a output e input são somente para o que sai ou entra da maquina firewall, as estações se enquadram apenas na chain FORWARD!
    # OUTPUT
    # Liberando a rede interna
    iptables -A OUTPUT -o eth1 -d 192.168.0.0/24 -j ACCEPT
    # Acessos para o squid
    iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 443 -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 20 -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 21 -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport ! 1:1024 -j ACCEPT
    # Resolver nomes
    iptables -A OUTPUT -o eth0 -d dns-primario -p tcp --dport 53 -j ACCEPT
    iptables -A OUTPUT -o eth0 -d dns-primario -p udp --dport 53 -j ACCEPT
    iptables -A OUTPUT -o eth0 -d dns-secundario -p tcp --dport 53 -j ACCEPT
    iptables -A OUTPUT -o eth0 -d dns-secundario -p udp --dport 53 -j ACCEPT
    # Detalhe, eu liberei a rede interna para tudo, mas se for o caso vc poderia liberar apenas a porta do squid (por padrao 3128) pois os outros acessos como ja disse se enquadrarao na FORWARD.

    #INPUT
    iptables -A INPUT -i eth1 -d rede_interna -m state --state ESTABLISHED,RELATED -j ACCEPT
    # Essa seria uma forma mais simples de liberar o retorno dos pacotes, porém essas flags de pacotes podem ser burladas... e como o iptables nao tem recursos como keep state tem que ser assim mesmo
    # Mas eu te recomendo fazer uma regra de retorno para cada regra de saida com base na porta de destino da saida, entendeu? por exemplo:
    para a saida com destino a porta 80 vc faria o retorno assim:
    iptables -A INPUT -i eth0 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT

    # por fim a FORWARD
    # aqui vc tem que fazer a ida e volta dos acessos de todas as estaçoes
    Que o básico seria acessos na 25 e 110 (smtp e pop3) e também 53 tcp e udp se você nao tiver um server dns tb no seu firewall.
    Fora isso, vao te aparecer problemas relacionados a aplicativos que usam portas especificas assim como servidores especificos, seria o caso daqueles programas da caixa federal, alguns internet banking e etc, mas ai cabe a vc verificar a necessidade do cliente e conceder apenas os acessos necessários.

    Vou te dar um exemplo para a porta smtp e o resto seria igual:
    iptables -A FORWARD -o eth0 -s 192.168.0.0/24 -d provedor -p tcp --dport 25 -j ACCEPT
    iptables -A FORWARD -i eth0 -d 192.168.0.0/24 -s provedor -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

    Bom, espero ter ajudado....
    Um abraço.
    Fernando.

  10. #10

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    Beleza cara, com certeza vai me ajudar!!!
    Abraço e obrigado!

  11. #11

    Padrão Re: Bloquear tudo e liberar apenas para uma lista de ips

    o mais simples...

    iptables -t nat -A POSTROUTING -p tcp --dport 80 -j MASQUERADE

    mascara apenas a porta 80 ...

    talvez nem precisa do mascaramento.. se voce fizer proxy transparente...

    tenta assim:

    iptablest -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128

    onde 192.168.0.1 eh seu servidor proxy e 3128 eh a porta

    e DEIXE sem o MASQUERADE.. e faça um teste...

    assim.. todo mundo acessa WEB... mas tudo que nao for web.. fica bloqueado..

    MAS skype e msn consegue usar a porta 80 para funcionarem... ai precisa fazer um bloqueio usando o modulo STRING/MATCH do iptables..