Página 1 de 3 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. A intenção desse artigo é mostrar como funciona a configuração básica de um servidor Mikrotik integrado à um proxy Squid rodando em um servidor Linux. A distribuição Linux usada aqui é o Ubuntu Server 10.04.

    A solução mostrada é simples e pode ser modificada sem complicações, serve para provedores e empresas que queiram controlar o conteúdo acessado por seus funcionários.
    O acesso dos usuários é monitorado e o Sarg se encarrega de montar os gráficos de acesso de cada usuário.

    O que eu usei aqui para montar esse artigo:
    Mikrotik 4.5
    QoS, Firewall e Gateway de rede.

    Ubuntu Server 10.04
    Proxy Squid e geração de relatórios com Sarg.

    Cliente Windows XP.

    Segue a topologia real usada:





    1. Configuração do Servidor Mikrotik

    Interfaces
    /ip address
    add address=172.16.200.1/30 broadcast=172.16.200.3 comment=Proxy disabled=\
    no interface=ether1 network=172.16.200.0
    add address=187.50.250.248/29 broadcast=187.50.250.255 comment=Wan disabled=\
    no interface=wlan1 network=187.50.246.248
    add address=192.168.0.1/24 broadcast=192.168.0.255 comment=Clientes disabled=\
    no interface=ether1 network=192.168.0.0

    Cache DNS
    /ip dns
    set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB \
    max-udp-packet-size=512 primary-dns=192.168.2.18 secondary-dns=\
    200.153.0.68
    /ip dns static
    add address=172.16.200.1 disabled=no name=dns-cache ttl=1d
    add address=192.168.0.1 disabled=no name=Clientes ttl=1d

    Controle de banda
    No exemplo estamos setando128k de upload e 256k de download para o Cliente do ip 192.168.0.100.

    /queue simple
    add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s comment="" \
    direction=both disabled=no dst-address=0.0.0.0/0 interface=all limit-at=\
    0/0 max-limit=128k/256k name="Cliente teste" parent=none priority=8 \
    queue=default-small/default-small target-addresses=192.168.0.100/32 time=\
    0s-1d,sun,mon,tue,wed,thu,fri,sat total-queue=default-small

    Firewall
    Criar a lista de endereço dos clientes:
    /ip firewall address-list
    add address=192.168.0.0/24 comment="Clientes do Proxy" disabled=no list=\
    clientes

    Habilitar Connection tracking:
    /ip firewall connection tracking
    set enabled=yes generic-timeout=10m icmp-timeout=10s tcp-close-timeout=10s \
    tcp-close-wait-timeout=10s tcp-established-timeout=1d \
    tcp-fin-wait-timeout=10s tcp-last-ack-timeout=10s \
    tcp-syn-received-timeout=5s tcp-syn-sent-timeout=5s tcp-syncookie=no \
    tcp-time-wait-timeout=10s udp-stream-timeout=3m udp-timeout=10s

    Nat para o servidor Linux:
    /ip firewall nat
    add action=masquerade chain=srcnat comment="Nat para Linux" disabled=no \
    src-address=172.16.200.0/30

    Regra da marcação de rota para os pacotes que irão para o Proxy:
    /ip firewall mangle
    add action=mark-routing chain=prerouting comment="Fluxo para o Proxy" \
    disabled=no dst-port=80 new-routing-mark=Proxy passthrough=no protocol=\
    tcp src-address-list=clientes

    Rotas
    /ip route
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
    172.16.200.2 routing-mark=Proxy scope=30 target-scope=10
    add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\
    187.50.250.249 scope=30 target-scope=10




    2. Configuração do Servidor Linux

    Falta agora configurar o Ubuntu Server, vamos lá:
    Estou partindo do princípio que você já instalou o Ubuntu Server, não vou abordar instalação de Sistema para simplificar o artigo.

    Iremos instalar os aplicativos necessários
    Configuração inicial:
    Endereço ip e rota

    # ifconfig eth0 172.16.200.2/30
    # route del default
    # route add default gw 172.16.200.1

    DNS
    # echo nameserver 172.16.200.1 > /etc/resolv.conf

    Instalação do squid 3:
    # aptitude update
    # aptitude install squid3

    Acesse o diretorio do squid3:
    # cd /etc/squid3

    Renomeie o seu squid.conf original:
    # mv squid.conf squid.conf_original

    Crie um novo squid.conf com o VI:
    # vi squid.conf

    Copie e cole o modelo abaixo:
    ------------------------------------------------------------------------------------------------------------------------------
    http_port 3128 transparent
    visible_hostname Brasil_Net

    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object

    # Caminho da pagina de erro em Portugues
    error_directory /usr/share/squid3/errors/Portuguese

    # Faixa de ip's da sua rede que serao permitidos:
    acl clientes src 192.168.0.0/255.255.255.0

    # Local dos arquivos de log
    cache_access_log /var/log/squid3/access.log
    cache_log /var/log/squid3/cache.log

    # Tamanho do arquivo de cache:
    maximum_object_size 80000 KB

    # Diretorio onde sera armazenado o cache das paginas:
    # 10000 e o numero em Megabytes
    cache_dir ufs /var/spool/squid3/ 90000 16 256

    # Usuario que executa o servidor Proxy
    cache_effective_user proxy

    # habilita permissao pra rede definida e bloqueia acessos vindos de
    # outros enderecos
    http_access allow clientes
    http_access deny all

    -------------------------------------------------------------------------------------------------------------------------

    Salve com ESC, :wq!
    Pronto o squid.conf está montado, você pode modificar como quiser.

    Iptables

    Limpar as tabelas de regras do iptables:
    # iptables -F
    # iptables -X
    # iptables -t nat -F
    # iptables -t nat -X
    # iptables -t filter -F
    # iptables -t filter -X
    # iptables -t mangle -F
    # iptables -t mangle -X

    Habilitar o roteamento:
    # echo 1 > /proc/sys/net/ipv4/ip_forward

    Configurar o iptables no Linux para redirecionar as requisições http para o Squid:

    # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


    Criando o script que vai inicializar esses comandos quando o Servidor for reinicializado:
    # vi nat.sh
    #!/bin/bash
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


    Salve com ESC, :wq!
    Dê permissão de execução:
    # chmod +x nat.sh



    Coloque esse script no diretório /etc/init.d/
    # mv nat.sh /etc/init.d


    3. Configuração da estação cliente

    Configuração da interface de rede
    Endereço IP: 192.168.0.100
    Máscara de sub-rede: 255.255.255.0
    Gateway: 192.168.0.1
    DNS Primário: 192.168.0.1

    Faça o teste de navegação, enquanto a página carrega vamos monitorar o log do Squid.
    No seu terminal do Ubuntu entre com o seguinte comando:
    # tail -f /var/log/squid3/access.log

    A saída deve ser parecida com essa:

    Repare onde eu marquei, é onde o Squid marca o seu IP, o tipo de requisição (GET) e a url acessada, que nesse caso é UOL - O melhor contedo, não se preocupe que o Sarg faz esse papel e gera os relatórios tudo bonitinho.

    4. Instalando o SARG
    # aptitude install sarg

    Entre no diretório do Sarg e edite o arquivo de configuração:
    O diretório pode ser /etc/sarg ou /etc/squid, para mudar isso somente se instalar na mão a partir dos fontes.

    # vi sarg.conf

    Alterei as seguintes linhas de acordo com minhas preferências:
    Linha 29: language Portuguese
    Linha 48: title "Relatorio de Acessos do Squid"
    Linha 143: output_dir /var/www/squid-reports

    Comando para gerar o relatório:
    # sarg -f /etc/sarg/sarg.conf

    Relatório gerado! Verificando:

    # cd /var/www/squid-reports/
    # ls
    Ele me retornou isso:
    2010Sep25-2010Sep26 images index.html

    Ele cria um diretório para cada dia, no meu caso tenho somente o do dia 25/09 que criei agora.

    Caso você queira um relatório para o mês todo pode usar a opção "-d".
    # sarg -f /etc/sarg/sarg.conf -d 01/09/2010-30/09/2010


    Vamos criar o script que vai gerar esse relatório todo dia, iremos coloca-lo no cron.daily:
    # vi sarg_diario.sh
    #!/bin/bash
    # Gera relatórios diários para o SARG
    DIA=`date +%d`
    MES=`date +%m`
    ANO=`date +%Y`
    /usr/bin/sarg -f /etc/sarg/sarg.conf -d $DIA/$MES/$ANO

    Salve com ESC, :wq!
    Dê permissão de execução:
    # chmod +x sarg_diario.sh

    Salve esse script no diretório /etc/cron.daily.

    Você consegue visualizar as páginas do Sarg pelo navegador de internet acessando da seguinte maneira:
    http://172.16.200.2/squid-reports

    Se o ip do seu servidor for diferente é só trocar.





    Pronto o sistema está configurado, só executar os testes agora, se algo der errado por favor releia todos os passos.

    E, por fim, segue um vídeo para download demonstrando o funcionamento disso: mk_squid.wmv - 4shared.com - file sharing - download movie file

    Por enquanto é só pessoal, abraço!

  2. Amigo muito bom, mais me tira uma duvida, com as URL grandes o sarg da problema ? Pois eu utilizei o sarg e com o tempo começou a da erro, pois a url era muito grande.



  3. Citação Postado originalmente por mktguaruja Ver Post
    Amigo muito bom, mais me tira uma duvida, com as URL grandes o sarg da problema ? Pois eu utilizei o sarg e com o tempo começou a da erro, pois a url era muito grande.
    Boa pergunta, nunca tive esse problema.. vou dar fazer uns testes!
    Valeu abraço!

  4. ok, o meu começa a da erro aparti do 5 dia. Pois as url era grande d+ e começa a da pau no sarg. Quando fazer uns teste ai nos da um feedback e me manda um MP. vlw



  5. Amigo com hotspot , vc teria a configuração ?






Tópicos Similares

  1. Respostas: 17
    Último Post: 26-04-2013, 17:19
  2. Web-proxy Mikrotik Ou Squid Em Linux
    Por MPFER no fórum Redes
    Respostas: 2
    Último Post: 18-04-2007, 22:05
  3. Respostas: 0
    Último Post: 16-07-2006, 21:31
  4. problemas com proxy squid, iptables
    Por computech no fórum Servidores de Rede
    Respostas: 0
    Último Post: 17-11-2004, 20:31
  5. E-mail com proxy squid limitado.
    Por tonton no fórum Servidores de Rede
    Respostas: 4
    Último Post: 01-10-2003, 17:05

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L