Você está na página 1de 10

Proxy em paralelo com o Mikrotik

Mikrotik montado em paralelo com proxy (Debian), sendo que todas as funções, rotas,
bloqueios etc são realizadas pelo mikrotik, só restando o serviço de armazenamento de dados
para o Debian, não sendo para tanto necessário nenhuma configuração de firewall nem
adicionais com iptables, tornando extremamente fácil a montagem, configuração e
manutenção.

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.
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.

#####################

#INSTALANDO O SQUID:

#####################

groupadd -g 3128 squid

useradd -c Squid -d /usr/local/squid -g squid -u 3128 squid

( setenv CFLAGS '-O6 -march=i686' ; ./configure \

--enable-err-languages=Portuguese \

--enable-default-err-language=Portuguese \

--enable-async-io \

--enable-cache-digests \

--enable-linux-netfilter \

--enable-htcp \

--prefix=/usr/local/squid )

make

make install

chown -R squid:squid /usr/local/squid

Edite o arquivo /etc/rc.d/rc.inet2 e inclua:

# Start the Squid Cache daemon:

if [ -x /usr/local/squid/sbin/squid ]; then

echo "Starting Squid Cacge daemon: /usr/local/squid/bin/squid"

/usr/local/squid/bin/RunCache&

Fi
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.

#################################################################

# squid.conf - atualizado em 16/02/2007 - Charles Silva

############################

# Configuracoes basicas:

############################

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin \?

no_cache deny QUERY

cache_swap_low 90

cache_swap_high 95

maximum_object_size 192880 KB

maximum_object_size_in_memory 512 KB

auth_param basic children 5

auth_param basic realm Squid proxy-caching web server

auth_param basic credentialsttl 2 hours

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern . 0 20% 4320

visible_hostname Charles.barbacena.com.br

dns_testnames www.barbacena.com.br

#############################

# Configuracoes da cache:

#############################
cache_dir aufs /usr/local/squid/cache 8000 64 64

cache_access_log /usr/local/squid/logs/access.log

cache_log /usr/local/squid/logs/cache.log

cache_store_log /usr/local/squid/logs/store.log

coredump_dir /usr/local/squid/var/cache

###########################

# Definicoes das 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 to_localhost dst 127.0.0.0/8

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 CONNECT method CONNECT

acl proibidos url_regex "/usr/local/squid/etc/proibidos.txt"

acl rede140 src 10.83.15.0/255.255.255.0

acl rede192 src 192.168.0.0/255.255.255.0


acl serial src 192.168.140.142

acl marina src 192.168.0.24

acl jp src 192.168.0.64

acl renata src 192.168.0.99

acl hotmail_domains dstdomain .hotmail.msn.com

acl ie6 browser MSIE[[:space:]]6

#########################

# Definicoes de acesso

#########################

http_access allow renata

http_access allow serial

http_access allow jp

http_access allow marina

http_access deny proibidos

http_access allow all !rede140

icp_access allow all !rede140

http_access deny all !rede192

icp_access deny all !rede192

header_access Accept-Encoding deny all

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_reply_access allow all


###############################

# Definindo o usuario do squid

###############################

cache_effective_user squid

cache_effective_group squid

#######################

# Configuracao HTTP

#######################

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy on

httpd_accel_uses_host_header on

ie_refresh on

####################

# Rotacionando Log

####################

logfile_rotate 8

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) .

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.

Script de firewall por completo também é assunto para outro artigo.

Bom pessoal, é isso, espero que gostem, apliquem, alterem para necessidade de vocês,
aplicando assim a finalidade deste artigo, copiem a vontade, não se esqueçam de mencionar
autoria e fontes.

Você também pode gostar