PROXY EM PARALELO COM O MIKROTIK

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.

Claro que para esta montagem seu servidor (roteador) tem que ser mikrotik versão 3.X, tendo uma placa onde recebe o link da operadora, uma placa exclusiva para comunicação com o proxy (ponto a ponto) e uma terceira que servirá o acesso ao clientes diretamente. Não vamos nos prender a configuração dos clientes, controle de clientes, controle de banda, nem a entrada de link , nem load balance etc, mas trataremos neste artigo supondo que seu servidor já tenha isto configurado e funcionando, vamos tratar as configurações necessárias para que o mikrotik controle o proxy, e o computador onde estará o proxy com Debian.

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.

 

ADICIONANDO AS REGRAS AO MIKROTIK PARA “CONVERSAR” COM O PROXY

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.

Em IP > ADDRESSES clique no + e adicione um ip 192.168.10.1/30, na opção interface escolha a placa de rede que esta ligada fisicamente ao proxy (ex: ether2).Agora precisamos dar internet ilimitada a esta classe, de forma que seu proxy possa ser abastecido de link com internet pra todos seus clientes, mas note, não fazemos nenhuma limitação de banda na entrada de link do servidor proxy, mas seu mikrotik deve fazer esta limitação para os clientes por algum servidor habilitado, hotspot (portal captive) ou pppoe etc. A criação destes servidores é tópico para um outro artigo.

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

 

Como citado antes, este servidor precisa somente do sistema básico, então baixe o cd do Debian intitulado netinstall, procure (http://www.debian.org/CD/http-ftp/#stable) a versão para o seu processador, instale somente o sistema básico.IMPORTANTE: Coloque o ip 192.168.10.2 com máscara de sub rede /30 (255.255.255.252), gateway 192.168.10.1 e dns 192.168.10.1, depois de instalado use o apt para instalar o Squid.

# 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

 

Temos agora que configurar o proxy, vou postar um exemplo bem simples agora de squid.conf, você poderá alterá-lo, mas configurações de segurança seriam desperdiçadas um vez que o mikrotik fará o controle.

#Inicio do script
#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

 

Agora temos que ajustar alguns parâmetros, com o winbox aberto vá em IP > WEB PROXY > SETTINGS.Confira na imagem como deverão ficar os campos:

Pronto, seu proxy tem comunicação com o mikrotik e está apto a atender clientes, vamos as configurações para que os clientes passem pelo proxy.

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:

Nas imagens acima, na aba GENERAL temos um campo marcado com um [!] escrito IP VÁLIDO DO SEU SERVIDOR, troque esta mensagem pelo IP válido que você está utilizando nesta máquina e mantenha o [!], no campo interfaces, onde na imagem aparece REDE_8 troque pela interface que atende diretamente seus clientes (ex: ether3).

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:

Prontinho, seu servidor mikrotik já está utilizando proxy em paralelo, na página seguinte teremos considerações importantes sobre uso.

 

CONSIDERAÇÕES FINAIS

 

A sua máquina em Debian (Squid) estará sendo acessada somente pelo mikrotik, então se você quiser acessar remotamente ela dentro da sua rede (rede de clientes) pode fazer via SSH de qualquer parte da rede (a menos que exista uma regra no seu firewall dizendo o contrário), porém quando o acesso é externo temos que primeiro utilizar o mikrotik, acessando remotamente pelo ip válido e pelo WINBOX, clicando no menu TELNET temos a opção de acesso por SSH, clique nela coloque o ip do seu servidor (192.168.10.2) o usuário abaixo (root), lembrando também que na opção de instalação do Debian você só instalou o sistema básico, então em via local (pelo teclado e monitor local) use os comandos:# apt-get update
# 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.

Rolar para cima