PRÉ-REQUISITOS E PASSOS INICIAIS
Resolvi escrever este artigo por 2 razões, a primeira é que o mikrotik (do qual sou fã incondicional) não é um bom sistema para proxy (exclusivamente na minha opinião) quando comparado a qualquer outra distribuição, no caso a minha preferida é o Debian, o outro motivo é que precisei de muito tempo pra chegar a este “conjunto” e deixá-lo funcionando e tenho visto a necessidade de muitos em montar algo semelhante, então espero que este pequeno artigo possa ajudar.
TOPOLOGIA VISUAL
Nesta imagem, só pra entendermos melhor a topologia que usaremos, fica claro onde chega o link, é tratado pelo mikrotik, quando necessário é enviado ao segundo servidor que de forma isolada somente faz o armazenamento com o Squid, e enfim é enviado aos clientes.
Precisamos criar uma classe de rede em que somente existam o mikrotik e proxy, com uma classe que não permita uma terceira máquina.
Vá em Firewall, dentro da aba NAT, clique em + , na janela a seguir, na primeira aba chamada GENERAL, no campo CHAIN escolha a opção SRCNAT, na opção SRC. ADDRESS coloque 192.168.10.0/30, vá até a aba ACTION E selecione MASQUERADE.
Agora temos internet disponível para instalação do proxy na etapa que se segue.
INSTALAÇÃO E CONFIGURAÇÃO INICIAL DO PROXY
# apt-get update
# apt-get install squid
Este comando atualiza as listas de fontes e baixa tudo que é necessário para que o proxy funcione, e instala também.
Seu Debian já esta ativo, falta configurá-lo.
CONFIGURANDO O SQUID
#Squid.conf gerado por Datanet Soluções – Andre A. Ferreira
#Contato (35) 8857-3763
#
#Script gerado para configuração simples com mikrotik em paralelo com
# regras de segurança, iptables, etc. executadas no mikrotik.http_port 5128
visible_hostname webproxy
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
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70 #protocolo gopher antigão
acl Safe_ports port 210 #whais
acl Safe_ports port 1024-65535 #todas as outras portas
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 #multi http
acl Safe_ports port 901 #acesso 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
#permissão de acesso ao proxy, troque 0.0.0.0/0 pela sua
#classe de rede ou classes separadas por espaços.
acl redelocal src 192.168.10.1
http_access allow localhost
http_access allow redelocal
#bloquear todos outros acessos.
http_access deny all
#memoria reservada para o cache, coloque um valor de preferencia 40%
# do total da sua maquina, e não mais.
cache_mem 512 MB
#máximo tamanho dos arquivo cache na memoria
maximum_object_size_in_memory 128 KB
#máximo tamanho dos arquivo cache no hd
maximum_object_size 20 MB
minimum_object_size 0 KB
#regra que começa a esvaziar / substituir arquivos no cache em 90%
cache_swap_low 90
cache_swap_high 95
#indicação de localização da pasta de arquivos cache e em sequência valor
#total em MB de espaço no hd a ser usado pelo cache, numero de pastas, e
#numero de subpastas do cache.
cache_dir ufs /var/spool/squid 24048 256 512
#intervalos de tempos que o proxy verificara os arquivos dos site acessado
#conferem com o do cache, o valor 4560 significa 04 dias
refresh_pattern ^ftp: 15 20% 4560
refresh_pattern ^gopher: 15 0% 4560
refresh_pattern . 15 20% 4560
Entre no arquivo /etc/squid/squid.conf e copie/cole o script acima.
Como está bem comentado ele pode ser alterado por você mesmo para ajustá-lo por exemplo ao tamanho do seu hd.
Vamos agora a terminar a configuração no mikrotik na próxima página…
TERMINANDO A CONFIGURAÇÃO NO MIKROTIK
Vamos supor que a rede que você tem configurada para seus clientes é 10.0.0.0/24 (cliente 1 = 10.0.0.2/24, cliente 2 =10.0.0.3/24 etc…), também vamos pegar o primeiro ip desta classe como o configurado em IP ADDRESS ou seja 10.0.0.1/24.
Precisamos primeiro permitir que esta classe acesse o proxy:
Vá em IP > WEB PROXY, na aba ACCESS clique em +, já janela seguinte adicione a classe 10.0.0.0/24 no campo SRC-ADDRESS, na opção action deixe em ALLOW.
Agora vamos barrar qualquer outra classe para acesso ao proxy:
Clique novamente no + e na deixe todos os campos como estão, somente altere a opção action para DENY.
Precisamos agora direcionar todo o trafego da porta 80 para o proxy, vá em IP > FIREWALL > aba NAT clique em + e coloque exatamente como esta na imagem abaixo:
Agora temos que bloquear o acesso externo ao proxy, esta regra é muito importante, clique na aba FILTER RULES e clique no +, coloque exatamente como na figura abaixo:
CONSIDERAÇÕES FINAIS
# apt-get install ssh
Pronto, o procedimento descrito acima já é possível e você já pode descartar a necessidade de uso de um teclado e monitor para a máquina Debian.
A segurança da máquina proxy (Debian / squid) é afetada somente pelo script de configuração de Firewall do seu mikrotik, toda segurança que você tiver no firewall também será aplicada a máquina do proxy, já que ela está sob um nat e não possui ip válido.