squid - onde estou errando???? [RESOLVIDO]

1. squid - onde estou errando???? [RESOLVIDO]

Marcelo Bernasconi dos Santos
mibetasigma

(usa Ubuntu)

Enviado em 02/04/2012 - 16:21h

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


  


2. Re: squid - onde estou errando???? [RESOLVIDO]

Tiago Chagas Maestro
tatubhz

(usa CentOS)

Enviado em 04/04/2012 - 09:05h

Pessoal não está utilizando HTTPS não? Pois HTTPS não passa pelo proxy transparente, por isso pelo menos na minha opinião é uma ilusão o uso de proxy transparente.


3. Re: squid - onde estou errando???? [RESOLVIDO]

Marcelo Bernasconi dos Santos
mibetasigma

(usa Ubuntu)

Enviado em 04/04/2012 - 09:37h

tatubhz escreveu:

Pessoal não está utilizando HTTPS não? Pois HTTPS não passa pelo proxy transparente, por isso pelo menos na minha opinião é uma ilusão o uso de proxy transparente.



Não. Simplesmmente todos os sites passam pelo proxy. Nenhum dos sites que eu coloquei na lista de sites bloqueados é de fato, bloqueado.


4. Re: squid - onde estou errando???? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/04/2012 - 10:39h

Estava com problemas também com o bloqueio dos sites.
Coloquei a regra como sendo a primeira e coloquei aspas duplas ficando assim:


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


OBS: Não sei se influencia em alguma coisa, sou novato com squid.
Também não coloquei a opção "-i"
Estou no trabalho mas a noite se não tiver resolvido posto meu squid.conf


5. Re: squid - onde estou errando???? [RESOLVIDO]

Marcelo Bernasconi dos Santos
mibetasigma

(usa Ubuntu)

Enviado em 04/04/2012 - 10:45h

emanuel.linux escreveu:

Estava com problemas também com o bloqueio dos sites.
Coloquei a regra como sendo a primeira e coloquei aspas duplas ficando assim:


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


OBS: Não sei se influencia em alguma coisa, sou novato com squid.
Também não coloquei a opção "-i"
Estou no trabalho mas a noite se não tiver resolvido posto meu squid.conf


Grato pelo feedback, Emanuel. Vou ao meu cliente daqui a pouco e irei testar.
Postarei os resultados aqui posteriormente.


6. Re: squid - onde estou errando???? [RESOLVIDO]

Rodrigo
rodrigom

(usa Debian)

Enviado em 04/04/2012 - 10:45h

Só para testar, tente alterar a na linha que direciona a porta 80 para a 3128 de "-i eth0" para -s 192.168...


acho que é isso..


7. Re: squid - onde estou errando???? [RESOLVIDO]

Marcelo Bernasconi dos Santos
mibetasigma

(usa Ubuntu)

Enviado em 04/04/2012 - 13:45h

Bem, novas notícias do front.

Fiz algumas alterações no script do firewall e do squid, agora a coisa funciona, desde que fixando o IP do proxy no usuário. Acho que vou deixar assim. Mas, por puríssima curiosidade: pq que quando uso proxy transparente e deixo o browser livro da configuração do proxy, os bloqueios são simplesmente ignorados?

Ah, em tempo. Quero agradecer muito a cada autor de cada resposta e também àqueles que leram o post.


Mando abaixo os scripts.

Firewall:


#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 >'
iptables -A INPUT -p tcp --dport 135 -j DROP

#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
#iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.1 -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



============================================================



Squid:



#Configuração do squid
http_port 3128 transparent
visible_hostname xxxx

#Cache
cache_mem 400 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 10048 16 256
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

#ACLs
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 3389 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

acl site dstdomain caixa.gov caixa.com
always_direct allow site

#Regras de bloqueios

#Acesso totalmente liberado
acl acessototal src "/etc/squid/regras/direto.txt"
http_access allow acessototal

#Sites bloqueados
acl sitesbloqueado url_regex -i "/etc/squid/regras/bloquados.txt"
acl sitesliberado url_regex -i "/etc/squid/regras/permitidos.txt"
http_access deny sitesbloqueado !sitesliberado

#Extensões bloqueadas
#acl downloadbloqueado url_regex -i "/etc/squid/downloadbloqueado"
#acl downloadliberado url_regex -i "/etc/squid/downloadliberado"
#http_access deny downloadbloqueado !downloadliberado

error_directory /usr/share/squid/errors/pt


#Controle de banda
acl redelocal src 192.168.0.0/24
#delay_pools 1
#delay_class 1 2
#delay_parameters 1 224688/224688 35384/35384
#delay_access 1
http_access allow localhost
http_access allow redelocal

http_access deny all


8. Re: squid - onde estou errando???? [RESOLVIDO]

Rodrigo
rodrigom

(usa Debian)

Enviado em 04/04/2012 - 13:55h

Pode tirar o "-i eth0" do direcionamento da porta 80 para a 3128, deixa somente o "-s 192.168.."




9. Re: squid - onde estou errando???? [RESOLVIDO]

Marcelo Bernasconi dos Santos
mibetasigma

(usa Ubuntu)

Enviado em 04/04/2012 - 14:03h

rodrigom escreveu:

Pode tirar o "-i eth0" do direcionamento da porta 80 para a 3128, deixa somente o "-s 192.168.."



Rodrigo, deixei desta forma:

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

Mas, ainda não funcionou.


10. Re: squid - onde estou errando???? [RESOLVIDO]

Rodrigo
rodrigom

(usa Debian)

Enviado em 04/04/2012 - 14:29h

Tem que direcionar a rede toda tipo 192.168.0.0/24 e não somente um host como você fez..

:)


11. Re: squid - onde estou errando???? [RESOLVIDO]

Marcelo Bernasconi dos Santos
mibetasigma

(usa Ubuntu)

Enviado em 04/04/2012 - 14:41h

rodrigom escreveu:

Tem que direcionar a rede toda tipo 192.168.0.0/24 e não somente um host como você fez..

:)





YES!!!!! YES!!!!! YES!!!!!


Puxa vida, valeu Rodrigo!

Obrigadão!!!!








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts