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.