Buckminster
(usa Debian)
Enviado em 11/06/2014 - 01:43h
Nem sei por onde começar...
Vamos começar por aqui:
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
se o proxy é em uma máquina somente, porque tu colocou 3 redes locais?
Copiou e colou de algum link?
Além disso tu nem liberou ou bloqueou nenhuma dessas localnet:
http_access allow ou deny localnet
Isso no Squid é a mesma coisa que não definir tua rede interna (entenda-se por rede interna no teu caso a rede do IP da tua máquina).
E no Squid sempre precisa definir a rede interna.
Execute ifconfig e veja qual é o teu IP. Se for, por exemplo, 192.168.1.1 a tua rede é 192.168.1.0. Daí esa será tua localnet.
O que define uma regra no Squid não é a regra de criação da ACL, mas sim o conjunto da regra de criação com a regra de bloqueio/liberação.
Assim:
acl tal
http_access dny ou allow tal
Mas o aconselhável é criar todas as ACLs primeiro num bloco só e depois em outro bloco só (todas as http_access) bloquear ou liberar.
E depois tu colocou no final
http_access deny all
negando tudo.
Essa regra acima não está errada, ela deve ficar no final mesmo, mas antes deve ter as regras http_access relacionadas com as regras ACLs de criação.
E depis tu colocou
icp_access allow localnet
Essa regra acima somente vai permitir o acesso no protocolo icp, mas não no http.
O icp produz os "hits" (acertou) ou os "miss" (perdeu) no log do Squid (ICP, Internet Cache Protocol ou Protocolo de Cache de Internet)
Resumindo, deve vir as regras de criação das ACLs
acl tal
acl tal1
acl tal2
e depois
http_access allow tal
http_access deny tal1
http_access deny tal2
Executa squid -v ou squid --version ou squid3 -v ou squid3 ---version
e posta aqui a versão do teu squid.
Tu criou dois arquivos gigantescos sem necessidade (Iptables e Squid).
Arquivos grandes assim são para servidores com muitas máquinas na rede.
E isso aqui:
PARAR() {
# Limpando regras
LIMPAR
# Política Padrão
$IPT -P INPUT ACCEPT << tu não está limpando nada aqui, aqui tu está definindo a política padrão de aceitar.
$IPT -P OUTPUT ACCEPT << aqui também.
$IPT -P FORWARD ACCEPT << aqui também.
}
INICIAR() {
# Limpando regras
LIMPAR
# Política Padrão
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP
echo " * Starting Firewall iptables"
INICIAR
;;
stop)
echo " * Stopping Firewall iptables"
PARAR
;;
restart|reload)
echo " * Reloading Firewall iptables"
INICIAR
;;
E aí em cima está repetindo somente mudando as políticas padrões sem nenhuma necessidade. Ou seja, está dizendo para aceitar, depois para bloquear e depois para aceitar de novo. Isso não tem sentido.
E no Iptables nunca vi muito sentido em definir variáveis. Tu pode colocar direto
iptables regra...
Para quê criar um intermediário, ou seja, uma variável.
O Iptables por si só consome banda nos bloqueios e se tu colocar variáveis fica pior ainda.
Faça sempre teu script de forma mais simples e objetiva possível.
E vai lendo isso:
http://www.vivaolinux.com.br/artigo/Squid-Entendendo-um-pouco-as-configuracoes/
http://www.vivaolinux.com.br/artigo/Manual-traduzido-do-Squid/
http://www.vivaolinux.com.br/artigo/Manual-traduzido-do-Squid-Parte-2/
http://www.vivaolinux.com.br/artigo/Manual-traduzido-do-Squid-Parte-3/
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras