Squid não bloqueia sites [RESOLVIDO]

1. Squid não bloqueia sites [RESOLVIDO]

BlackHatThi
blackhatthi

(usa Slackware)

Enviado em 04/10/2010 - 15:37h

Olá galera da VOL, estou quebrando a cabeça aqui com iptables + squid. Preciso bloquear o acesso a alguns sites utilizando proxy transparente. No script do iptables eu ja adicionei a linha que redireciona para a porta do squid:

$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

E o meu squid.conf está assim:
http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_dir ufs /var/spool/squid 128 16 256
cache_mem 16 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
acl blockedsites dstdomain -i "/usr/local/squid/sites"
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl rede_interna src 192.168.0.0/24
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
httpd_accel_single_host off

http_access allow rede_interna
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny blockedsites
http_access deny all
icp_access allow all

Mesmo assim não bloqueia os sites. Outra duvida que tenho, é se devo colocar somente o dominio do site no arquivo. Ex: ".tibiabr.com" ou "tibiabr.com".

Agradeço desde ja a atenção!!


  


2. Re: Squid não bloqueia sites [RESOLVIDO]

Fabio Soares Schmidt
fs.schmidt

(usa CentOS)

Enviado em 04/10/2010 - 17:01h

Olá amigo, com a diretiva dstdomain a partir do squid 2.4 você deve utilizar ".tibiabr.com".

Nas suas regras, você liberou o acesso total a TODA a rede: http_access allow rede_interna

Você poderia fazer:

http_access allow rede_interna !blockedsites

OU inverter a ordem:

http_access deny blockedsites
http_access allow rede_interna






3. Re: Squid não bloqueia sites [RESOLVIDO]

BlackHatThi
blackhatthi

(usa Slackware)

Enviado em 04/10/2010 - 17:35h

Então, fiz as alterações, mas mesmo assim não está bloqueando...No arquivo de sites bloqueados, coloquei a sintax ".tibiabr.com" (uso squid 2.4), um site por linha. Reconfigurei (/usr/local/squid/bin/squid -k reconfigure)e não deu certo....
=[


4. Re: Squid não bloqueia sites [RESOLVIDO]

Fabio Pego
fabiopego

(usa Debian)

Enviado em 04/10/2010 - 18:24h

Eu te aconselharia, controlar pela Acl's, muito mais facil, crie 3 acls, com nome, abaixo e adiciona o site e ip conforme sua regras, pode ser colocado logo abaixo do ttpd_accel_single_host off

#Diretivas de redirecionamento de permissao

acl site dstdomain anaconda.local

# você adicionará os ip que vai liberar geral
acl podetudo src "/etc/squid3/podetudo"
http_access allow podetudo

# vai adicionar o site, que pode ser liberado geral
acl permitido url_regex -i "/etc/squid3/permitido"
http_access allow permitido

# aqui está lista de acesso proibido (ex:sexo)
acl bloqueados url_regex -i "/etc/squid3/bloqueados"
http_access deny bloqueados



5. Re: Squid não bloqueia sites [RESOLVIDO]

BlackHatThi
blackhatthi

(usa Slackware)

Enviado em 04/10/2010 - 18:37h

Fazendo alguns testes aqui, verifiquei que o problema é que ele não está sendo executado como proxy transparente. Se eu configurar o proxy no navegador, ele funciona perfeitamente bloqueando os sites. Agora não sei se o problema é no squid.conf ou no meu script de iptables, de qualquer modo estou postando o script do firewall aqui:
#!/bin/bash
echo "Carregando o Firewall....."
IPTABLES="/usr/sbin/iptables"
REDECORP="192.168.0.0/24"
REDEINFO="192.168.1.0/24"
IPDNSPROVEDOR="201.X.X.X"
IPDNSPROVEDOR2="201.X.X.X"
ENT="ppp+"

modprobe ip_tables
modprobe iptable_nat
$IPTABLES -F #Limpa as regras do firewall
$IPTABLES -t nat -F #Habilita NAT limpa as regras anteriores

#-----------------------------------------------------------------------------------------------
#SQUID
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

#------------------------------------------------------------------------------------------------
#BLOQUEIO DE MSN

#Nao redireciona a porta 1863
#$IPTABLES -A FORWARD -s $REDECORP -p tcp --dport 1863 -j REJECT

#Rejeita o IP do server
#$IPTABLES -A FORWARD -s $REDEINFO -d 46.4.13.0/24 -j REJECT

#------------------------------------------------------------------------------------------------
#BLOQUEIO DE BACKDOORS ESPECIFICOS

#$IPTABLES -A FORWARD -p UDP --dport 6343 -j REJECT

#------------------------------------------------------------------------------------------------
#PROTECAO CONTRA PING OF DEATH

$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#------------------------------------------------------------------------------------------------
#PROTECAO CONTRA ATAQUES DO TIPO SYN-FLOOD, DOS, ETC

$IPTABLES -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

#------------------------------------------------------------------------------------------------
#LOG DE PACOTES MORTOS POR INATIVIDADE

#$IPTABLES -A FORWARD -m limit 3/minute --limit-burst 3 -j LOG

#------------------------------------------------------------------------------------------------
#PERFORMANCE - SETANDO ACESSO WEB COM DELAY MINIMO

$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 80 -j TOS --set-tos Minimize-Delay

#------------------------------------------------------------------------------------------------
#DEIXA PASSAR AS PORTAS UDP DO SERVIDOR DNS E REJEITA O RESTANTE
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR2 -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -j REJECT

#------------------------------------------------------------------------------------------------
#FECHAR TODAS AS PORTAS ABAIXO DE 32000

$IPTABLES -A INPUT -i $ENT -p tcp --dport :32000 -j DROP
#$IPTABLES -A INPUT -i $ENT -p UDP --dport 1234 -j DROP #Bloqueia uma porta especifica

#------------------------------------------------------------------------------------------------
#RESPONDE PACOTES ICMP ESPECIFICADOS E REJEITA O RESTANTE (NAO ALTERAR)

$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type host-unreachable -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp -j REJECT --reject-with icmp-host-unreachable

#------------------------------------------------------------------------------------------------
#LIBERAR ACESSO INTERNO DA REDE
$IPTABLES -A INPUT -p tcp --syn -s $REDECORP -j ACCEPT
$IPTABLES -A INPUT -p tcp --syn -s $REDEINFO -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --syn -s $REDECORP -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --syn -s $REDEINFO -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -s $REDECORP -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -s $REDEINFO -j ACCEPT

#------------------------------------------------------------------------------------------------
#LIBERAR LOOPBACK

$IPTABLES -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT

#------------------------------------------------------------------------------------------------
#LIBERA CONEXOES DE FORA PARA DENTRO

$IPTABLES -A INPUT -p tcp --destination-port 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 443 -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 22 -j ACCEPT

#------------------------------------------------------------------------------------------------
#LIBERA CONEXOES DE DENTRO PARA FORA

$IPTABLES -A OUTPUT -p tcp --destination-port 80 -j ACCEPT #WEB
$IPTABLES -A OUTPUT -p tcp --destination-port 22 -j ACCEPT #SSH
$IPTABLES -A OUTPUT -p tcp --destination-port 443 -j ACCEPT #HTTPS
$IPTABLES -A OUTPUT -p tcp --destination-port 25 -j ACCEPT #SMTP
$IPTABLES -A OUTPUT -p tcp --destination-port 110 -j ACCEPT #POP

#------------------------------------------------------------------------------------------------
#COMPARTILHAR A WEB NA REDE INTERNA
$IPTABLES -t nat -A POSTROUTING -s $REDECORP -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -s $REDEINFO -o eth0 -j MASQUERADE
#------------------------------------------------------------------------------------------------
#BLOQUEIA O RESTO

$IPTABLES -A INPUT -p tcp --syn -j DROP
$IPTABLES -A OUTPUT -p tcp --syn -j DROP
$IPTABLES -A FORWARD -p tcp --syn -j DROP

echo "Firewall OK..."


6. Re: Squid não bloqueia sites [RESOLVIDO]

BlackHatThi
blackhatthi

(usa Slackware)

Enviado em 04/10/2010 - 22:11h

Galera ja consegui resolver o problema. Além da ordem das ACL´s, eu estava redirecionando para a eth0, sendo que a placa correta era a eth1. Agora ja está tudo funcionando!!!
Obrigadão a todos pela atenção!!!

XD


7. Squid não bloqueia sites [RESOLVIDO]

Guilherme Antonio Paizante Iglesias
guilhermei

(usa Outra)

Enviado em 07/12/2011 - 09:03h

Estava com o mesmo problema que você, havia configurado tudo, criado o script para o iptables, porém quando configurava o proxy no navegador ele funcionava, quando tirava ele não barrava nada. Aí li seu post sobre a placa de rede e vi que estava errado também, troquei pra eth1 e resolveu o problema! Valeu ai pela dica!


8. Re: Squid não bloqueia sites [RESOLVIDO]

William Sousa
willsnake3

(usa Debian)

Enviado em 05/02/2013 - 12:15h

Tive o mesmo problema, fiquei quebrando a cabeça e depois que vi que tinha direcionado na interface errada.

Obrigado galera, todos vocês sempre me ajudaram com minhas dúvidas.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts