+ Responder ao Tópico



  1. #1

    Padrão Script Firewall derrubando squid

    pessoALL estou com o seguinte problema.

    Quando digito # ./firewall ele derruba o processo do squid rodando.
    Já liberei a porta 3128 dentro do firewall.
    Alguém pode me ajudar?

    Obs: To usando Debian

  2. #2

    Padrão

    Citação Postado originalmente por juliocm Ver Post
    pessoALL estou com o seguinte problema.

    Quando digito # ./firewall ele derruba o processo do squid rodando.
    Já liberei a porta 3128 dentro do firewall.
    Alguém pode me ajudar?

    Obs: To usando Debian
    Não tem nenhuma regra no teu firewall que teja usando a mesma porta do squid

  3. #3

    Padrão

    Citação Postado originalmente por juliocm Ver Post
    pessoALL estou com o seguinte problema.

    Quando digito # ./firewall ele derruba o processo do squid rodando.
    Já liberei a porta 3128 dentro do firewall.
    Alguém pode me ajudar?

    Obs: To usando Debian

    Boa tarde,

    Posta sua regra de Firewall para a gente dar uma analisada...

    Vlw

  4. #4

    Padrão

    Segue o script para que possam me ajudar!

    #!/bin/bash
    IF_EXT="eth0"
    IF_INT="eth1"
    echo 1 >/proc/sys/net/ipv4/ip_forward

    iptables -F
    iptables -t nat -F
    modprobe iptable_nat
    modprobe ip_nat_ftp
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp

    ###################################
    #Tabela Filter
    ###################################
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    #
    ## Liberando o SQUID
    #
    iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
    iptables -A FORWARD -i $IF_INT -o $IF-EXT -p tcp --dport 3128 -j ACCEPT

    #
    ## Liberando LoopBack
    #
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    #
    ##Bloqueando ping da morte
    #
    #iptables -A FORWARD -i $IF_INT -o $IF_EXT -p icmp -j DROP
    iptables -A INPUT -p icmp -j DROP
    #
    ##Liberar quando não estiver na regra
    #
    #iptables -A FORWARD -s 192.168.0.x
    #
    ##Liberando as portas necessárias
    #
    iptables -A FORWARD -i $IF_INT -o $IF_EXT -p tcp -m multiport --dport 20,21,22 -j ACCEPT
    iptables -A FORWARD -i $IF_INT -o $IF_EXT -p udp --dport 53 -j ACCEPT
    iptables -A INPUT -p icmp -i $IF_INT -j ACCEPT
    iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    iptables -A INPUT -p tcp --sport 20 -j ACCEPT
    iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -p tcp --sport 21 -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp --sport 22 -j ACCEPT
    #
    ##SPRING
    iptables -A INPUT -p tcp -s x.x.x.x --sport 10075 -j ACCEPT
    iptables -A INPUT -p tcp --dport 10075 -j ACCEPT
    iptables -A INPUT -p tcp -s x.x.x.x --sport 9003 -j ACCEPT
    iptables -A INPUT -p tcp --dport 9003 -j ACCEPT
    iptables -A INPUT -p tcp -s x.x.x.x --sport 9004 -j ACCEPT
    iptables -A INPUT -p tcp --dport 9004 -j ACCEPT
    iptables -A INPUT -p tcp -s x.x.x.x --sport 9005 -j ACCEPT
    iptables -A INPUT -p tcp --dport 9005 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1075 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9003 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9004 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9005 -j ACCEPT
    #
    ##Terminal Server
    #
    iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
    #
    ##Liberando Email
    #
    iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -p tcp --sport 25 -j ACCEPT
    iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -p tcp --sport 110 -j ACCEPT
    iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
    iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
    #
    ## Liberando o Banesfácil na FILTER
    #
    iptables -A INPUT -p tcp --dport 4226 -j ACCEPT
    iptables -A INPUT -p tcp --sport 4226 -j ACCEPT
    iptables -A FORWARD -p tcp --dport 4226 -j ACCEPT
    iptables -A FORWARD -p tcp --sport 4226 -j ACCEPT
    #
    ##Liberando o autphd
    #
    iptables -A INPUT -p tcp --dport 113 -j ACCEPT
    #
    ## Liberando porta 80 e 443
    #
    iptables -A FORWARD -i $IF_INT -o IF_EXT -p tcp -m multiport --dport 80,443 -j ACCEPT
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A FORWARD -m limit --limit 1/s -j LOG
    #Liberar o msn para determinado ip
    iptables -A FORWARD -s 192.168.0.2 -p tcp -m multiport --dport 1683 -j ACCEPT

    ###############################
    ## TABELA NAT
    ###############################
    #
    ## Liberando o acesso ao Terminal Server
    #
    iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp -i $IF_EXT --dport 3389 -j DNAT --to 192.168.0.2
    #
    ## Mascarando o IP
    #
    iptables -t nat -A POSTROUTING -s 192.168.0.0 -j SNAT --to x.x.x.x
    #
    ##Redirect server
    #
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 80 -j DNAT --to 192.168.0.5
    #
    ## Liberando o Banesfácil na NAT p/ o IP especifico
    #
    iptables -t nat -A PREROUTING -s 0/0 -p tcp --sport 20 -m multiport --dport 20,21,4226 -j DNAT --to 192.168.0.114

    #
    ## SPRING
    #
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 10075 -j DNAT --to 192.168.0.5
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9003 -j DNAT --to 192.168.0.5
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9004 -j DNAT --to 192.168.0.5
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9005 -j DNAT --to 192.168.0.5

    #
    ## Liberando o Conectividade Social
    #
    iptables -t nat -A PREROUTING -d ! x.x.x.x/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

    iptables -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE

    #
    ##Habilitando o squid
    #
    iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

  5. #5

    Padrão

    Não vi nas tuas regras nenhuma permitindo o OUTPUT nas portas 80 e 443, que são as portas que o Squid vai tentar acessar quando for atender a uma requisição dos usuários.

    O Squid recebe a requisição na porta 3128, que tem que ser liberada (e está) por regra de INPUT e vai na internet buscar as páginas nas portas 80 e 443, que devem ser liberadas por regra de OUTPUT.

    iptables -o $IF_EXT -p tcp -m multiport --dports 80,443 -j ACCEPT

    essa regra resolve o seu problema.

  6. #6

    Padrão

    Minha regra de OUT está accept para todas as portas

    iptables -A OUTPUT -j ACCEPT


    Alguém pode me ajudar?
    Última edição por juliocm; 02-07-2008 às 10:08.

  7. #7

    Padrão

    ajudar com?

    A sua regra OUTPUT com ACCEPT pra all só quer dizer que as conexões que saem do firewall estão liberadas.

  8. #8

    Padrão

    Citação Postado originalmente por juliocm Ver Post
    Minha regra de OUT está accept para todas as portas

    iptables -A OUTPUT -j ACCEPT


    Alguém pode me ajudar?

    Seguinte, troca a sua regra de redirect do Proxy, por essa:


    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

    Testa a regra acima, se nao der certo, aí faz um outro teste rápido: Tira a política padrão de DROP do FORWARD e coloca ACCEPT e testa novamente. Se funcionar, vc já sabe que é FORWARD embaçando, aí vc faz assim:
    iptables -A FORWARD -p tcp --destination-port 3128 -j ACCEPT

    Teste isso e retorne, valeu

  9. #9

    Padrão

    Fiz os procedimentos.
    Continua ocorrendo os mesmos erros...

  10. #10

    Padrão

    Seguem algumas propostas de modificação pro teu script de firewall, veja se isso resolve seu problema:


    Citação Postado originalmente por juliocm Ver Post
    Segue o script para que possam me ajudar!

    #!/bin/bash
    IF_EXT="eth0"
    IF_INT="eth1"
    echo 1 >/proc/sys/net/ipv4/ip_forward

    iptables -F
    iptables -t nat -F
    modprobe iptable_nat
    modprobe ip_nat_ftp
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp

    ###################################
    #Tabela Filter
    ###################################
    #
    ## Liberando LoopBack
    #
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A FORWARD -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    #
    ## Liberando o SQUID
    #
    iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
    iptables -A FORWARD -i $IF_INT -o $IF-EXT -p tcp --dport 3128 -j ACCEPT
    iptables -A OUTPUT -p tcp -m multiport --dport 80, 443 -j ACCEPT

    #
    ##Bloqueando ping da morte
    #
    #iptables -A FORWARD -i $IF_INT -o $IF_EXT -p icmp -j DROP
    # Se a política de INPUT já está como DROP, você não precisa negar mais nada,
    #ele já tem tudo negado exceto o que é permitido
    ###
    iptables -A INPUT -p icmp -j DROP
    ###
    ## Libera ICMPs Válidos
    ##
    iptables -N ICMP
    iptables -A INPUT -p icmp -j ICMP
    iptables -A FORWARD -p icmp -j ICMP
    iptables -A OUTPUT -p icmp -j ICMP
    iptables -A ICMP -p icmp --icmp-type 0 -j ACCEPT -m limit --limit 5/sec
    iptables -A ICMP -p icmp --icmp-type 3 -j ACCEPT -m limit --limit 5/sec
    iptables -A ICMP -p icmp --icmp-type 8 -j ACCEPT -m limit --limit 5/sec
    iptables -A ICMP -p icmp --icmp-type 30 -j ACCEPT -m limit --limit 5/sec
    iptables -A ICMP -p icmp --icmp-type 40 -j ACCEPT -m limit --limit 5/sec
    iptables -A ICMP -j RETURN

    ##
    #
    ##Liberar quando não estiver na regra
    #
    #iptables -A FORWARD -s 192.168.0.x
    #
    ##Liberando as portas necessárias
    #
    iptables -A FORWARD -i $IF_INT -o $IF_EXT -p tcp -m multiport --dports 20,21,22,53 -j ACCEPT
    iptables -A FORWARD -i $IF_INT -o $IF_EXT -p udp --dport 53 -j ACCEPT
    iptables -A INPUT -p icmp -i $IF_INT -j ACCEPT
    iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    iptables -A INPUT -p tcp --sport 20 -j ACCEPT
    iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -p tcp --sport 21 -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp --sport 22 -j ACCEPT
    #
    ##SPRING
    iptables -A INPUT -p tcp -s x.x.x.x --sport 10075 -j ACCEPT
    iptables -A INPUT -p tcp --dport 10075 -j ACCEPT
    iptables -A INPUT -p tcp -s x.x.x.x --sport 9003 -j ACCEPT
    iptables -A INPUT -p tcp --dport 9003 -j ACCEPT
    iptables -A INPUT -p tcp -s x.x.x.x --sport 9004 -j ACCEPT
    iptables -A INPUT -p tcp --dport 9004 -j ACCEPT
    iptables -A INPUT -p tcp -s x.x.x.x --sport 9005 -j ACCEPT
    iptables -A INPUT -p tcp --dport 9005 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1075 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9003 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9004 -j ACCEPT
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9005 -j ACCEPT
    #
    ##Terminal Server
    #
    iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
    #
    ##Liberando Email
    #
    iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -p tcp --sport 25 -j ACCEPT
    iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -p tcp --sport 110 -j ACCEPT
    iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
    iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
    #
    ## Liberando o Banesfácil na FILTER
    #
    iptables -A INPUT -p tcp --dport 4226 -j ACCEPT
    iptables -A INPUT -p tcp --sport 4226 -j ACCEPT
    iptables -A FORWARD -p tcp --dport 4226 -j ACCEPT
    iptables -A FORWARD -p tcp --sport 4226 -j ACCEPT
    #
    ##Liberando o autphd
    #
    iptables -A INPUT -p tcp --dport 113 -j ACCEPT
    #
    ## Liberando porta 80 e 443
    #
    ## Se você quer obrigar seus usuários a sairem pelo squid, não libere as portas 80 e 443 para passarem pelo firewall
    ### Se você quer que eles acessem o conectividade social, libere apenas para o IP específico.
    iptables -A FORWARD -i $IF_INT -o IF_EXT -p tcp -m multiport --dport 80,443 -j ACCEPT
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A FORWARD -m limit --limit 1/s -j LOG
    #Liberar o msn para determinado ip
    iptables -A FORWARD -s 192.168.0.2 -p tcp -m multiport --dport 1683 -j ACCEPT

    ###############################
    ## TABELA NAT
    ###############################
    #
    ## Liberando o acesso ao Terminal Server
    #
    iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp -i $IF_EXT --dport 3389 -j DNAT --to 192.168.0.2
    #
    ## Mascarando o IP
    #
    iptables -t nat -A POSTROUTING -s 192.168.0.0 -j SNAT --to x.x.x.x
    #
    ##Redirect server
    #
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 80 -j DNAT --to 192.168.0.5
    #
    ## Liberando o Banesfácil na NAT p/ o IP especifico
    #
    ### Cuidado com essa regra! Toda e qualquer conexão, vinda e qualquer lugar,
    ### para as portas 20, 21 e 4226 vão ser redirecionadas para uma máquina interna na sua rede!!

    ### E eu não acho que seja realmente isso que você esteja querendo.
    iptables -t nat -A PREROUTING -s 0/0 -p tcp --sport 20 -m multiport --dport 20,21,4226 -j DNAT --to 192.168.0.114

    #
    ## SPRING
    #
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 10075 -j DNAT --to 192.168.0.5
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9003 -j DNAT --to 192.168.0.5
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9004 -j DNAT --to 192.168.0.5
    iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9005 -j DNAT --to 192.168.0.5

    #
    ## Liberando o Conectividade Social
    #
    iptables -t nat -A PREROUTING -d ! x.x.x.x/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

    iptables -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE

    #
    ##Habilitando o squid
    #
    ### Esta regra está redundante com a regra logo acima. A diferença é que
    ### lá você especificou um destino onde ele não redireciona e aqui só especificou a origem.

    iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
    Espero que te ajude.

  11. #11

    Padrão

    tira isso do teu script:
    iptables -F
    iptables -t nat -F


    ehehehe ta limpando a regra do teu squid :P

    ou no fim do teu script coloca

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128


  12. #12

    Padrão Testes

    Sobe o squid sem firewall e declara no seu navegador o uso dele,

    uma coisa importante o squid esta configurado para transparent proxy ??


    Abraço