Squid - Onde posso estar errando?

Iniciado por lonewolfbr, 02 de Abril de 2012, 16:13

tópico anterior - próximo tópico

lonewolfbr

Prezados amigos, boa tarde.

Em um servidor de uma empresa na qual presto serviços, instalei o squid para controle de acesso à internet com proxy transparente. O proxy transparente funciona bem, mas em resumo, parece quem as regras do squid são ignoradas. Eis abaixo que envio os arquivos de firewall e proxy.


Agradeço a atenção.


Firewall:


#Regras de Firewall

echo Limpando as tabelas e Chains
iptables -F
iptables -F -t nat
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t mangle -F
iptables -t nat -F
iptables -X
echo Limpeza das Tabelas ..... [ok]

### Habilitando os módulos
modprobe iptable_nat
modprobe ip_nat_ftp
echo Modulos Carregados ..... [ok]

### Compartilhamento da Internet
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.1/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
#iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo Internet Compartilhada ..... [ok]

#Segurança
#Não responde a pings
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#Proteção contra Ip Spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP


#Autoriza pacotes provenientes da interface de loopback lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT

#Impedindo ataque Ping of Death na rede
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#Impedindo ataque de Denial Of Service Dos na rede e servidor
iptables -I FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp -m limit --limit 1/s -j ACCEPT

#Protecao contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

#Protecao contra worms
iptables -I FORWARD -p tcp --dport 135 -j LOG --log-level info --log-prefix 'WORMS REDE>'
iptables -A FORWARD -p tcp --dport 135 -j DROP
iptables -I INPUT -p tcp --dport 135 -j LOG --log-level info --log-prefix 'WORMS >'


#bloqueador de tentativas de conexão da internet
iptables -A INPUT -p tcp --syn -j DROP
echo Seguranca Carregada ..... [ok]

#CONECTIVIDADE SOCIAL
#iptables -t nat -A PREROUTING -p tcp -d 200.201.0.0/16 -j ACCEPT
#iptables -A FORWARD -p tcp -d 200.201.0.0/16 -j ACCEPT
#echo Conectividade Social Carregada ..... [ok]

#PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo Proxy Transparente Carregado ..... [ok]

#BLOQUEAR MSN
#iptables -I FORWARD -p tcp -s 192.168.0.0/24 --dport 1863 -j DROP
#echo Bloqueio de Msn Carregado ..... [ok]

#Redirecionamentos

#EXEMPLO DE REDIRECIONAMENTO
#iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 3389 -i eth1 -j DNAT --to 192.168.0.1
#iptables -t nat -A PREROUTING -p udp -s 0/0 --dport 3389 -i eth1 -j DNAT --to 192.168.0.1



E o squid está como abaixo:



# rules for squid
http_port 3128 transparent
visible_hostname server-veritas
error_directory /usr/share/squid/errors/Portuguese

cache_mem 256 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 3 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 1024 16 50
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

#O cache pode ser configurado para continuar downloads de requisicoes abortadas
quick_abort_min -1 KB
quick_abort_max 0 KB
quick_abort_pct 100%

#fecha a conexao quando o a leitura do socket retornar sem mais dados para leitura
half_closed_clients off
read_timeout 60 seconds
pconn_timeout 120 seconds

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 SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
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

#Lista de Sites Bloqueados
acl bloqueados url_regex -i /etc/squid/regras/wordsblock.txt
http_access deny bloqueados


#Aqui você vai colocar a faixa de ip da sua rede local ex: 192.168.1.0/24 ou conforme abaixo:
acl redelocal src 192.168.0.0/24
http_access allow localhost
http_access allow redelocal

http_access deny all

forwarded_for off

memory_pools off

detect_broken_pconn on

jeandre

porque esta comentada esta linha?
#iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

assim ela vocẽ nao liberou a porta
Tenta assim

ptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3128

sendo o 192.168.x.x a sua rede interna

lonewolfbr

Prezado Jeandre. Inicialmente, grato pelo feedback.

Eu já havia descomentado a linha em questão, porém o problema persistia.
Efetuei novos testes com a sugestão, mas parece persistir o problema.


Em uma das tentativas, desativei o proxy transparente no script do firewall e fiz com que o browser utilizasse diretamente o proxy (está na porta 3128), e tudo navega. Nenhum dos sites que eu coloquei na lista foi bloqueado.

PS: enquanto escrevo esta mensagem, percebo que os sites ssl não carregam. Pelo opera (que está configurado com o endereço e porta do proxy) está assim a tela:

(gmail.com, hotmail.com, orkut.com)
Não foi possível conectar-se ao servidor proxy. Acesso negado

Verifique se o endereço está correto ou faça uma busca pelo site.



zekkerj

CitarO proxy transparente funciona bem, mas em resumo, parece quem as regras do squid são ignoradas.
Pq vc diz isso? Vc chegou a verificar o log do squid?

CitarPS: enquanto escrevo esta mensagem, percebo que os sites ssl não carregam.
HTTPS não funciona com proxy transparente. E não há nada que se possa fazer sobre isso, pois o protocolo foi feito pra não funcionar com proxy transparente.

Você só tem duas alternativas com HTTPS: ou você usa proxy configurado (o que eu recomendo fortemente), ou deixa passar sem proxy. Não há terceira alternativa.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D