Reviews: REVIEW BLACKBOX 0.70

Artigo retirado do site UnderLinux.com.br

Para come?ar vou explicar os motivos desse documento:
1 – Porque eu adoro esse WM
2 – Muita gente tem d?vidas sobre o BB
3 – Muita gente n?o sabe o que tem de novo nessa vers?o e quer saber se compensa migrar
4 – Mostrar que apesar dele ter uma janela totalmente limpa, nao quer dizer que ele n?o tenha suas ferramentas, alias isso ? o que mais mais tem.

Primeramente vou explicar as principais mudan?as dele, o Changelog completo est? dispon?vel em:
http://cvs.sourceforge.net/viewcvs.py/blackboxwm/blackbox/ChangeLog?rev=HEAD

Suport a Xft
O Xft ? o respons?vel pelo anti-aliasing das fontes, para quem n?o sabe, anti-aliasing ? para evitar que as fontes fiquem serrilhadas, deixando elas mais nitidas.

Suporte a texturas de bordas
Agora qualquer textura pode ter largura e cores que quiserem

O ~/.blackboxrc agora n?o ? escrito na entrada ou saida do BB.
Agora ele ? apenas escrito quando alguma mudan?a for feita. Isso quer dizer que voc? pode editar o arquivo com o BB rodando.

Suporte para always-on-top e always-on-bottom
Caso voc?s nao conhe?am isso ? para deixar uma janela sempre acima ou abaixo das outras de uma maneira fixa. Mas agora voc? me pergunta para que usar isso? Simples, existem v?rios motivos, por exemplo, o gkrellm, voc? pode deixar ele always-on-top para ver o que ocorre com sua m?quina.

Suporte a tela cheia.
? tela cheia hein! N?o tela maximizada (isso ele jah tinha :P)

Suporte a todos os tipos de janelas EWMH(Extended Window Manager Hints)
Por exemplo, janelas de m?ltiplos desktops, docks,etc.

Agora ? poss?vel desabilitar a barra de ferramentas completamente.
Por que isso ? util? ? ?til em uma m?quina que n?o deve ser “fu?ada”.

Quando a barra de ferramentas n?o estiver sendo usada, ela ser? removida da janela, e ser? criada novamente quando for necess?rio.

O formato dos estilos(styles) mudou. Voc? pode utilizar a ferramenta, bbstyleconvert, para migrar os estilos da versao 0.65 para 0.70. (Se alguem encontrar essa ferramenta me avise, porque eu nao achei)

O formato do arquivo ~./blackboxrc mudou, mas ele ser? automaticamente convertido pelo pr?prio blackbox.

Como voc?s viram foram umas s?rie de mudan?as, umas mais simples, e outras muito importantes. Agora vamos come?ar a falar dos Addons do BB. N?o vou falar de todos pois s?o muitos, ent?o vou me ater aos que funcionam nesta vers?o.

BBKEYS: http://bbkeys.sourceforge.net/
Com ele voc? pode configurar as teclas de atalho para o BB, por exemplo (ALT+F4 fecha a janela). A vers?o 0.9.0 ? recomendada para essa vers?o do BB.
A instala??o dele ? bem simples:

./configure –prefix=/usr && make && make install
Depois copie o arquivo:
cp /usr/share/bbkeys/bbkeysrc ~/.bbkeysrc

Para executar o bbkeys execute: bbkeys&

DOCKER: http://icculus.org/openbox/2/docker/docker-1.5.tar.gz
O docker ir? ser carregado no BB e ir? funcionar como um “system tray” ou mais conhecido como area de notifica??o. Programas como o GAIM ir?o reconhecer o docker e ir?o funcionar com ele normalmente como se fosse qualquer outro ambiente X. Como assim? Por exemplo, se voc? minimizar o GAIM e receber uma mensagem, ela ir? aparecer no docker.
NOTA: N?o se assuste se voc? instalar o docker e n?o aparecer nada quando voc? o executar, ele s? ficar? “vis?vel” se alguma aplica??o que utilize docking estiver rodando.
A instal?o dele ? ainda mais simples:

make && make install (como root)

Apenas com essas duas ferramentas ? poss?vel ter um desktop limpo, r?pido, muito est?vel e que requer um m?nimo da sua m?quina. Se alguem quiser outros aplicativos para o BB basta acessar: http://blackboxwm.sourceforge.net/BlackboxAddons/Software

AAAAA Como eu fa?o para esses programas iniciarem automaticamente?
Muito f?cil, edite o arquivo ~/.xinitrc
O meu est? assim:

gkrellm & bbkeys &
exec /usr/bin/blackbox

Assim ele inicia automaticamente o gkrellm e o bbkeys

Ainda est? em d?vida se deve utilizar o BB? Ent?o veja alguns screenshots da minha tela e mude de id?ia 😛 (voc? nunca mais vai querer saber do KDE)

Screen1
Screen2
Screen3
Screen4

Espero que isso tenha esclarecido suas d?vidas, caso ainda tenha alguma pergunta utilize o forum 😉

Posted in Sem categoria

Clonando de HD's

Essa ? para os adminstradores de redes que precisam fazer um clone de hd para qualquer fins seja backup de seguran?ae troca de hd, sem ter que parar o que a m?quina est? fazendo, seja ela um servidor de emails, web, GW de rede local ou wireless.

Lembrando q os hds n?o precisam ser do mesmo tamanho, apenas o hd origem deve suportar o tamanho que est? sendo usado no hd destino.

O ?nico momento em que vc precisa parar a maquina, ? para colocar o hd destino na m?quina como slave, inicializar a m?quina tudo normal vamos a m?o na massa.

Plataforma usada :
AMD Athlon XP 2.2 c/ 512 RAM HD Maxtor 40G 7,200 RPM
Slackware 9.1 kernel 2.4.22 c/ 2 parti??es hd origem
hda1 / ext3
hda2 swap

1? Passo, Particione seu hd destino preferencialmente da maneira que est? no de origem, utilizei no evento o particionador CFDISK.
hdb1 /
hdb2 swap

2? Passo, Formate a parti??o /
mke2fs /dev/hdb1

3? Passo, Ative a parti??o /
tune2fs -j /dev/hdb1

4? Passo, Formate a parti??o Swap
mkswap /dev/hdb2

5? Passo, Crie a pasta na raiz do sistema onde voc? ir? montar a filesystem do hd destino.
mkdir /novohd

6? Passo, Monte o FileSystem na parti??o /
mount -t ext3 /dev/hdb1 /novohd

7? Passo , Clonando o HD :
tar cf – –exclude novohd ./ | tar xvfp – -C/novohd/

Espero que esse artigo seja ?til a todos …

Clonando de HD’s

Essa ? para os adminstradores de redes que precisam fazer um clone de hd para qualquer fins seja backup de seguran?ae troca de hd, sem ter que parar o que a m?quina est? fazendo, seja ela um servidor de emails, web, GW de rede local ou wireless.

Lembrando q os hds n?o precisam ser do mesmo tamanho, apenas o hd origem deve suportar o tamanho que est? sendo usado no hd destino.

O ?nico momento em que vc precisa parar a maquina, ? para colocar o hd destino na m?quina como slave, inicializar a m?quina tudo normal vamos a m?o na massa.

Plataforma usada :
AMD Athlon XP 2.2 c/ 512 RAM HD Maxtor 40G 7,200 RPM
Slackware 9.1 kernel 2.4.22 c/ 2 parti??es hd origem
hda1 / ext3
hda2 swap

1? Passo, Particione seu hd destino preferencialmente da maneira que est? no de origem, utilizei no evento o particionador CFDISK.
hdb1 /
hdb2 swap

2? Passo, Formate a parti??o /
mke2fs /dev/hdb1

3? Passo, Ative a parti??o /
tune2fs -j /dev/hdb1

4? Passo, Formate a parti??o Swap
mkswap /dev/hdb2

5? Passo, Crie a pasta na raiz do sistema onde voc? ir? montar a filesystem do hd destino.
mkdir /novohd

6? Passo, Monte o FileSystem na parti??o /
mount -t ext3 /dev/hdb1 /novohd

7? Passo , Clonando o HD :
tar cf – –exclude novohd ./ | tar xvfp – -C/novohd/

Espero que esse artigo seja ?til a todos …

Posted in Sem categoria

Gerando outro arquivo de configura??o para o X

Estava pensando se no Linux outro xorg.conf n?o poderia ser gerado pelo pr?rio X, rodando pela WEB encontrei em um site l? de fora algo que ajudaria pacas, BASTA digitar o seguinte comando logado como root:

Isso resolve uma s?rie de problemas, no meu caso foi o mouse que ficava no canto direito superior da tela quando eu entrava em algum ambiente.

$su
# X -configure

Ele faz uma chacagem de teclado, placa de v?deo e mouse (aquele que cisma em ficar no canto da tela quando se entra em algum ambiente tipo KDE e etc). O danadinho vai gerar o xorg.conf.new e pronto basta substitu?-lo no diret?rio /etc/X11

(Utilizando o comando mv para mov?-lo)

Para que as configura??es possam entrar em vigor, reinicie o X.

Posted in Sem categoria

Usando o comando AWK

O AWK ? um filtro no qual possui uma linguagem pr?pria no qual o torna muito mais que um simple comando para filtragem de conte?do.

Neste tutorial irei exemplificar algumas das t?cnicas de filtragem assim como o significado de cada flag de comando.

Exemplo 1)

Imagine que voc? queira criar uma lista com todos os usu?rio ativos em seu sistema e voc? precisar? dos nomes dos usu?rio e os UID e GID respectivamente, para isso usaremos o comando AWK para filtrar os devidos campos:

cat /etc/passwd |awk -F: ‘{ print $1 “:” $3}’

No caso acima usamos o comando cat para lista o conte?do do arquivo /etc/passwd e redirecionando a sa?da para o comando AWK atrav? do caractere pipe.

-F: = onde -F: especifica que o caractere “:” ? servir? como caracter separador

‘{ print $1 “:” $3}’ = aqui estamos especificando que o comando “print” imprima os primeiros “$1” argumentos da sa?da padr?o, os “$3” terceiros e usando como separador de conte?do o caractere “:”.

Exemplo 2)

Neste segundo exemplo iremos filtrar a saida do comando ps -aef especificando qual processo cada usu?rio esta executando em nosso SO.

ps -aef | awk ‘{ print “Usuario: ” $1 ” PID: ” $2 ” processos: ” $8 }’

Neste exemplo usamos o AWK para filtrar a sa?da padr?o do comando ps -aef especificando para que ele imprima os campos 1,2 e 8 adicionando os coment?rios entre eles.

Exemplo 3)

Os par?metros “NF” e “NR” possuem algumas particularidades onde:

NF = possibilita sabermos quantos campos cada linha ser? classificada, veja o exemplo abaixo:

awk -F: ‘{ print NF}’ /etc/passwd |tail -n1

com o comando acima podemos descobrir que o arquivo /etc/passwd ser? classificado em 7 campos utilizando o caracter separador “:”

NR = par?metro usado para imprimir p n?mero da linha ou da sa?da, veja o exemplo:

ls | awk ‘{ print NR “: ” $0}’

aqui criamos uma listagem de diret?rio numerada usando o par?metro NR.

Exemplo 4)

Outra funcionalidade do AWK ? criar vari?veis de comando podendo acumular valores dos dados passados, no exemplo abaixo iremos calcular a quantidade de blocos que nosso disco r?gido possui:

df | awk ‘{ total = total + $2; print total}’

A variav?l total receber? o valor dela acumulado do segundo campo do comando “df” que corresponde a quantidade de blocos do disco.

Este s?o apenas alguns exemplos simples que este poderoso comando pode executar mais informa??es poderam ser encontrados com o comando man ou info.

Espero que tenham aproveitado,

at? a pr?xima

Posted in Sem categoria

Configurando o Lilo e o Grub

Este artigo foi retirado do site Dicas-L da Unicamp.

Por Carlos E. Morimoto (http://guiadohardware.net)

O lilo e o grub disputam o posto de gerenciador de boot
default entre as distribui??es Linux. O lilo ? o mais
antigo e mais simples de configurar, enquanto o grub ? o
que oferece mais op??es. Mas, ao inv?s de ficar discutindo
qual ? melhor, vamos aprender logo a configurar e resolver
problemas nos dois 🙂

O lilo utiliza um ?nico arquivo de configura??o, o
/etc/lilo.conf. Ao fazer qualquer altera??o neste arquivo
? preciso chamar o execut?vel do lilo, o “/sbin/lilo” ou
simplesmente “lilo” para que ele leia o arquivo e salve
as altera??es.

Aqui vai um exemplo comentado do arquivo de configura??o
do lilo, que voc? pode usar como modelo:

# A op??o abaixo (quase sempre a primeira linha do arquivo) indica aonde o lilo
# ser? instalado. Indicando um dispositivo, como em “/dev/hda” ele ? instalado
# na MBR do HD. Indicando uma parti??o, como em “/dev/hda1” ele ? instalado
# no primeiro setor da parti??o. Fazendo isso o sistema n?o inicializar? diretamente,
# voc? precisar? configurar o gerenciador de boot de outro sistema instalado
# para carregar o atual.

boot=/dev/hda
# (caso voc? use um HD Serial ATA, e o lilo n?o esteja sendo instalado corretamente,
# experimente mudar esta op??o de “/dev/hda” para “/dev/sda”, a forma como eles
# s?o detectados nas vers?es recentes do Kernel 2.6
# Esta op??o ativa o uso de uma imagem como fundo no menu de boot do lilo.
# Este recurso ? opcional:

bitmap = /boot/kurumin.bmp
bmp-colors = 255,9,;9,255,
bmp-table = 61,15,1,12
bmp-timer = 73,29,255,9

# RESOLU??O do V?DEO
# Aqui vai o c?digo que determina a resolu??o do v?deo, em modo texto (usando frame-
# buffer) e tamb?m no modo gr?fico, caso seja usado o driver de v?deo “fb” no arquivo
# de configura??o do X.
# O default na maioria das distribui??es ? “vga=788”, que faz o sistema usar resolu??o
# de 800×600, que ? compat?vel com quase todas as placas de v?deo.
# Se voc? quer usar resolu??o de 1024×768, mude a op??o para: vga=791
# Se voc? quer usar resolu??o de 640×480, mude a op??o para: vga=785
# Se a sua placa de v?deo n?o suporta frame-buffer e voc? quer de volta a velha tela de
# texto padr?o, mude a op??o para: vga=normal
# OBS: Se voc? tem uma placa GeForce 4 ou GeForce 4 MX, deixe esta op??o em “788”,
# pois elas n?o suportam frame-buffer a 1024×768.

vga=788

# Esta linha indica qual ser? o sistema operacional default, caso voc? tenha dois ou mais
# instalados em dual-boot:

prompt
default=Kurumin

# Tempo de espera antes de entrar no sistema padr?o, em d?cimos de segundo (o
# padr?o ? 10 segundos). O valor m?ximo ? 30000 (3.000 segundos), n?o use um

#n?mero maior que isto, ou o lilo acusar? o erro e n?o ser? gravado corretamente:

timeout=100

# Aqui v?o os par?metros do Kernel. Se voc? usa deseja desativar o suporte a apci,
# para solucionar problemas, por exemplo, adicione a op??o “acpi=off”

append = “splash=silent apm=power-off nomce quiet devfs=mount”

# As linhas abaixo indicam a localiza??o do execut?vel principal do Kernel e do arquivo
# initrd, caso seja usado um. Esta ? a se??o que ? duplicada ao instalar um segundo
# Kernel

image=/boot/vmlinuz-2.6.8.1-kanotix-10
label=Kurumin
root=/dev/hda1
read-only

Isso pode ser solucionado facilmente, editando o
“/etc/lilo.conf” do Mandrake, para que ele seja reinstalado
na parti??o e adicionando as duas linhas que chamam outros
sistemas no lilo do Kurumin.

Voc? pode editar o lilo do Mandrake e regrav?-lo
rapidamente atrav?s do pr?prio Kurumin (ou outra
distribui??o instalada), ou dando boot com um CD do Kurumin
ou Knoppix.

D? boot pelo CD e abra um terminal. Defina a senha de root
usando o comando “sudo passwd”. Agora vire root usando o
comando “su” seguido da senha escolhida.

Monte a parti??o onde o Mandrake est? instalado:

# mount -t reiserfs /dev/hda1 /mnt/hda1

Agora usamos o comando chroot para “entrar” dentro da
parti??o montada, a fim de editar o lilo.conf e gravar
o lilo. Todos os comandos dados dentro do chroot s?o
na verdade executados no sistema que est? instalado na
parti??o.

? preciso Indicar o sistema de arquivos em que a parti??o
est? formatada no comando acima, caso contr?rio o chroot
vai dar um erro de permiss?o.

# chroot /dev/hda1

Agora use um editor de texto em modo texto, como o mcedit
ou o joe para alterar o arquivo “/etc/lilo.conf” e chame
o execut?vel do lilo para salvar as altera??es. Depois de
terminar, pressione Ctrl+D para sair do chroot.

# mcedit /etc/lilo.conf
# lilo

Configurando o grub
===================

Muitas distribui??es permitem que voc? escolha entre usar
o lilo ou o grub durante a instala??o. Outras simplesmente
usam um dos dois por padr?o. De uma forma geral, o grub
oferece mais op??es que o lilo e inclui um utilit?rio,
o update-grub que gera um arquivo de configura??o b?sico
automaticamente. Por outro lado, a sintaxe do arquivo
de configura??o do grub ? mais complexa o que o torna
bem mais dif?cil de editar manualmente que o do lilo. O
grub inclui ainda um prompt de comando, novamente nenhum
exemplo de amigabilidade.

De resto, os dois possuem a mesma e essencial fun??o. Sem
o gerenciador de boot o sistema simplesmente n?o
inicializa. 🙂

O grub usa o arquivo de configura??o
“/boot/grub/menu.lst”. Este arquivo ? lido a cada boot,
por isso n?o ? necess?rio reinstalar o grub ao fazer
altera??es, como no caso do lilo.

Para entender melhor como o grub funciona, vamos ver como
instal?-lo no Kurumin, substituindo o lilo que ? usado
por padr?o.

Em primeiro lugar, voc? precisa instalar o pacote do
grub via apt-get. Ele n?o possui depend?ncias externas,
inclui apenas os execut?veis principais. Voc? pode at?
mesmo arriscar compilar a vers?o mais recente, baixada no
site do projeto.

# apt-get install grub

Depois de instalar, crie a pasta “/boot/grub/” e use o
“update-grub” para gerar o arquivo “menu.lst”. Basta
responder “y” na pergunta e o arquivo ? gerado
automaticamente:

# mkdir /boot/grub
# update-grub

Testing for an existing GRUB menu.list file…
Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) y
Searching for splash image… none found, skipping…
Found kernel: /boot/vmlinuz-2.6.8.1-kanotix-10
Found kernel: /boot/memtest86.bin
Updating /boot/grub/menu.lst … done

Agora s? falta instalar o grub na MBR usando o comando:

# grub-install /dev/hda

Ao gravar o grub, ele naturalmente substitui o lilo ou
qualquer outro gerenciador de boot que esteja sendo usado.

Se voc? mudar de id?ia mais tarde e quiser regravar o lilo,
subscrevendo o grub, basta cham?-lo novamente:

# lilo

Assim como no caso do lilo, o arquivo de configura??o
do grub inclui uma se??o separada para cada sistema
que aparece no menu de boot. O update-grub n?o ? muito
eficiente em detectar outros sistemas instalados,
por isso depois de gerar o arquivo voc? ainda precisar?
adicionar as linhas referentes a eles no final do arquivo
“/boot/grub/menu.lst”.

Para que o grub inicialize uma c?pia do Windows, instalada
na primeira parti??o, /dev/hda1, adicione as linhas:

title Windows
rootnoverify (hd0,0)
chainloader +1

Elas equivalem ? op??o “other=/dev/hda1” que seria usada no
arquivo do lilo. A linha “title” cont?m apenas a legenda
que ? mostrada no menu de boot. O que interessa mesmo ? a
linha rootnoverify (hd0,0), que indica o HD e a parti??o
onde o outro sistema est? instalado. O primeiro n?mero
indica o HD e o segundo a parti??o dentro deste. Na
nomenclatura adotada pelo grub temos:

/dev/hda = 0
/dev/hdb = 1
/dev/hdc = 2
/dev/hdd = 3

As parti??es dentro de cada HD s?o tamb?m nomeadas a partir do zero:

/dev/hda1 = 0,0
/dev/hda2 = 0,1
/dev/hda3 = 0,2
/dev/hda4 = 0,3
/dev/hda5 = 0,4
/dev/hda6 = 0,5

etc…

Se voc? quisesse que o grub iniciasse tamb?m uma instala??o
do Mandrake no /dev/hda3, cujo lilo (ou grub) foi instalado
na parti??o, adicionaria as linhas:

title Mandrake
rootnoverify (hd0,2)
chainloader +1

A linha “chainloader +1” especifica que o grub vai apenas
chamar o gerenciador de boot instalado na parti??o e deixar
que ele carregue o outro sistema, assim como fizemos ao
editar o arquivo do lilo.

Voc? pode usar o grub para carregar diretamente o outro
sistema, sem precisar passar pelo outro gerenciador de
boot. Neste caso voc? usaria as linhas:

title Mandrake
root (hd0,2)
kernel /boot/vmlinuz-2.6.8 root=/dev/hda3 ro
savedefault
boot

Veja que neste caso voc? precisa especificar a localiza??o
do execut?vel do Kernel dentro da parti??o. Voc? pode
especificar tamb?m op??es para o Kernel e usar um arquivo
initrd, caso necess?rio, como neste segundo exemplo:

title Mandrake
root (hd0,2)
kernel /boot/vmlinuz-2.6.8 root=/dev/hda3 ro vga=791 acpi=off splash=verbose
initrd /boot/initrd.gz
savedefault
boot

Assim como no caso do lilo, voc? pode usar um CD do Kurumin
ou Knoppix para reinstalar o grub, caso ele seja subscrito
por uma instala??o do Windows ou outra distribui??o Linux.

Neste caso, depois de dar boot pelo CD, voc? s? precisa
montar a parti??o onde o sistema est? instalado, como em:

# mount -t reiserfs /dev/hda2 /mnt/hda2

E usar o chroot para obter o prompt de comando do sistema
que est? recuperando:

# chroot /mnt/hda2

No prompt, voc? precisa apenas editar o arquivo
“/boot/grub/menu.lst”, ou ger?-lo novamente usando
o comando “update-grub” e reinstalar o grub, usando
o comando:

# grub-install /dev/hda

Posted in Sem categoria

MRTG – Instala??o e Configura?

Artigo retirado do site Dicas-L da Unicamp.

Colabora??o: Alexandre Takahashi

O MRTG (Multi Router Traffic Grapher) ?, inicialmente,
uma ferramenta desenvolvida para monitorar o tr?fego em
links de rede. Escrito em PERL, utiliza o SNMP para
ler os dados dos roteadores e um programa em C para
criar os gr?ficos, que s?o mostrados em p?ginas HTML.
O MRTG para *nix ? distr?buido em C?digo Fonte, assim,
voc? dever ter um compilador C e o PERL instalado em sua
m?quina, na maioria das distribui??es *nix, ambos j? est?o
dispon?veis na instala??o padr?o, se n?o estiverem, leia
o item Pr?-Requisitos

Pr?-Requisitos *nix
===================

GCC
===

O compilador GCC (GNU C Compiler) esta dispon?vel na instala??o padr?o da maioria
dos sistemas *nix, ? necess?rio para compilar o MRTG.

Para procurar o gcc

whereis gcc

Em distribui??es baseadas em RPM ? possivel procurar pelo comando

rpm -qa | grep gcc

Caso voc? n?o tenha o gcc instalado, fa?a o download em

http://gcc.gnu.org/

Perl
====

Grande parte do MRTG esta escrita em PERL, verifique se voc? tem o Perl
instalado e qual a vers?o

Para procurar o perl

whereis perl

Em distribui??es baseadas em RPM ? possivel procurar pelo comando

rpm -qa | grep perl

Caso o perl n?o esteja instalado fa?a o download em

http://www.perl.com/

Para ver a vers?o do Perl

perl -v

A vers?o m?nima requerida ? a 5.005

gd
==

GD ? uma biblioteca para gerar gr?ficos, no formato PNG

Para procurar o gd

whereis gd

Em distribui??es baseadas em RPM ? possivel procurar pelo comando

rpm -qa | grep gd

Caso o gd n?o esteja instalado, fa?a o download em

http://www.boutell.com/gd/

libpng
======

Requerido pelo gd para gerar arquivos PNG

Para procurar o libpng

whereis libpng

Em distribui??es baseadas em RPM ? possivel procurar pelo comando

rpm -qa | grep libpng

Caso o libpng n?o esteja instalado, fa?a o download em

http://www.libpng.org/pub/png/

zlib
====

Requerido para compactar os gr?ficos criados

Para procurar o zlib

whereis zlib

Em distribui??es baseadas em RPM ? possivel procurar pelo comando

rpm -qa | grep zlib

Caso o libpng n?o esteja instalado, fa?a o download em

http://www.info-zip.org/pub/infozip/zlib/

MRTG
====

N?o esquecendo do principal, baixe o MRTG

http://mrtg.hdl.com/pub/

Compilaca??o/Instala??o
=======================

Para descompactar os arquivos execute o seguinte comando

tar -xvzf < >

Dentro de cada diret?rio , execute os seguintes comandos (Deixe o MRTG por ?ltimo)

./configure

./make

./make install

Isto ir? instalar todos os pacotes e o MRTG.

Configura??o
============

A configura??o ? relativamente simples, n?o h? a necessidade de criar um arquivo de
configura??o manualmente, utilize o comando cfgmaker(usualmente no diretorio /usr/local/mrtg-2/bin), como mostrado abaixo

“`./cfgmaker –global ‘WorkDir: /var/www/mrtg’ –global ‘Options[_]: bits,growright’ –global ‘RunAsDaemon:Yes’ –output /home/usuario/mrtg/mrtg.cfg comunidadesnmp@xxx.xxx.xxx.xxx

WorkDir: /var/www/mrtg

Define o local onde sera gerada a pagina html com os graficos

Options[_]: bits,growright

A op??o bits define que o gr?fico trar? as informa??es em bits e a op??o growright far? com que o
gr?fico caminhe da direita para a esquerda, sendo que o hor?rio atual fique a direita do gr?fico

output /home/usuario/mrtg/mrtg.cfg

Define onde ser? armazenado o arquivo de configuracao (aqui chamado de mrtg.cfg)

RunAsDaemon:Yes

Define que o MRTG rode como daemon(processo), ou seja, o MRTG ficar? carregado e vai buscar dados do
equipamento conforme o parametro interval (–global ‘Interval:10’) se este parametro n?o for
definido, ent?o o intervalo padr?o ser? adotado (5 minutos)

comunidadesnmp

Comunidade snmp do equipamento a ser monitorado (roteador, switch, etc) com permiss?o de leitura

xxx.xxx.xxx.xxx

Endereco IP do equipamento a ser monitorado.

Para mais op??es do cfgmaker consulte

“`./cfgmaker –man

ou

http://mrtg.hdl.com/cfgmaker.html

Executando o MRTG
=================

Para executar o MRTG

/usr/local/mrtg-2/bin/mrtg /home/usuario/mrtg/mrtg.cfg

Simples, n?o?? 😉

Se a op??o RunAsDaemon:Yes estiver definida, ent?o ele ir? rodar como daemon e os dados ser?o atualizados
automaticamente, conforme o intervalo definido ou a cada 5 minutos.

Considera??es Finais
====================

O MRTG ? uma excelente ferramente de monitoramento, mas n?o se restringe apenas a ativos de rede,
ele pode ser usado para monitorar qualquer equipamento com suporte a SNMP, al?m de poder receber
vari?veis de scripts e em conjunto com outras ferramentas, o limite ? a criatividade de quem o usa ;-).
Existem diversos artigos de utiliza??o do MRTG combinado com outras ferramentas e para outros fins(um deles postado aqui no Dicas-L (www.dicas-l.unicamp.br/dicas-l/20041204.php)
sobre como monitorar performance em um servidor *nix.
O MRTG roda tamb?m na plataforma MS.
Espero que este pequeno tutorial ajude aqueles que ainda n?o conhecem o MRTG.

Posted in Sem categoria

Configurando o servidor Squid

Principais TAG’s do arquivo squid.conf

O arquivo de configura??o do Squid garante um grau elevado de capacidade de customiza??o deste servidor. Ele ? composto por mais de 3000 linhas, entretanto n?o h? com o que se preocupar, pois a maior parte delas se constitui de coment?rios referentes as fun??es de cada TAG e como deve-se utiliz?-la. De tantos coment?rios ele parece mais um manual do que um arquivo de configura??o.

Podemos ter um servidor configurado e funcional com apenas pouco mais de 30 linhas no arquivo, devemos considerar tamb?m que boa parte das op??es configuradas como padr?o no arquivo squid.conf n?o precisam ser alteradas, pois j? representam a configura??o mais adequada.

Desta forma vamos nos ater as configura??es mais importantes e necess?rias para que possamos ter um servidor proxy funcional. Abaixo mostraremos algumas destas op??es, n?o querendo tornar isso um guia definitivo para configura??o do Squid, mas sim um ponto de partida para implementa??o de um servidor proxy.

hierarchy_stoplist cgi-bin ? – Esta op??o vem habilitada por padr?o no squid.conf e inclusive ? recomendado o seu uso. Ela ? respons?vel por dizer ao Squid que ele deve buscar os dados diretamente na origem, sem passar pelos vizinhos na hierarquia. Esta configura??o se refere a conte?do din?mico, portanto se a URL cont?m o padr?o aqui especificado, ser? tomada a atitude de ir direto a origem buscar o conte?do;

acl QUERY urlpath_regex cgi-bin ? no_cache deny QUERY – Esta ACL diz ao squid para n?o armazenar em cache o conte?do dos CGI’s, pois obviamente n?o ? interessante por tratar-se de conte?do din?mico;

cache_mem 64 MB – Nesta op??o ? definida a quantidade de mem?ria que o Squid ir? usar, mas ? bom lembrar que o manual do Squid adverte que a mem?ria aqui mencionada ? referente a objetos em tr?nsito, objetos “quentes” e objetos com negativa de cache, ou seja, ? a mem?ria apenas para ele utilizar na manipula??o dos seus objetos e n?o ao total de mem?ria consumida por ele, que pode ser duas ou tr?s vezes maior;

cache_dir ufs /var/cache/squid 300 64 64 – Esta TAG determina onde e como ser? feito o cache, neste caso o diret?rio de cache ? /var/cache/squid, com o tamanho de 300 MB, tendo 64 diret?rios com 64 outros diret?rios em cada um deles;

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Servidor Proxy ARL
auth_param basic credentialsttl 2 hours – TAG’s referentes ao processo de autentica??o j? comentadas na se??o 5.

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320 – Estas op??es s?o o padr?o do Squid e configuram como ser?o tratados os tempos de vida dos objetos no cache, isto ?, o Squid faz uso destes valores para verificar se os objetos armazenados s?o os mais recentes ou h? a necessidade de atualiz?-los. N?o h? necessidade de mudan?a nestes valores;

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 – Estas ACL’s fazem parte da configura??o padr?o do Squid e ? o m?nimo recomend?vel para seu uso, n?o sendo necess?ria nenhuma altera??o nas mesmas;

acl MINHA_REDE src 192.168.16.0/24
acl USUARIOS proxy_auth REQUIRED
acl PORNO url_regex -i “/etc/squid/porn”
acl PORNO1 url_regex -i “/etc/squid/porn1”
acl NAO_PORNO url_regex -i “/etc/squid/noporn” – Se??o do arquivo com ACL’s definidas pelo usu?rio, al?m das anteriormente comentadas que j? v?m configuradas por padr?o. As maneiras de se criar ACL’s e como utiliz?-las ser?o tratadas na se??o 7.

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports – Defini??o de regras de acesso referentes as ACL’s da parte da configura??o padr?o do Squid, tamb?m n?o ? necess?ria nenhuma altera??o, portanto apenas acrescente as suas pr?prias regras a estas;

http_access allow USUARIOS NAO_PORNO MINHA_REDE
http_access allow USUARIOS !PORNO !PORNO1 MINHA_REDE – Estas regras de acesso foram feitas com o uso das ACL’s criadas anteriormente na ?rea designada ao usu?rio, como podemos observar elas foram feitas pelo pr?prio usu?rio;

http_access deny all – Esta regra de acesso ? recomendada para uso como ?ltima regra da lista define o acesso ao proxy. Ela diz ao Squid que se nenhuma das regras anteriores for aplicada o acesso ser? ent?o negado, portanto seu uso vai impedir acessos indesejados ao proxy. ? muito importante que esta seja a ?ltima regra da sua lista, pois o Squid tem uma regra impl?cita que inverte a ?ltima regra da lista caso nehuma delas seja aplicada. Isto pode trazer consequ?ncias indesej?veis principalmente se for usado nega??o ou libera??o expl?cita como por exemplo http_access deny PORNO ou http_access allow NAO_PORNO;

icp_access allow all – Permite o acesso a porta icp de acordo com a configura??o feita na ACL all, que no nosso caso representa qualquer origem. Est? porta ? usada para troca de informa??es entre servidores proxy;

cache_mgr claudio@nettravelrm.com.br – Op??o para configura??o do e-mail do administrador do proxy que vai aparecer nas mensagens de erro. Isto ? importante para que os usu?rios tenham informa??es de como interagir com o respons?vel pelo servidor em caso de problemas, como por exemplo um acesso bloqueado de forma errada;

visible_hostname www.meu_seite.com.br – Mostra o nome do servidor configurado nas mensagens de erro, caso contr?rio o Squid vai tentar descobrir o nome. Deve ser registrado o FQDN do servidor e n?o apenas o hostname;

error_directory /usr/share/squid/errors/Portuguese – Com o uso dessa op??o podemos determinar em qual linguagem ser?o apresentadas as mensagens de erro. Seu uso ? recomendado, pois por padr?o as mensagens s?o em ingl?s. Em /usr/share/squid/errors/ existem v?rios subdiret?rios com as linguagens suportadas pelo Squid. E estas mensagens, inclusive, podem ser facilmente personalizadas, pois est?o em arquivos no formato html;

coredump_dir /var/cache/squid – Local onde o Squid gravar? seus arquivos core em caso de falhas. Estes arquivos s?o comuns em sistemas UNIX e representam o estado do software no momento em que o erro que provocou sua finaliza??o ocorreu.

Algumas outras op??es tamb?m s?o interessantes, como no caso das apresentadas abaixo para serem usadas quando estamos com o recurso de proxy transparente habilitado. Estas op??es v?o fazer com que o Squid se comporte como um servidor web, de forma que o cliente n?o perceba que est? “conversando” com um proxy.

httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Existem v?rias outras op??es interessantes para serem exploradas, entretanto como n?o ? nosso objetivo aqui dissecar cada uma delas, vamos deixar isso como proposta para uma outra oportunidade.

7 – ACL’s

As ACL’s – (Access Control Lists) ou listas de controle de acesso, constituem-se na grande flexibilidade e efici?ncia do Squid, ? atrav?s delas que podemos criar regras para controlar o acesso ? internet das mais diferentes formas. Praticamente todo o processo de controle do Squid ? feito com o seu uso.

O uso das listas de controle de acesso ? a parte mais importante da configura??o de um servidor proxy Squid, pois se bem configuradas podem trazer um n?vel de seguran?a muito bom para a rede, entretanto se mau configuradas podem ter resultado oposto, j? que al?m da falsa sensa??o de seguran?a n?o ser? aproveitada a grande capacidade e funcionalidade do Squid. Uma dica para se fazer boas ACL’s ? testar, testar e testar, e depois quando achar que est? bom, continue testando e monitorando seus logs para identificar algum problema que possa ocorrer.

A primeira coisa que devemos saber ? que o Squid interpreta as ACL’s de cima para baixo, portanto ? muito importante que seja observada esta regra no momento em que est?o sendo constru?das as regras de acesso. As ACL’s s?o case-sensitive, isto ?, site_porno ? diferente de Site_porno, portanto cuidado com isso. Caso seja usada o op??o -i elas deixar?o de ser case-sensitive.

Uma outra regra muito importante ? que caso uma das regras coincida, as demais n?o ser?o mais verificadas. Isso independe da quantidade de regras que ainda faltam para atingir o fim da lista.

7.1 – Tipos de ACL’s

As ACL’s s?o definidas da seguinte forma:

acl nome tipo string | “arquivo”

Existem v?rios tipos de ACL que podemos utilizar, abaixo temos os mais comuns:

src – tipo utilizado para indicar endere?os IP de origem. Pode-se especificar um endere?o de rede, como 192.168.16.0/24, um endere?o de um determinado host, como 192.168.16.10/24 ou uma faixa de endere?os, como 192.168.16.10-192.168.16.20/24;

dst – semelhante ao tipo anterior, mas est? relacionada ao endere?o de destino;

srcdomain – tipo indicado para verificar o dom?nio da m?quina cliente. Os dom?nios ser?o obtidos por resolu??o reversa de IP, o que pode causar atrasos para a resposta da requisi??o. A defini??o do dom?nio deve ser feita da seguinte forma: “.meudominio.com.br”, n?o podendo ser esquecido o “.” (ponto) no in?cio;

dstdomain – usado da mesma forma que srcdomain, entretanto com rela??o ao destino;

srcdom_regex – avalia o dom?nio usando express?es regulares. Seu uso ? semelhante as duas anteriores, acrescentando a flexibilidade do uso da express?o regular;

dstdom_regex – usado da mesma forma que srcdom_regex, entretanto com rela??o ao destino;

time – usado para especificar dias da semana e hor?rios. Os dias da semana s?o definidos atrav?s de letras que os representam, e os hor?rios atrav?s de intervalos na forma hora:minuto_inicio-hora:minuto_final. Os dias da semana s?o especificados assim: S – Sunday (Domingo), M – Monday (Segunda-Feira), T – Tuesday (Ter?a-Feira), W – Wednesday (Quarta-Feira), H – Thursday (Quinta-Feira), F – Friday (Sexta-Feira) e A – Saturday (S?bado);

url_regex – Este tipo percorre a URL a procura da express?o regular especificada. Deve ser observado que a express?o ? case-sensitive, para que seja case-insensitive deve ser usada a op??o -i. ? o tipo mais comum de ACL dada a flexibilidade proporcionada pelo uso de express?es regulares;

urpath_regex – Tipo semelhante a url_regex, mas procura a express?o regular na URL sem levar em conta o nome do servidor e o protocolo, isto quer dizer que a procura vai ser feita apenas na parte da URL ap?s o nome do servidor, como por exemplo, na URL http://www.servidor.com.br/pasta/sexo.html a procura ser? realizada apenas na parte /pasta/sexo.html. Ela ? tamb?m case-sensitive, para que seja case-insensitive deve ser usada a op??o -i;

port – Realiza o controle pela porta de destino do servidor, neste tipo deve ser especificado o n?mero da porta;

proto – Serve para especificar o protocolo, como por exemplo FTP ou HTTP;

method – Especifica o tipo de m?todo usado na requisi??o, como por exemplo GET, CONNECT ou POST;

browser – Usa uma express?o regular para tentar “casar” com os dados do cabe?alho HTTP e combinando ent?o com o navegador utilizado pelo cliente;

ident – Realiza o controle de acesso baseado no nome do usu?rio. Este tipo requer um servidor Ident rodando na m?quina do cliente;

ident_regex – Semelhante a ident, mas utilizando express?o regular;

proxy_auth – Tipo usado para implementar autentica??o de usu?rios no proxy. A autentica??o ? feita com uso de softwares externos, conforme explicado na se??o 5. Podem ser passados os nomes dos usu?rios ou usada a op??o REQUIRED para que seja autenticado qualquer usu?rio v?lido;

snmp_community – Tipo usado para especificar o nome da comunidade SNMP, para que se possa monitorar o Squid atrav?s deste protocolo;

maxconn – Especifica um limite de conex?es vindas de um determinado cliente, interessante para uso com outras ACL’s de forma a limitar quantidades de conex?es para determinados endere?os espec?ficos;

req_mime_type – Especifica uma express?o regular para ser verificada no cabe?alho da requisi??o em busca de um tipo MIME que coincida com o especificado;

arp – Tipo usado para construir lista de acesso baseada no MAC Address da interface de rede do cliente, ou seja, em vez de endere?o IP da placa, usa-se o seu endere?o MAC.

7.2 – Construindo regras de acesso

Muitas s?o as possibilidades de constru??o de listas de acesso com o uso destes e outros tipos citados acima, mas o fato ? que para cada situa??o espec?fica vai ser necess?rio o uso de uma ou mais ACL’s, de um mesmo tipo ou de tipos diferentes, de forma que possa se chegar a uma situa??o ideal de controle. N?o existe uma regra r?gida para cria??o de listas de acesso, portanto vai depender muito da necessidade e habilidade de cada um.

Vamos descrever algumas situa??es de como podemos construir listas de controle de acesso para atender a cada uma das situa??es propostas, observando que se trata de uma das formas de resolver o problema e n?o a ?nica. ? interessante observar que o controle de acesso deve ser constru?do em duas etapas, primeiramente s?o feitas as classes de ACL’s e depois s?o constru?das as regras de acesso com o uso destas ACL’s, com o uso de operadores.

Existem v?rios operadores, dos quais o mais usado ? o http_access. Com ele podemos construir regras de controle de acesso baseadas no protocolo HTTP e FTP. Dado ao fato deste ser o mais importante operador, vamos focar o nosso trabalho no seu uso.

No momento da constru??o das regas devemos levar em considera??o al?m das observa??es que j? foram feitas o fato de que se nenhuma das regas forem aplicadas, o Squid aplica o oposto da ?ltima regra da lista, portanto ? muito importante que seja inclu?da como ?ltima linha das regra de acesso “http_access deny all”. Desta forma n?o vamos deixar que esta invers?o de regra possa provocar algum dissabor, pois negaremos qualquer acesso que n?o tenha uma regra espec?fica.

Apresentamos abaixo alguns exemplos de como construir regras de acesso:

1. Controlando acesso pela origem:

acl localnet src 192.168.16.0/24
http_access allow localnet
http_access deny all

Com estas regras estamos especificando que requisi??es vindas da rede 192.168.16.0/24 ser?o aceitas, nos demais casos o acesso ser? negado;

2. Controlando o acesso pelo destino:

acl outra_rede dst 192.168.17.0/24
http_access allow outra_rede
http_access deny all

Com estas regras estamos limitando o acesso apenas ? rede 192.168.17.0/24, desta forma qualquer acesso para outro destino ser? negado;

3. Controlando acesso pela origem e destino:

acl localnet src 192.168.16.0/24
acl outra_rede dst 192.168.17.0/24
http_access allow localnet outra_rede
http_access deny all

Aqui juntamos as duas anteriores e estamos especificando que requisi??es vindas da rede 192.168.16.0/24 e que sejam destinadas ? rede 192.168.17.0/24 ser?o aceitas, nos demais casos o acesso ser? negado;

4. Controlando acesso pela nome de dom?nio de origem e destino:

acl meu_dominio srcdomain .meudominio.com.br
acl mundo_lafora dstdomain .lafora.com.br
http_access allow meu_dominio mundo_lafora
http_access deny all

Estas regras s?o semelhantes as acima, onde usamos src e dst, entretanto aqui ? verificado o dom?nio, neste caso requisi??es vindas de .meudominio.com.br e com destino a .lafora.com.br ser?o liberadas, nos demais casos o acesso ser? negado. ? muito importante n?o esquecer o “.” (isso mesmo, o ponto) antes do nome do dom?nio, sob pena da regra n?o funcionar;

5. Controlando o acesso usando autentica??o de usu?rio:

acl usuarios proxy_auth REQUIRED
http_access allow usuarios
http_access deny all

Esta regra faz com que o acesso seja liberado apenas para usu?rios que sejam v?lidos, dado ao uso da op??o REQUIRED, e que se autentiquem no Squid. Para que a autentica??o funcione devem ser configuradas as TAG’s que informam ao Squid como esta ser? feita, j? que ela ? realizada por softwares externos, mas isto j? foi visto na se??o 5;

6. Controlando acesso pela origem, destino e autentica??o de usu?rio:

acl localnet src 192.168.16.0/24
acl outra_rede dst 192.168.17.0/24
acl usuarios proxy_auth REQUIRED
http_access allow localnet outra_rede usuarios
http_access deny all

Com estas regras estamos especificando que requisi??es vindas da rede 192.168.16.0/24 e que sejam destinadas ? rede 192.168.17.0/24 ser?o aceitas, mas desde que os usu?rios sejam autenticados, nos demais casos o acesso ser? negado;

7. Acrescentando controle de acesso pelo hor?rio:

acl localnet src 192.168.16.0/24
acl outra_rede dst 192.168.17.0/24
acl usuarios proxy_auth REQUIRED
acl expediente time MTWHF 8:00-18:00
http_access allow expediente localnet outra_rede usuarios
http_access deny all

Apenas acrescentamos o controle baseado no hor?rio. Veja tamb?m a ordem em que as ACL’s s?o verificadas, observe que a verifica??o dos usu?rios ? feita por ?ltimo, pois n?o vamos for?ar o usu?rios a se autenticarem para s? depois negar o acesso por um outro motivo. Isto n?o ? obrigat?rio, apenas no nosso caso fica melhor desta forma, pois se, por exemplo, o hor?rio n?o est? dentro do permitido, o acesso ser? negado imediatamente sem nem mesmo tentar checar as outras ACL’s;

8. Controlando o acesso por palavras chaves:

acl MINHA_REDE src 192.168.16.0/24
acl USUARIOS proxy_auth REQUIRED
acl PORNO url_regex -i “/etc/squid/porn”
acl PORNO1 url_regex -i “/etc/squid/porn1”
acl NAO_PORNO url_regex -i “/etc/squid/noporn”
http_access allow USUARIOS NAO_PORNO MINHA_REDE
http_access allow USUARIOS !PORNO !PORNO1 MINHA_REDE
http_access deny all

Este ? sem d?vida o tipo de controle mais usado, pois com ele podemos fazer o bloqueio de conte?do considerado impr?prio de maneira muito f?cil. No nosso caso estamos fazendo o uso de arquivos que cont?m as listas de palavras ou sites que consideramos inadequados, no caso /etc/squid/porn e /etc/squid/porn1 e outro arquivo com sites e palavras que podem ser barradas por alguma regra dos arquivos anteriores, mas que na verdade n?o representam conte?do impr?prio, no caso /etc/squid/noporn. Por exemplo, nem sempre a palavra sexo representa necessidade de bloqueio, pois podemos ter sites de conte?do educativo que contenham essa palavra na sua URL, por exemplo www.ministeriodealgumacoisa.gov.br/sexoseguro.html. As palavras ou sites devem ser colocados no arquivo uma por linha.

Ent?o aqui estamos fazendo o seguinte: primeiramente vamos liberar usu?rios que desejem acessar sites listados no arquivo /etc/squid/noporn e que perten?am a nossa rede, no caso 192.168.16.0/24 ou usu?rios que queiram acessar sites com conte?dos diferentes (! significa diferente) do listado nos arquivos /etc/squid/porn e /etc/squid/porn1 e que perten?am a nossa rede, em ambos os casos dever? ser feita a autentica??o.

7.3 – Erros mais comuns
Como j? mencionamos, apesar da grande flexibilidade na constru??o das listas de acesso, devemos ter sempre em mente os problemas referentes a sua cria??o, para que o resultado seja o que realmente esperamos. O uso inadequado ou desconhecimento destas regras de como utilizar as ACL’s podem tornar suas listas totalmente ineficientes e lhe trazer a sensa??o de que tudo est? funcionando corretamente. Estes erros podem ser mais comuns quando o n?mero de regras aumentam, portanto para que eles sejam evitados devemos nos lembrar sempre que:

* As regras s?o sempre interpretadas de cima para baixo;

* As express?es regulares s?o case-sensitive, ou seja, mai?sculas s?o diferenciadas de min?sculas, para que seja case-insensitive deve ser usada a op??o -i;

* Se uma das regras da lista de acesso for aplicada, as demais ser?o ignoradas, isto ?, apenas uma das regras da lista vai ser aplicada por vez;

* As regras s?o interpretadas da seguinte forma:
http_access allow ACL1 AND ACL2 AND ACL3 OR
http_access allow ACL4 AND ACL5 AND ACL1 OR …

Este ? o tipo mais comum de erro, por isso devemos ter sempre isto em mente ao montarmos nossas regras.

* Existe uma regra impl?cita no Squid que ? utilizada caso nenhuma das regras da lista seja aplic?vel ao acesso. Esta regra faz com que seja invertida a ?ltima regra da lista, de forma que se ela por exemplo for deny ser? transformada em allow e aplicada ao acesso, ou o contr?rio. ? extremamente recomend?vel que a ?ltima regra da lista seja http_access deny all, pois com isso todo acesso que chegar at? ela ser? negado, evitando surpresas com essa invers?o que o Squid faz.

Vejamos alguns casos de erros:

1. Queremos que o acesso seja restrito a determinada origem e destino simultaneamente, isto ?, a conex?o dever? ser originada na nossa rede e ter como destino uma rede espec?fica.

acl localnet src 192.168.16.0/24
acl outra_rede dst 192.168.17.0/24
http_access allow localnet
http_access allow outra_rede
http_access deny all

Aparentemente estas regras est?o corretas, entretanto se forem analisadas com mais calma podemos verificar que elas n?o v?o funcionar de acordo com o que esperamos. Os dois operadores deveriam na verdade ser apenas um, pois da forma que est? se o acesso vier da rede 192.168.16.0/24 j? ? suficiente para que o aceso seja liberado, n?o sendo verificada a segunda regra que determina que o destino deve ser a rede 192.168.17.0/24. A segunda regra vai ser aplicada somente se a origem for diferente de 192.168.16.0/24, portanto um resultado totalmente diferente do que realmente quer?amos. Desta forma o correto seria ter apenas um operador escrito da seguinte maneira http_access allow localnet outra_rede;

2. Queremos controlar o acesso pela origem e destino, como j? visto no caso anterior, s? que agora com o uso de autentica??o de usu?rios.

acl localnet src 192.168.16.0/24
acl outra_rede dst 192.168.17.0/24
acl usuarios proxy_auth REQUIRED
http_access allow usuarios
http_access allow localnet outra_rede
http_access deny all

Aqui foi cometido o mesmo erro do caso anterior, pois se o usu?rio conseguir se autenticar j? ser? suficiente para que o acesso seja liberado, ent?o a origem e o destino n?o ser?o mais verificados, pois uma regra j? foi satisfeita;

3. Queremos controlar o acesso pela origem, com verifica??o de conte?do impr?prio atrav?s de express?es regulares, para usu?rios autenticados.

acl MINHA_REDE src 192.168.16.0/24
acl USUARIOS proxy_auth REQUIRED
acl PORNO url_regex -i “/etc/squid/porn”
acl PORNO1 url_regex -i “/etc/squid/porn1”
acl NAO_PORNO url_regex -i “/etc/squid/noporn”
http_access allow USUARIOS NAO_PORNO
http_access allow USUARIOS !PORNO !PORNO1 MINHA_REDE
http_access deny all

Nestas regras apenas foi cometido um pequeno erro, pois na linha http_access allow USUARIOS NAO_PORNO n?o foi feita a restri??o com base na origem, est? ent?o faltando a ACL MINHA_REDE, e sem isso caso o usu?rio consiga se autenticar e o site esteja na lista do arquivo /etc/squid/noporn j? ? suficiente para ter o acesso autorizado, independente de qual rede esteja sendo originada a requisi??o.

8 – Analisando os logs do Squid

N?o poder?amos falar do Squid sem que fossem analisadas algumas das muitas alternativas em software para an?lise dos logs e gera??o de relat?rios com informa??es mais “leg?veis” e amig?veis das atividades do servidor.

Existem v?rias ferramentas para an?lise e gera??o de relat?rios dos logs do Squid, dentre elas podemos destacar o Calamaris, SARG e Squid-graph, dentre muitas outras. Cada uma delas apresenta caracter?sticas e funcionalidades diferentes, entretanto o objetivo final ? fornecer uma maneira mais amig?vel de se analisar as preciosas e detalhadas informa??es que o Squid grava em seus logs. Neste trabalho, escolhemos estas tr?s ferramentas citadas para mostrarmos sua utiliza??o, conforme veremos nas subse??es seguintes.

8.1 – Calamaris

O Calamaris ? um software escrito em Perl que efetua a gera??o de relat?rios bem detalhados do uso da internet usando os arquivos de logs de v?rios servidores proxy, como o NetCache, Inktomi Traffic Server, Oops! proxy server, Novell Internet Caching System, Compaq Tasksmart, Netscape/iplanet Web Proxy Server e ? claro o Squid. Os relat?rios gerados s?o bem simples na apresenta??o, entretanto muito ricos em detalhes extra?dos dos arquivos de logs, eles podem ser gerados no formato HTML ou mesmo em texto para ser enviado via e-mail.

A utiliza??o deste software ? muito simples, primeiramente temos que baixar a vers?o mais recente dele em http://cord.de/tools/squid/calamaris/Welcome.html.en, descompactar o arquivo no diret?rio de sua prefer?ncia, no nosso caso /usr/local/calamaris, ap?s isso j? podemos us?-lo. Abaixo temos um exemplo simples de comando1 necess?rio para gera??o dos relat?rios do log do Squid.

#/usr/local/calamaris/calamaris -a -F html /var/log/squid/access.log >/srv/www/default/html/calamaris/index.html

O comando acima j? ? suficiente para gera??o de relat?rios excelentes da an?lise dos logs. Neste caso usamos a op??o -a que diz ao Calamaris para serem gerados todos os relat?rios, -F html especifica o formato do relat?rio que queremos, no caso em HTML, /var/log/squid/access.log ? onde est? localizado o arquivo de log do Squid e >/srv/www/default/html/calamaris/index.html a localiza??o do relat?rio gerado, neste caso uma pasta na ?rvore do Apache de forma que possa ser analisado de qualquer esta??o da rede.

Podemos observar na Figura 1 os tipos de relat?rios gerados, assim como na Figura 2 um destes relat?rios, que nos mostra informa??es sobre requisi??es, organizadas por extens?o.

Figura 1:Tipos de relat?rios gerados pelo Calamaris Calamaris

Figura 2:Exemplo de relat?rio do Calamaris
Calamaris

O ideal ? que seja desenvolvido um script para que possamos programar a execu??o do Calamaris pelo cron, mas isso n?o ser? tratado aqui dado ao fato que isto dever? ser feito de acordo com as necessidades da cada um, assim como o pr?prio software j? traz alguns exemplos de como fazer isto.

8.2 – SARG

O SARG ? um dos mais usados e eficientes softwares para gera??o de relat?rios dos logs do Squid. Ele foi escrito por um brasileiro e tem recursos muito interessantes, como listagem de sites mais visitados, sites que o acesso foi negado, falhas na autentica??o, caso este recurso esteja sendo utilizado, listas de sites acessados por usu?rios e hor?rios em que foram acessados, etc. Al?m do mais, cada um destes relat?rios est?o recheados de informa??es como datas e hor?rios dos acessos, tempo de gasto na visita ao site, quantidades de dados trafegados e outras mais.

Uma outra vantagem deste software ? que ele est? dispon?vel em v?rias l?nguas, inclusive o portugu?s ? claro, al?m do mais tem um arquivo de configura??o relativamente simples e bem comentado, al?m de est? dispon?vel em pacotes da maioria das distribui??es. No nosso caso utilizamos o pacote rpm dispon?vel na nossa distribui??o, no caso a ver?o 9 do Conectiva.

Mas caso voc? opte por instalar usando os fontes n?o haver?o maiores problemas, siga apenas os passos tradicionalmente usados para instala??o usando este m?todo, como mostraremos a seguir. Ap?s ter baixado a vers?o mais recente do site http://web.onda.com.br/orso/, no nosso caso sarg-1.4.1.tar.gz e executar os comando abaixo na ordem apresentada, o SARG estar? pronto para uso, quer dizer, para ser configurado para uso.

# tar zxvf sarg-1.4.tar.gz
# cd sarg-1.4/
# ./configure
# make
# make install

Figura 3:Exemplo de relat?rio gerado pelo SARG
SARG

No Ap?ndice A podemos ver como ? o arquivo de configura??o do SARG, ele, da forma como est?, ? suficiente para um bom funcionamento. As op??es do arquivo de configura??o est?o comentadas, portanto nesta se??o n?o abordaremos cada uma delas, j? que os coment?rios s?o suficientes para entend?-las.

Para gera??o dos relat?rios ? necess?rio apenas a execu??o do comando sarg. Assim como o Calamaris a execu??o do SARG fica mais interessante se programada atrav?s do cron, isso pode ser implementado com o uso dos scripts que o acompanham (geralmente /usr/sbin/sarg.daily, sarg.weekly e sarg.monthly) e permitem automatizar a gera??o de relat?rios di?rios, semanais e mensais, mas isso n?o quer dizer que n?o possamos extrair relat?rios mais personalizados e de acordo com nossas necessidades.

8.3 – Squid-Graph
O Squid-Graph, assim como o Calamaris, ? escrito em Perl, entretanto como o pr?prio nome menciona, ? um gerador de gr?ficos da utiliza??o do servidor proxy. Ele se atem a apresentar informa??es mais sint?ticas dos acessos e transfer?ncias de dados, mas nem por isso deixa de ser mais uma alternativa interessante e pode complementar o rol de ferramentas de administra??o.

Ele pode ser conseguido em http://squid-graph.securlogic.com/files/stable/squid-graph-3.1.tar.gz, sendo esta a ?ltima vers?o dispon?vel neste momento. ? importante lembrar que ? necess?rio que seja instalado o m?dulo perl GD, que com certeza deve est? nos CD’s de sua distribui??o favorita.

O processo de instala??o ? muito simples, pois trata-se apenas de descompactar os arquivos no diret?rio escolhido, j? que n?o precisamos compilar nada. No nosso caso instalamos em /usr/local/squid-graph/, conforme mostra o comando abaixo.

# tar xzvf squid-graph-3.1.tar.gz -C /usr/local/
# mv squid-graph-3.1 squid-graph
# chmod +x /usr/local/squid-graph/bin/*

Figura 4:Exemplo de gr?fico gerado pelo Squid-graph
Squid_Graph

A execu??o do comando para gera??o dos gr?ficos vai depender de como e quais dever?o ser gerados, entretanto uma boa maneira de se executar este comando2 de maneira que seja gerados os gr?ficos de forma cumulativa ? apresentada abaixo.

#/usr/local/squid-graph/bin/squid-graph -c -n
-o=/srv/www/default/html/squid-graph/
–title=”Gr?fico de uso do proxy” < /var/log/squid/access.logNo comando acima usamos a op??o -c, desta forma estamos gerando os gr?ficos cumulativos, isto ?, vamos ter dois gr?ficos para os acessos e transfer?ncias TCP, respectivamente, e mais dois gr?ficos para os acessos e transfer?ncias UDP. A op??o -n faz com que n?o sejam ``ecoadas'' na tela as informa??es do processamento do log do Squid, -o=/srv/www/default/html/squid-graph/ representa o local onde os arquivos ser?o gravados (html e imagens), -title=``Gr?fico de uso do proxy'' personaliza o t?tulo da p?gina html, onde s?o mostrados os gr?ficos, e por fim temos o arquivo de log dos Squid.Existem outras op??es interessantes, como gerar gr?ficos para uma URL espec?fica ou um determinado usu?rio, como podemos ver com o uso do comando3 abaixo:#cat /var/log/squid/access.log | grep "ginux.comp.ufla.br"
| /usr/local/squid-graph/bin/squid-graph -c -n
-o=/srv/www/default/html/squid-graph/
–title=”Gr?fico de uso do proxy”

Para gerar um gr?fico dos acessos de um determinado usu?rio, precisar?amos apenas substituir o comando grep mostrado acima, por grep “192.168.16.3 ”, supondo que 192.168.16.3 ? o IP do seu usu?rio. Podemos ainda usar o mesmo recurso para gr?ficos de determinados tipos de arquivos, usando a extens?o como par?metro, por exemplo grep “.mp3 ” ? um bom come?o. Como j? deu pra perceber, podemos combinar o uso do Squid-Graph com outros comandos do Linux, de forma que podemos ter uma infinidade de op??es para seu uso, al?m disso existem outras op??es interessantes que n?o foram tratadas aqui.

9 – Conclus?o

A configura??o e o uso de servidores proxy ? um assunto muito interessante e ao mesmo tempo muito extenso. Temos v?rias maneiras de implementar solu??es deste tipo, que v?o apresentar um certo grau de complexidade de acordo com o porte, recursos e finalidade do que queremos usar. Nosso objetivo aqui foi apresentar algumas das maneiras de utiliza??o do proxy Squid de modo que fosse poss?vel elaborar uma vis?o do processo de configura??o e utiliza??o deste servidor proxy.

Este ? sem d?vidas um software livre com qualidade excepcional. A robustez e flexibilidade oferecidas pelo Squid ? um diferencial muito bom em rela??o a solu??es fechadas. Ao mesmo tempo podemos notar a facilidade no seu uso, o que faz dele uma excelente alternativa para uso em qualquer ambiente.

Refer?ncias Bibliogr?ficas

Bastos, 2003
Bastos, E. R. (2003).
Configurando um squid “ninja” – http://www.linuxman.pro.br/squid/.
Acesso em setembro/2003.

Campos, 2003
Campos, A. (2003).
Linux in brazil – http://www.linux.trix.net.
Acesso em setembro/2003.

Marcelo, 2003
Marcelo, A. (2003).
Squid.
Brasport Livros e Multim?dia Ltda.

Pearson, 2003
Pearson, O. (2003).
Squid – A User’s Guide.
Qualica Technologies (Pty) Ltd.

Sica et al., 2003
Sica, F. C., Uch?a, J. Q., and Simeone, L. E. (2003).
Administra??o de Redes Linux.
UFLA/FAEPE.

Vesperman, 2003
Vesperman, J. (2003).
Installing and configuring squid – http://linux.oreillynet.com/pub/a/linux/2001/07/26/squid.html.
Acesso em setembro/2003.

ViSolve.com, 2002
ViSolve.com (2002).
Squid configuration manual.
ViSolve.com.

Wessels, 2001
Wessels, D. (2001).
SQUID Frequently Asked Questions.
www.squid-cache.org.

A . Exemplo de arquivo Sarg.conf

# Inicio do arquivo sarg.conf
# sarg.conf
# Principais diretivas est?o comentadas e algumas
# foram mantidos os coment?rios originais

# Defini??o da linguagem
language Portuguese

# Localiza??o do arquivo de log do squid
access_log /var/log/squid/access.log

# t?tulo do relat?rio
title “Relat?rios de uso do proxy Squidbegintex2html_deferred

# Defini??es da est?tica do relat?rio (cores, fontes)
font_face Arial
header_color darkblue
header_bgcolor blanchedalmond
header_font_size -1
background_color white
text_color black
text_bgcolor beige
title_color green
logo_image none
logo_text_color black
background_image none

password none

# diret?rio tempor?rio
temporary_dir /tmp

# Local onde os relat?rios ser?o gravados
output_dir /srv/www/default/html/sarg

# e-mail para envio dos relat?rios
output_email none

resolve_ip no
user_ip yes

# classifica??o do relat?rio topuser
topuser_sort_field BYTES reverse

# classifica??o do relat?rio user
user_sort_field BYTES reverse

# arquivo com usu?rio que ser?o exclu?dos do relat?rio
exclude_users none

# arquivo com usu?rio que ser?o exclu?dos do relat?rio
# Ex.: ip 192.168.10.10, rede 192.168.10.0,
# host s1.acme.foo e dom?nio acme.foo
exclude_hosts none

useragent_log none

# formato da data: e (Europe=dd/mm/yy), u
# (USA=mm/dd/yy), w (Weekly=yy.ww)
date_format e

# TAG: per_user_limit file MB
# Save userid on file if download exceed n MB.
#
# This option can be used to disable user access
# if user exceed a download limit.
per_user_limit none

lastlog 0

remove_temp_files yes

index yes

# subscrever relat?rios caso j? existam
overwrite_report yes

# o que fazer com registros sem usu?rio
records_without_userid ignore

# use_comma yes => 23,450,110 use_comma no => 23.450.110
use_comma no

# utilit?rio usado para envio do e-mail com o relat?rio
mail_utility mail

# quantidade de sites mais visitados para listar no relat?rio
topsites_num 100

# TAG: topsites_sort_order CONNECT|BYTES A|D
# Sort for topsites report, where A=Ascendent,
# D=Descendent
#
topsites_sort_order CONNECT D

# Arquivo de c?digos HTTP para serem ignorados no relat?rio
exclude_codes /etc/sarg/exclude_codes

max_elapsed 28800000

# Tipo de Relat?rios
# topsites – Mostra o site, conex?o e bytes
# sites_users – Mostra que usu?rios estavam
# acessando um site
# users_sites – Mostra sites acessados
# pelo usu?rio
# date_time – Mostra quantidade de bytes
# usados por dia e hora
# denied – Mostra todos os sites negados
# com URL completa
# auth_failures – Mostra falhas de autentica??o
# site_user_time_date – Mostra os hor?rios que um
# usu?rio acessou determinado
# site
#
report_type topsites sites_users users_sites date_time denied auth_failures site_user_time_date

# usado para mostrar o nome do usu?rio e n?o o ip
# formato: 192.168.10.1 claudio
usertab /etc/squid/usernames

# TAG: long_url yes|no
# If yes, the full url is showed in report.
# If no, only the site will be showed
#
# YES option generate very big sort files and reports.
#
long_url no

# TAG: date_time_by bytes|elap
# Date/Time reports will use bytes or elapsed time?
#
date_time_by bytes

# TAG: charset name
# ISO 8859 is a full series of 10 standardized
# multilingual
# single-byte coded (8bit)
# graphic character sets for writing in
# alphabetic languages
# You can use the following charsets:
# Latin1 – West European
# Latin2 – East European
# Latin3 – South European
# Latin4 – North European
# Arabic
# Greek
# Hebrew
# Latin5 – Turkish
# Latin6
# Windows-1251
# Koi8-r
charset Latin1

# Fim do arquivo sarg.conf

B . Exemplo de arquivo Squid.conf

# Inicio do arquivo squid.conf
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ? no_cache deny QUERY
cache_mem 64 MB

cache_dir ufs /var/cache/squid 300 64 64

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Servidor Proxy da SEFIN
auth_param basic credentialsttl 2 hours

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 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 MINHA_REDE src 192.168.16.0/24
acl USUARIOS proxy_auth REQUIRED
acl PORNO url_regex -i “/etc/squid/porn”
acl PORNO1 url_regex -i “/etc/squid/porn1”
acl NAO_PORNO url_regex -i “/etc/squid/noporn”

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow USUARIOS NAO_PORNO MINHA_REDE
http_access allow USUARIOS !PORNO !PORNO1 MINHA_REDE
http_access deny all
http_reply_access allow all

icp_access allow all
visible_hostname www.meu_seite.com.br
error_directory /usr/share/squid/errors/Portuguese
coredump_dir /var/cache/squid

# Fim do arquivo squid.conf

Footnotes

… comando1
O comando foi dividido em mais de uma linha apenas para uma melhor apresenta??o.
… comando2
O comando foi dividido em mais de uma linha apenas para uma melhor apresenta??o.
… comando3
O comando foi dividido em mais de uma linha apenas para uma melhor apresenta??o.

Antonio Claudio Sales Pinheiro

Este artigo veio de LinuxIT – Linux e Tecnologia
http://www.linuxit.com.br

O link desta artigo ?:
http://www.linuxit.com.br/modules.php?name=Sections&op=viewarticle&artid=406

Posted in Sem categoria