Funcionar squid - Resolvido

Iniciado por mgottfried, 03 de Janeiro de 2012, 21:37

tópico anterior - próximo tópico

mgottfried

Ola pessoal estou com problemas para fazer funcionar meu 1º servidor squid

minhas configurações

1º eth0 rede local ip 192.168.1.1
2º eth1 dhcp ligada ao modem
a configuração do squid a principio esta ok quando dou comando squid -z carrega ok

#Porta utilizada pelo squid
http_port 3128 transparent

#Nome do seu servidor (sem espaços)
visible_hostname nameserver.seudominio.com.br

#Memória utilizada para objetos em trânsito – Não mexer
cache_mem 64 MB

#Não altetar as linhas abaixo
maximum_object_size_in_memory 8 MB
maximum_object_size 8 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95

#Local onde sera armazenado o cache do squid
#O valor 1000 indica a quantidade em Mb que o cachê do squid #irá utilizar. Como podem ver, criamos 6 partições de cachê com 3Gb cada uma. Você adapta pro tamanho do seu HD.

cache_dir ufs /var/spool/squid/cache1 300 16 256
cache_dir ufs /var/spool/squid/cache2 300 16 256
cache_dir ufs /var/spool/squid/cache3 300 16 256
cache_dir ufs /var/spool/squid/cache4 300 16 256
cache_dir ufs /var/spool/squid/cache5 300 16 256
cache_dir ufs /var/spool/squid/cache6 300 16 256
#Local onde sera guardado os logs do squid
cache_access_log /var/log/squid/access.log
#Converte as mensagens geradas pelo squid par o Português
error_directory /usr/share/squid/errors/Portuguese
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
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 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 Safe_ports port 901 # SWAT
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
#Definiremos aqui as regras para bloqueio dos sites pelas #palavras adicionadas no arquivo block.txt
acl blockedsites url_regex -i "/etc/squid/sites_block.txt"
acl unblockedsites url_regex -i "/etc/squid/sites_free.txt"
http_access deny blockedsites !unblockedsites
#Aqui você irá definir o IP da sua rede interna
acl redelocal src 192.168.1.0/24
http_access allow redelocal
http_access allow localhost
# Bloqueia navegacao. So libera pra faixa definida na "acl redelocal".
http_access deny all



3º  redirecionamento

modprobe iptable_nat
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 | sudo tee  /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j REJECT
iptables -A FORWARD -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -d loginnet.passport.com -j REJECT
iptables -A INPUT -p tcp --syn -j DROP


4º firewall

#! /bin/bash
echo " INICIANDO FIREWALL "
# Ativa modulos

/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
echo "Carga dos Modulos OK!"
# Zera regras

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -F -t mangle
/sbin/iptables -X -t mangle
echo "Flush das regras OK!"
# Proxy Transparente

# Nessa linha iremos mascarar os pacotes de saída para internet.
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# Nessa regra iremos redirecionar todo tráfego da porta 80 da eth0 para a porta 3128 do squid.
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "Carga do Proxy Transparente OK!"

no pc esta pegando ip , configurei nas conexões de internet o ip do server squid e a porta 3128
aparece na tela do browser que o site foi bloqueado pelo squid tudo como é para ser
mas mesmos os sites para ser liberado não funciona.

zekkerj

Observe se vc está preenchendo corretamente o arquivo de lista branca "/etc/squid/sites_free.txt".
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

mgottfried

esta ok ,
acho que meu problema esta nas regras do iptables , mas não consigo identicar onde , quando executo o comando
sudo iptables -t nat -L -v -n
aparece tudo 0 .

zekkerj

Se aparece a mensagem do squid dizendo que o site foi bloqueado, então seu problema é no squid, não no firewall.
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

mgottfried

Chain PREROUTING (policy ACCEPT 8 packets, 1158 bytes)
pkts bytes target     prot opt in     out     source               destination         
    0     0 REDIRECT   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 3128

Chain OUTPUT (policy ACCEPT 5 packets, 697 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 2 packets, 312 bytes)
pkts bytes target     prot opt in     out     source               destination         
    3   385 MASQUERADE  all  --  *      eth1    0.0.0.0/0            0.0.0.0/0



sudo squid -D
2012/01/04 12:49:37| Squid is already running!  Process ID 659




zekkerj

Citaraparece na tela do browser que o site foi bloqueado pelo squid tudo como é para ser
Como eu disse... se aparece na tela do browser a mensagem do squid, é pq o problema está no squid, não no firewall.
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

mgottfried

encontrei o erro ...
#Definiremos aqui as regras para bloqueio dos sites pelas #palavras adicionadas no arquivo block.txt
acl blockedsites url_regex -i "/etc/squid/sites_block.txt"
acl unblockedsites url_regex -i "/etc/squid/sites_free.txt"
http_access deny blockedsites !unblockedsites

os sites fora das duas listas estão normais.
ja fiz a alteração e esta ok , valeu pela ajuda .
qual regra uso para bloquear todos os sites menos os listados no sites_free.txt

zekkerj

isso era pra estar funcionando, bloquear qualquer site que case com as expressões regulares listadas no primeiro arquivo, mas não no segundo.
Note que essas ACLs são do tipo "URL_REGEX", ou seja, elas recebem expressões regulares, não necessariamente nomes de arquivos. Assim, se vc escreve lá "www.google.com", ele vai achar o próprio site, mas vai achar também o site "www.www2google3com.com", pq ambos casam com a expressão regular "www.google.com". Numa expressão regular, alguns caracteres têm função especial --- p.ex. ".", "*", "+", "[", "(", "&", "$".

Uma forma parecida de vc escrever sua regra seria assim:

http_access allow unblockedsites
http_access deny blockedsites

Mas note que dessa forma, se vc quisesse fazer algum tipo de controle adicional nos sites da lista branca, não poderia.
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

mgottfried

Restaurei a regra e esta tudo ok,
valeu pela ajuda .....