Como instalar MRTG e SQUID no Ubuntu

Neste artigo estaremos vendo como instalar um servidor proxy com monitoramento dos acessos e do(s) link(s).A ambiente é o segunte:

  • Um servidor AMD Athlon 1800+, 768 MB de RAM DDR 2700, HD 120 GB
  • 3 placas de rede. 1 Via Rhine II (OnBoard – para rede secundária), 1 Realtek (acesso Internet) e 1 3Com para acesso da rede interna.
  • Servidor rodando Ubuntu Dapper-Drake 6.06 LTS.

Explicado o ambiente , vamos a instalação dos componentes.

Em primeiro lugar instale todas as atualizações de segurança do sistema. No prompt de comando pode rodar:

sudo apt-get update
sudo apt-get upgrade

Agora vamos acrescentar alguns reposítórios ao sources.list pardrão.

sudo cp /etc/apt/sources.list /etc/apt/bkp.sources.list
sudo vim /etc/apt/sources.list

O conteúdo do sources.list deve ser como do arquivo abaixo, habilitando alguns repositórios “universe“.

deb http://br.archive.ubuntu.com/ubuntu/ dapper main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ dapper main restricted
deb http://br.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb http://br.archive.ubuntu.com/ubuntu/ dapper universe
deb-src http://br.archive.ubuntu.com/ubuntu/ dapper universe
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
deb http://security.ubuntu.com/ubuntu dapper-security universe
deb-src http://security.ubuntu.com/ubuntu dapper-security universe

Após editar o sources.list vamos a instalação dos pacotes necessários.

sudo apt-get install squid bind9 apache2 php5 mysql-server mysql-client snmp snmpd mrtg sarg dhcpd3

Após instalar os pacotes necessários vamos configurá-los.

SNMP

O snmp é um protocolo utilizado para gestão da rede. Roda sobre o protocolo UDP. Atráves dele podemos recuperar dados de máquinas eremotas e com isso monitorar e planejar a rede. Mais informações em:

NET-SNMP1. Primeiro vamos criar os arquivos de configuração do snmp.

sudo touch /etc/snmp/snmpd.conf
sudo touch /etc/snmp/snmp.conf

2. Agora vamos editar os arquivos.

sudo vim /etc/snmp/snmpd.conf

3. O snmpd.conf deve ficar assim:
com2sec readonly default public
group MyROSystem v1 paranoid
group MyROSystem v2c paranoid
group MyROSystem usm paranoid group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
group MyRWGroup v1 readwrite
group MyRWGroup v2c readwrite
group MyRWGroup usm readwrite
view all included .1 80
view system included .iso.org.dod.internet.mgmt.mib-2.system
access MyROSystem "" any noauth exact system none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
syslocation UVA
syscontact lucianosds@gmail.com
disk / 10000
load 12 14 14

Para criar o conteúdo do snmp.conf usaremos este comando:

sudo vim /etc/snmp/snmp.conf

E o snmp.conf deve ficar como esta abaixo:

defaultport 161
defversion 2c
defcommunity public
printnumericenums 1
printnumericoids 1
suffixprinting 0

Agora é só habilitar o snmp com o seguinte comando:

/etc/init.d/snmpd restart

E você pode testar para ver se está tudo usando o snmpwalk.

snmpwalk -v 2c -c public localhost
SNMPv2-MIB::sysDescr.0 = STRING: Linux proxy 2.6.15-28-386 #1 PREEMPT Thu Feb 1 15:51:56 UTC 2007 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
SNMPv2-MIB::sysUpTime.0 = Timeticks: (66898) 0:11:08.98
SNMPv2-MIB::sysContact.0 = STRING: lucianosds@gmail.com
SNMPv2-MIB::sysName.0 = STRING: proxy
SNMPv2-MIB::sysLocation.0 = STRING: UVA
SNMPv2-MIB::sysServices.0 = INTEGER: 79
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (2) 0:00:00.02
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module to describe generic objects for network interface sub-layers
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.7 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.8 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.9 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (2) 0:00:00.02
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (2) 0:00:00.02
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (2) 0:00:00.02

Pronto! Agora já podemos passar a configuração do MRTG para monitorar os nossos links.

MRTG

O MRTG é um programa poderoso para monitoramento. Ele cria gráficos com os dados recolhidos, de forma que podemos visualizar dados de forma mais prática do que a númerica. Pode ser utilizado não somente para monitorar a velocidade da rede, mas também para monitorar acesso a servidores de páginas, emails, proxys, dados da saúde de um computador, como temperatura, “uptime”, espaço em disco, e assim por diante.

Para mais informações sobre o MRTG você pode procurar informações nestes sites:

Site Oficial do MRTG
Lista do Yahoo Goups – MRTG/BR

A configuração do MRTG é mais simples. Como ele já foi instalado com o apt-get no início do procedimento.

1. Para começar iremos criar um diretório que não é criado durante a instalação:
mkdir /var/lock/mrtg

2. Agora criaremos a arquivo de configuração do mrtg.
cfgmaker public@localhost /etc/mrtg.conf

3. Vamos verificar se foi criado o arquivo de agendamento no cron para rodar o script de forma automática.

cat /etc/cron.d/mrtg

O resultado será:

*/5 * * * * root if [ -x /usr/bin/mrtg ] [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg /var/log/mrtg/mrtg.log 2 fi

OBS.: Cuide para que o nome do arquivo de configuração seja igual ao que você criou.4. Se não aparecer nada, é só criar o arquivo usando o comando abaixo e dar permissão de execução. O conteúdo deve ser o que foi descrito acima:
sudo vim /etc/cron.d/mrtg
sudo chmod 755 /etc/cron.d/mrtg

5. Pronto, agora iremos criar a página de acesso para os gráficos.
sudo indexmaker /etc/mrtg.conf /var/www/mrtg/index.html

Agora é só utilizar a página do MRTG para monitorar a qualidade da sua rede.

DHCPD3

Iremos agora configurar o servidor dhcp da rede. Ele tem a função de automaizar a distribuiçao de IP. É útil para rede com alguns computadores, já que ao mudar um parâmetro da rede como o servidor DNS, este valor é atualizado em todas as máquinas que requisitam IP para este servidor.

1. Vamos fazer um backup do arquivo de configuração e editá-lo:
cp /etc/dhcp3/dhcpd.conf /etc/dhcpd3/bkp.dhcpd.conf
sudo vim /etc/dhcp3/dhcpd.conf

2. O copie o conteúdo abaixo e cole no arquivo. Lembrando que você deve adequá-lo ao IP da sua rede.
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
option domain-name-servers 192.168.2.1, 200.221.11.100, 201.10.128.3;
option domain-name "perfectinfo.com.br";
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.100;
}

3. Agora é só iniciar o serviço:
/etc/init.d/dhcpd restart

SQUID

É hora do principal. A instalação do squid. O squid é um proxy de rede. Ele recebe as requisições do micro da rede, e se necessário ele faz a busca das informações fora da rede. Se a informação já houver sido requisitada antes ele as repassa do cache local, o que acelera sensivelmente a rede, e ainda protege a rede de ataques externos.

Mais informações abaixo:

Site Oficial Squid
LinuxMan – Squid Proxy
Yahoo Groups Squid

Como nós já instalamos o squid via apt-get, vamos apenas a configuração do mesmo. Esta configuração se dará da seguinte forma:

1. Vamos editar o squid.conf. O squid.conf é um arquivo complexo, com mais de 3500 linhas. Ele é extremamente bem detalhado e você deve lê-lo smpre que tiver dúvidas.

Após usar o egrep, podemos deixá-los com pouco mais de 20 linhas.
cp /etc/squid/squid.conf /etc/squid/squid.conf.bkp
egrep -v "^#|^$" squid.conf.bkp > squid.conf

2. O arquivo ficará assim:
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
hosts_file /etc/hosts
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
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 rede dst 192.168.0.0/24
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # 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
http_access allow localhost
http_access allow rede
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname tyrondier.lsantos.eti.br
coredump_dir /var/spool/squid

3. Pronto, nosso servidor já está configurado. Agora vamos colocá-lo para rodar:
/etc/init.d/squid restart

4. Agora o servidor já está rodando! Agora vamos configurá-lo para rodar de forma transparente.

Primeiro vamos acrescentar algumas linhas no final do nosso arquivo:
sudo vim /etc/squid/squid.conf

E adicione as seguintes linahs:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

E necessitamos agora redirecionar a porta 80 para a 3128, para evitar que algum espertinho desconfigure o proxy. isso é feito utilizando o iptables, o firewall do linux.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Se você tiver problemas com DNS, ou não souber configurá-lo, pode rediceionar as consultas DNS, mas isso é mais um quebra-galho. O melhor é configurar o servidor DNS para rodar no mesmo servidor do proxy.

Agora o nosso servidor rodar de forma transparente na rede, e não precisamos ser incomodados pelos usuários. E isto nos deixa prontos para podemor começar a brincar com tudo o que fizemos até aqui.

Referências:

UBUNTU
Guia UBUNTU
Ubuntu Forum
Net-SNMP
MRTG
SQUID
Underlinux
Viva o Linux!
Devin Eitch
Linuxman
Wikipédia
TLDP

powered by performancing firefox

Technorati Tags: , , , , , , , ,

Anúncios

7 Comentários on “Como instalar MRTG e SQUID no Ubuntu”

  1. CLEITON disse:

    Olá queria saber por quanto vc pode configurar para mim um servidor con cache par ameu link.

  2. Gleiser Wesley disse:

    Gostei muito do tutorial, muito rico em informação.

    Mas poderia me ajudar em criar uma lista de bloqueio de site e de nomes como sexo utlizando o squid?

    agradeço a atenção

  3. Arthur disse:

    RESPOSTA A Gleiser Wesley
    Retirei algo sobre bloquear sites em uma apostila e apenas copiei pra vc… espero q seje útil

    http_access

    Permite ou nega acesso ao serviço http baseado na lista de acesso
    (acl) definida. O uso de “!” indica que será a negação da acl.

    Se nenhuma das acls configuradas se encaixar na requisição em curso,
    será então aplicada a última regra. É importante sempre criar uma acl
    chamada all (ou descomentar a linha já existente) e colocar um
    `http_access deny all’.
    http_access allow|deny [!]nome …

    icp_access

    Permite ou nega acesso à porta ICP, baseando-se nas listas de acesso.

    icp_access allow|deny [!]nome …

  4. Arthur disse:

    para proibir uma página na net digite
    acl proibir_cracker url_regex cracker
    http_access deny proibir_cracker

    para bloquear máquinas especificas …por exemplo bloquear dowload de MP3
    acl mp3 url_regex mp3
    acl usr_ofensor src 10.0.0.95/255.255.255.255
    http_access deny usr_ofensor mp3

    espero q ajude Gleiser Wesley

    de Arthur

  5. […] de agradecer a leitura constante e crescente dos posts do Tim Web, da Instalação do Squid + MRTG e do The Dude. São posts que tem uma visualização constante e com números expressivos. Vamos a […]

  6. Eberson disse:

    Cara seguinte e pra mim tirar um relatorio de sites acessados pelos usuarios da rede como q faz?

  7. matheus disse:

    amigo, gostaria de saber como voce faz para configurar coisas do tipo: memoria, hd, uso do processador no mrtg.
    obrigado !


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s