+ Responder ao Tópico



  1. #1

    Padrão squid para de bloquear do nada

    Olá pessoal, sou novo por aqui, e venho pedir uma ajuda, na empresa onde trabalho implementei um servidor de proxy transparente no redhat, o que acontece é que eu rodo ele e depois de alguns minutos, ele para de fazer os bloqueios dos sites como se as politicas nao estivessem funcionando , e se eu paro o servico do squid continua navegando, como se estivesse interrompendo o redirecionamento da porta 80 para 3180 do proxy deixando asssim os clientes navegar sem passar pelo proxy, e quando eu dou um service network restart , volta a funcionar o bloqueio do squid novamente! segue abaixo minhas configurações do squid, por gentileza quem puder ver se tem algo errado eu agradeço!


    aqui é a regra de nat e redirecionamento que eu uso(a eth0 tem ip 192.168.0.7 é ligada na rede e recebe a net de um roteador dlink que também é ligado na rede) a eth1 é ligada na rede e tem o ip 192.168.0.8, os clientes que eu quero passar pelo squid, eu configuro com gateway 192.168.0.8 e os que eu quero que naveguem direto sem proxy sem squid, eu configuro o gateway para 192.168.0.3 que é o dlink.

    script pra compartilhar a net
    ________________________________________
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    #aqui compartilha a internet!

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
    __________________________________________________


    meu squid.conf
    ===================================
    http_port 3128
    visible_hostname wanserver
    #controle de cache do proxy
    cache_mem 8 MB
    maximum_object_size_in_memory 64 MB
    minimum_object_size 0 KB
    maximum_object_size 4096 MB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /var/spool/squid 100 16 256
    cache_access_log /var/log/squid/access.log
    dns_nameservers 200.167.208.117
    ftp_user Squid@
    #protocolos
    refresh_pattern ^ftp: 15 20% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280
    #lista de controle de acesso
    acl all src 192.168.0.0/255.255.255.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 80
    acl Safe_ports port 21
    acl Safe_ports port 443 563
    acl Safe_ports port 70
    acl Safe_ports port 210
    acl Safe_ports port 1025-65535
    acl Safe_ports port 280
    acl Safe_ports port 488
    acl Safe_ports port 591
    acl Safe_ports port 777
    acl Safe_ports port 901
    acl purge method PURGE
    acl CONNECT method CONNECT
    #
    http_access allow manager localhost
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports

    acl urls-bloqueadas url_regex -i "/etc/squid/sitesbloqueados"
    acl nomes-bloqueados dstdom_regex "/etc/squid/nomesbloqueados"
    http_access deny urls-bloqueadas
    http_access deny nomes-bloqueados
    #redes onde o acesso é permitido
    acl redelocal src 192.168.0.0/255.255.255.0
    http_access allow localhost
    http_access allow redelocal
    icp_access allow all
    http_access deny all

    #proxy transparente
    httpd_accel_host virtual
    httpd_accel_port 80
    httpd_accel_with_proxy on
    httpd_accel_uses_host_header on
    =======================================
    grato des de já!

  2. #2

    Padrão

    Cara pelo que pude notar em teu squid é que vc primeiro nega o acesso e depois libera o acesso para sua rede local, da uma verificada nisso..

    Abraços...

  3. #3

    Padrão

    Olá Cristiano, boa tarde e obrigado por ajudar, pelo que eu pude perceber eu desligo o squid com o comando service squid stop, entao os clientes param de navegar, ja que o o iptables envia as requisicoes da porta 80 para 3128 para fazer o proxytransparente, como o squid esta parado, a porta 3128 nao responde e nao devolve as solicitações pedidas na porta 80, até ai tudo bem, mais passa alguns minutos, os clientes começam a navegar normalmente, como se o iptables nao estivesse mais redirecionando da porta 80 para 3128, por isso quando o squid esta ativo, funciona por alguns minutos, depois o iptables parece q nao redireciona mais , assim sendo ele "pula" o squid.

  4. #4

    Padrão

    Citação Postado originalmente por magaiverzinho Ver Post
    Olá Cristiano, boa tarde e obrigado por ajudar, pelo que eu pude perceber eu desligo o squid com o comando service squid stop, entao os clientes param de navegar, ja que o o iptables envia as requisicoes da porta 80 para 3128 para fazer o proxytransparente, como o squid esta parado, a porta 3128 nao responde e nao devolve as solicitações pedidas na porta 80, até ai tudo bem, mais passa alguns minutos, os clientes começam a navegar normalmente, como se o iptables nao estivesse mais redirecionando da porta 80 para 3128, por isso quando o squid esta ativo, funciona por alguns minutos, depois o iptables parece q nao redireciona mais , assim sendo ele "pula" o squid.
    Ele pula mas continua navegando não?

    Ta usando proxy transparente? Caso esteja, procure forçar a configuração pelo navegador para enviar pela porta 3128.. e faça o teste se ele para mesmo de bloquear..

    Você tem 2 regras iguais uma que primeiro bloqueia e outra que depois permite ele pode estar se perdendo ai... desative a ultima acl que da permissão a rede 192.168.0.0/.....

  5. #5

    Padrão

    Então Cristiano, forcei o proxy no navegador colocando o em configurações de proxy 192.168.0.8 porta 3128 , e faz o bloquio normalmente passando pelo squid, o que ta acontecendo eh q o iptables ta pulando o squid, como se estivesse parando de redirecionar a porta pra fazer o proxy transparente, quando eu dou o service network restart ele volta ao normal passando pelo squid, outra coisa curiosa que eu percebi, se eu der um restart no squid, ele faz esse problema voltar q normalmente acontece em alguns minutos , mais se eu coloco o proxy manualmente no navegador, ele funciona , mesmo dando o restart no squid, ou seja o squid nao tem problemas, outra coisa , quando eu dou um ifconfig eth1 down, e dou um ping no 192.168.0.8 da propria makina q roda o proxy, ele continua pingando, como se a interface nao estivesse desligando , mais nos clientes param de pingar...(e se eu der o ifconfig eth1 down e em seguida der um service network restart ele diz q o ip 192.168.0.8 ja esta em uso,sendo que eu acabei de desligar a eth1, estranho né?) parece q ta fazendo uma especie de bridge da eth0 pra eth1 sei lá ... , a ele pula o squid mais continua navegando, tanto é que se eu desativar o squid, ele continua navegando como se o iptables estivesse parando de redirecionar a porta 80 pra 3128 e estivesse fazendo somente o nat, ou ainda como se estivesse fazendo uma ponte do ip da eth1 que eh o gateway dos clientes, como o gateway da eth0 que e recebido do roteador dlink
    Última edição por magaiverzinho; 24-11-2008 às 17:59.

  6. #6

    Padrão

    Citação Postado originalmente por magaiverzinho Ver Post
    Então Cristiano, forcei o proxy no navegador colocando o em configurações de proxy 192.168.0.8 porta 3128 , e faz o bloquio normalmente passando pelo squid, o que ta acontecendo eh q o iptables ta pulando o squid, como se estivesse parando de redirecionar a porta pra fazer o proxy transparente, quando eu dou o service network restart ele volta ao normal passando pelo squid, outra coisa curiosa que eu percebi, se eu der um restart no squid, ele faz esse problema voltar q normalmente acontece em alguns minutos , mais se eu coloco o proxy manualmente no navegador, ele funciona , mesmo dando o restart no squid, ou seja o squid nao tem problemas, outra coisa , quando eu dou um ifconfig eth1 down, e dou um ping no 192.168.0.8 da propria makina q roda o proxy, ele continua pingando, como se a interface nao estivesse desligando , mais nos clientes param de pingar...(e se eu der o ifconfig eth1 down e em seguida der um service network restart ele diz q o ip 192.168.0.8 ja esta em uso,sendo que eu acabei de desligar a eth1, estranho né?) parece q ta fazendo uma especie de bridge da eth0 pra eth1 sei lá ... , a ele pula o squid mais continua navegando, tanto é que se eu desativar o squid, ele continua navegando como se o iptables estivesse parando de redirecionar a porta 80 pra 3128 e estivesse fazendo somente o nat, ou ainda como se estivesse fazendo uma ponte do ip da eth1 que eh o gateway dos clientes, como o gateway da eth0 que e recebido do roteador dlink
    Tuas config das eth estão em dhcp ou configurado manualmente? tente deixar tudo manual , se possivel posta ai teu firewall e teu arquivo com as config das network

  7. #7

    Padrão

    Cristioano, está tudo em manual, segue abaixo as configs

    [root@wanserver devices]# cat ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.7
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.3
    [root@wanserver devices]# cat ifcfg-eth1
    DEVICE=eth1
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.8
    NETMASK=255.255.255.0
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=no

    ===========================
    Para compartilhar e redirecionar uso esse script
    ==================================
    #limpando as regras existentes

    iptables -F
    iptables -t nat -F
    iptables -t mangle -F

    #compartilhando a internet!

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    #redirecionando a porta para fazer proxy transparente

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

    ===================================================
    bom é isso, será que tem haver com as duas placas de rede estar com o endereço da mesma classe de ip? tipo as duas estão na rede 192.168.0.x , pode ser isso?

  8. #8

    Padrão

    Citação Postado originalmente por magaiverzinho Ver Post
    Cristioano, está tudo em manual, segue abaixo as configs

    [root@wanserver devices]# cat ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.7
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.3
    [root@wanserver devices]# cat ifcfg-eth1
    DEVICE=eth1
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.8
    NETMASK=255.255.255.0
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=no

    ===========================
    Para compartilhar e redirecionar uso esse script
    ==================================
    #limpando as regras existentes

    iptables -F
    iptables -t nat -F
    iptables -t mangle -F

    #compartilhando a internet!

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    #redirecionando a porta para fazer proxy transparente

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

    ===================================================
    bom é isso, será que tem haver com as duas placas de rede estar com o endereço da mesma classe de ip? tipo as duas estão na rede 192.168.0.x , pode ser isso?

    Pode ser..

  9. #9

    Padrão

    como eu posso adicionar uma regra no iptables para bloquear qualquer trafego do ip 192.168.0.3 na eth1, no caso eh o gateway do roteador dlink, bloqueando esse ip na eth1 pelo iptables, ele vai forçar a usar o gateway da propria maquina.