quinta-feira, 13 de maio de 2010

Migrando para o Ext4, o novo file system Linux

Migrando para o Ext4, o novo file system Linux

Todo mundo já ouviu falar do novo sistema de arquivos Ext4, o sucessor do velho e bom ext3. O ext4 ainda se encontra em fase de desenvolvimento e por isso ainda é chamando de ext4dev, mas a partir da versão do kernel 2.6.27 o filesystem atingiu uma boa maturidade, o que permite migrarmos aos poucos, mas sempre mantendo a cautela. =)

Algumas das melhorias do Ext4 em relação ao Ext3 são as seguintes:

* Melhorias na pré-alocação: Um programa usará um espaço do disco, mas não na hora da execução, então ele reserva o espaço que utilizará, fazendo uma pré-alocação, ou seja, ele guarda aquele espaço para o programa e ninguém mais poderá utilizar;
* Tempo de alocação estendido: O ext4 conseguirá segurar a alocação do espaço em disco até o último momento, isso aumentará a performance;
* Maior número de subdiretórios: No ext3 o limite de subdiretórios era de 32000, no Ext4 não há limites;
* Checksum do Journaling: É gerado um checksum do Journaling, garantindo uma restauração mais rápida e a prova de falhas.
* Desfragmentação On-Line: O ext3 deixava um pouquinho de fragmentação no disco, no ext4 não existe mais fragmentação, pois o ext4 vai desfragmentando enquanto os arquivos vão sendo alocados.
* Undelete: É uma ferramenta disponível no ext4 que impede que um arquivo seja apagado. Lembra dos atributos estendidos do ext3? É bem parecido.
* Checagem rápida do filesystem: A estrutura de organização de blocos permite que partes não usadas do disco sejam puladas, o que economiza muito tempo na checagem do filesystem.


Agora vamos para a instalação...

Git:

É preciso instalar o novo pacote do e2fsprogs e para isso utilizamos o git para baixar a nova versão diretamente do site do Kernel.org.

# wget http://www.kernel.org/pub/software/scm/git/git-1.6.0.tar.bz2
# tar -jxvf git-1.6.0.tar.bz2
# cd git-1.6.0
# ./configure
# make
# make install

e2fsprogs:

# git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
# cd e2fsprogs/
# ./configure
# make
# make install

Se você verificar perceberá que apareceram dois novos executáveis: mkfs.ext4 e mkfs.ext4fs, mas calma, ainda falta compilar o kernel. =)

Compilando o kernel para suporte ao Ext4:

# wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.8.tar.bz2
# tar -jxvf linux-2.6.27.8.tar.bz2 -C /usr/src
# ln -s /usr/src/linux-2.6.27.8 /usr/src/linux
# cd /usr/src/linux
# cp /boot/config-xx.xxx.xx /usr/src/linux/.config
# make menuconfig

Habilite as seguintes opções:

File systems ->
Ext4dev/ext4 extended fs support development (EXPERIMENTAL)

Opcional:

Ext4dev extended attributes
Ext4dev POSIX Access Control Lists
Ext4dev Security Labels

# make bzImage
# make modules
# make modules_install

# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.27.8
# cp System.map /boot/System.map-2.6.27.8
# mkinitrd /boot/initrd-2.6.27.8 2.6.27.8 (Utilizei o Centos nessa compilação, para gerar o initrd no Debian utilize o parâmetro -o seguido do destino, mkinitrd -o /boot/initrd-2.6.27.8 2.6.27.8)
# cp .config /boot/config-2.6.27.8

Editando o Grub:

# cd /boot/grub/
# vi menu.lst

title CentOs - Ext4
root(hd0,0)
kernel /boot/vmlinuz-2.6.27.8 ro root=LABEL=/
initrd /boot/initrd-2.6.27.8

Calma, estamos quase lá. Vamos rebootar o sistema e escolher o novo kernel para o boot.

Com o novo kernel, verifique se o módulo do ext4 foi carregado, isso se você compilou ele como módulo.

# lsmod | grep ext4

Se não carregou...

# modprobe ext4dev

Formatando uma partição:

# mkfs.ext4dev /dev/sda?

ou

# mkfs.ext4 /dev/sda?

Tente montar a nova partição formatada com o ext4:

# mount -t ext4dev /dev/sda? /mnt

Se o Linux retornar o seguinte erro no dmesg:

[ 6289.554461] EXT4-fs: sdb1: not marked OK to use with test code

Utilize o tune2fs para resolver o problema:

# tune2fs -E test_fs /dev/sdb1

Pronto, tente montar novamente e verifique...

# mount -t ext4dev /dev/sda? /mnt
# mount
/dev/sdb1 on /mnt type ext4dev (rw)

Agora divirta-se com os testes e beanchmarks. Vale a pena deixar um pequena partição para ir se familiarizando com o futuro sistema de arquivos padrão do Linux. =)


Autor: Andre Luiz Facina

terça-feira, 11 de maio de 2010

Instalação do ClamAV com DazukoFS

O ClamAV é um dos mais conhecidos antivírus desenvolvidos para Linux, pelo fato de ele ser open source, apresentar tantas funcionalidades quanto os programas antivírus proprietários e ainda por cima ter sua base de dados de vírus atualizada com bastante frequência. Nesse tutorial, vamos compilar, instalar e configurar o ClamAV. Além disso, vamos configurar sua proteção residente para utilizar o DazukoFS.

Antes de começar, gostaria de informar que o ClamAV ainda não oferece suporte ao DazukoFS, como você pode ver nesta página, onde um programador relata o problema à equipe de desenvolvimento do ClamAV e sugere um patch (alteração) para o programa. Portanto, você vai precisar, além do código-fonte do ClamAV, do patch que adicionará a ele o suporte ao DazukoFS. Baixe os dois arquivos e coloque-os na mesma pasta.

É importante observar também que esse patch foi desenvolvido para a versão 0.95.2 do ClamAV, por isso eu recomendo que você baixe o código-fonte dessa versão (basta clicar no link que eu forneci acima). A versão mais nova do ClamAV, no momento da elaboração desse tutorial, é a 0.95.3. Se você preferir instalar a versão mais nova, você também pode aplicar esse patch, fazendo as devidas alterações (eu, particularmente, ainda não disponho de conhecimento técnico suficiente para fazê-lo, por isso optei por instalar a versão para a qual o patch foi desenvolvido).

Preparando o sistema

Para compilar o ClamAV, você precisa ter instalado em seu sistema os pacotes zlib e zlib-devel, além, claro, do compilador gcc. Se você utiliza o Debian ou uma distribuição baseada nele, você pode resolver essas dependências com o comando:

# apt-get build-dep clamav


Lembrando que para executá-lo você deve ter pelo menos um repositório de códigos-fonte adicionado no arquivo "/etc/apt/sources.list". Se não tiver, você pode adicionar este:

deb-src http://ftp.br.debian.org/debian/ lenny main contrib non-free


Além disso, após adicionar o repositório, você deve executar o comando

# apt-get update


para obter a sua lista de pacotes.

Não entrarei em mais detalhes a respeito da instalação dessas dependências (até porque as instruções para fazer isso podem variar de distribuição para distribuição), assumindo que você já as possui instaladas em seu sistema.

Além disso, se você pretende que o ClamAV execute proteção residente, você deve instalar o DazukoFS. Apesar de você poder fazer isso depois da instalação do ClamAV, recomendo que o faça antes, para que ao terminar de executar esses passos você tenha uma instalação completamente funcional do ClamAV, sem nada mais a ser feito. Para saber como instalar o DazukoFS, leia o tutorial Desmistificando a instalação do Dazuko, anteriormente publicado aqui no blog do AvmLinux.

A instalação do ClamAV requer que criemos um usuário e um grupo de usuários para ele. Isso pode ser feito através dos comandos:

# groupadd clamav

# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav


Finalmente, vamos criar os diretórios que serão utilizados pelo ClamAV para armazenar seus arquivos:

# mkdir /var/lib/clamav

# chown clamav /var/lib/clamav

# mkdir /var/log/clamav

# chown clamav /var/log/clamav

# mkdir /var/run/clamav

# chown clamav /var/run/clamav


Instalando o ClamAV

1. Descompacte o código-fonte do ClamAV com o seguinte comando no terminal:

$ tar -xvzf clamav-0.95.2.tar.gz


2. Entre no diretório de instalação do ClamAV, que foi o diretório que você acabou de descompactar:

$ cd clamav-0.95.2


3. Vamos agora aplicar o patch que acrescentará ao ClamAV o suporte ao DazukoFS. Para isso, execute o comando:

$ patch -p1 < ../patch-clamuko-dazukofs.diff


Agora podemos prosseguir com a instalação normal do ClamAV.

4. Execute os seguintes comandos no terminal para compilar o ClamAV:

$ ./configure --prefix=/usr --sysconfdir=/etc/clamav --enable-clamuko --enable-milter --with-dbdir=/var/lib/clamav

# make


O segundo comando geralmente demora um pouco. Tenha paciência e aguarde a sua execução.

5. Se você não obter nenhuma mensagem de erro após a execução desses comandos, você pode agora de fato instalar o ClamAV com o comando:

# make install


6. Após concluir a instalação do ClamAV, execute o comando:

# ldconfig


Configurando o freshclam


O freshclam é o componente do ClamAV que verifica, baixa e instala as atualizações da base de dados de vírus.

Sua configuração encontra-se no arquivo "/etc/clamav/freshclam.conf". Abra esse arquivo e faça as alterações listadas a seguir (se você preferir, aqui encontra-se uma cópia desse arquivo com as alterações já feitas):

1. Comente a linha "Example":

Para quem nunca mexeu em um arquivo de configuração, comentar uma linha significa adicionar um "jogo da velha" (#) no início da linha. Ao contrário, descomentar uma linha significa remover esse caractere do seu começo.


Assim, a linha "Example", que antes estava assim:

# Comment or remove the line below.
Example


Deve ficar assim:

# Comment or remove the line below.
#Example


2. Descomente a linha "UpdateLogFile" e altere seu valor para "/var/log/clamav/freshclam.log". Ela deve ficar assim:

# Path to the log file (make sure it has proper permissions)
# Default: disabled
UpdateLogFile /var/log/clamav/freshclam.log


3. Descomente a linha "LogFileMaxSize":

# Maximum size of the log file.
# Value of 0 disables the limit.
# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes).
# in bytes just don't use modifiers.
# Default: 1M
LogFileMaxSize 2M


4. Descomente a linha "LogTime":

# Log time with each message.
# Default: no
LogTime yes


5. Descomente a linha "LogVerbose":

# Enable verbose logging.
# Default: no
LogVerbose yes


6. Descomente a linha "LogSyslog":

# Use system logger (can work together with UpdateLogFile).
# Default: no
LogSyslog yes


7. Descomente a linha "PidFile" e altere seu valor:

# This option allows you to save the process identifier of the daemon
# Default: disabled
PidFile /var/run/clamav/freshclam.pid


8. Descomente a linha "NotifyClamd" e altere seu valor:

# Send the RELOAD command to clamd.
# Default: no
NotifyClamd /etc/clamav/clamd.conf


Finalmente, execute o comando a seguir para verificar se as alterações na configuração foram aplicadas e também para verificar atualizações para o ClamAV:

# freshclam


Não se preocupe se ocorrerem quaisquer erros com relação ao clamd. Isso é normal, visto que ainda não configuramos nem iniciamos ele.

Configurando o clamd


O clamd é o componente do ClamAV que executa a proteção residente, verificando a existência de vírus em tempo real nos programas e arquivos, à medida em que estes vão sendo abertos.


Sua configuração encontra-se no arquivo "/etc/clamav/clamd.conf". Abra esse arquivo e faça as alterações listadas a seguir (se você preferir, aqui encontra-se uma cópia desse arquivo com as alterações já feitas):


1. Comente a linha "Example":

# Comment or remove the line below.
#Example


2. Descomente a linha "LogFile" e altere seu valor:

# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
# Default: disabled
LogFile /var/log/clamav/clamd.log


3. Descomente a linha "LogFileMaxSize":

# Maximum size of the log file.
# Value of 0 disables the limit.
# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
# in bytes just don't use modifiers.
# Default: 1M
LogFileMaxSize 2M


4. Descomente a linha "LogTime":

# Log time with each message.
# Default: no
LogTime yes


5. Descomente a linha "LogSyslog":

# Use system logger (can work together with LogFile).
# Default: no
LogSyslog yes


6. Descomente a linha "LogVerbose":

# Enable verbose logging.
# Default: no
LogVerbose yes


7. Descomente a linha "PidFile" e altere seu valor:

# This option allows you to save a process identifier of the listening
# daemon (main thread).
# Default: disabled
PidFile /var/run/clamav/clamd.pid


8. Altere o valor da linha "LocalSocket":

# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
LocalSocket /var/run/clamav/clamd.socket


9. Descomente a linha "TCPSocket":

# TCP port address.
# Default: no
TCPSocket 3310


10. Descomente a linha "ScanMail":

# Enable internal e-mail scanner.
# Default: yes
ScanMail yes


11. Descomente a linha "ClamukoScanOnAccess":

##
## Clamuko settings
## WARNING: This is experimental software. It is very likely it will hang
## up your system!!!
##

# Enable Clamuko. Dazuko (/dev/dazuko) must be configured and running.
# Default: no
ClamukoScanOnAccess yes


12. Observe o trecho a seguir do arquivo de configuração do clamd:

# Set the include paths (all files inside them will be scanned). You can have
# multiple ClamukoIncludePath directives but each directory must be added
# in a seperate line.
# Default: disabled
#ClamukoIncludePath /home
#ClamukoIncludePath /students

# Set the exclude paths. All subdirectories are also excluded.
# Default: disabled
#ClamukoExcludePath /home/bofh


Normalmente, descomentamos essas linhas e fazemos a configuração do Clamuko (o componente do clamd que faz a comunicação com o Dazuko), definindo quais diretórios queremos incluir e quais queremos excluir da proteção residente. No entanto, se você abrir o código-fonte do patch, verá uma nota do autor dizendo que não é necessário mais configurar essas opções. Então, a proteção residente deve atuar sobre todos os diretórios que o DazukoFS disponibilizar, bastando, portanto, a configuração deste (ver como configurar o DazukoFS para montar as pastas na inicialização do sistema em Desmistificando a instalação do Dazuko).


Salve o arquivo e execute o comando a seguir para verificar se as alterações na configuração foram aplicadas:

# clamd


Configurando o clamav-milter


O clamav-milter é o componente do ClamAV que se integra aos servidores de e-mail, verificando a existência de vírus nos anexos.


Sua configuração encontra-se no arquivo "/etc/clamav/clamav-milter.conf". Abra esse arquivo e faça as alterações listadas a seguir (se você preferir, aqui encontra-se uma cópia desse arquivo com as alterações já feitas):


1. Comente a linha "Example":

# Comment or remove the line below.
#Example


2. Descomente a linha "MilterSocket" e altere seu valor:

# Define the interface through which we communicate with sendmail
# This option is mandatory! Possible formats are:
# [[unix|local]:]/path/to/file - to specify a unix domain socket
# inet:port@[hostname|ip-address] - to specify an ipv4 socket
# inet6:port@[hostname|ip-address] - to specify an ipv6 socket
#
# Default: no default
MilterSocket /var/run/clamav/clamav-milter.socket
#MilterSocket inet:7357


3. Descomente a linha "PidFile" e altere seu valor:

# This option allows you to save a process identifier of the listening
# daemon (main thread).
#
# Default: disabled
PidFile /var/run/clamav/clamav-milter.pid


4. Adicione a linha "ClamdSocket":

# Define the clamd socket to connect to for scanning.
# This option is mandatory! Syntax:
# ClamdSocket unix:path
# ClamdSocket tcp:host:port
# The first syntax specifies a local unix socket (needs an absolute path) e.g.:
# ClamdSocket unix:/var/run/clamd/clamd.socket
# The second syntax specifies a tcp local or remote tcp socket: the
# host can be a hostname or an ip address; the ":port" field is only required
# for IPv6 addresses, otherwise it defaults to 3310
# ClamdSocket tcp:192.168.0.1
#
# This option can be repeated several times with different sockets or even
# with the same socket: clamd servers will be selected in a round-robin fashion.
#
# Default: no default
#ClamdSocket tcp:scanner.mydomain:7357
ClamdSocket /var/run/clamav/clamd.socket


5. Descomente a linha "LogFile" e altere seu valor:

# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
#
# Default: disabled
LogFile /var/log/clamav/clamav-milter.log


6. Descomente a linha "LogFileMaxSize":

# Maximum size of the log file.
# Value of 0 disables the limit.
# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
# in bytes just don't use modifiers.
#
# Default: 1M
LogFileMaxSize 2M


7. Descomente a linha "LogTime":

# Log time with each message.
#
# Default: no
LogTime yes


8. Descomente a linha "LogSyslog":

# Use system logger (can work together with LogFile).
#
# Default: no
LogSyslog yes


9. Descomente a linha "LogVerbose":

# Enable verbose logging.
#
# Default: no
LogVerbose yes


Finalmente, execute o comando a seguir para verificar se as alterações na configuração foram aplicadas:

# clamav-milter


Executando o ClamAV na inicialização do sistema


Nessa etapa, vamos configurar o sistema para executar o clamd, o clamav-milter e o freshclam na inicialização para não precisemos mais nos preocupar com o ClamAV: ele já estará verificando os arquivos em busca de vírus e baixando as atualizações para sua base de dados automaticamente.


1. Abra um editor de texto, copie e cole as linhas a seguir, e salve como "/etc/init.d/clamav":

#!/bin/sh
# Inicia/para/reinicia o ClamAV

# Inicia o ClamAV:
clamav_start() {
if [ -x /usr/sbin/clamd ]; then
echo "Starting clamd daemon: /usr/sbin/clamd"
/usr/sbin/clamd
sleep 1
fi
if [ -x /usr/sbin/clamav-milter ]; then
echo "Starting clamav-milter daemon: /usr/sbin/clamav-milter"
/usr/sbin/clamav-milter
sleep 1
fi
if [ -x /usr/bin/freshclam ]; then
echo "Starting freshclam daemon: freshclam -d"
freshclam -d
fi
}

# Para o ClamAV:
clamav_stop() {
echo "Stopping clamd daemon: killall clamd"
killall clamd
echo "Stopping clamav-milter daemon: killall clamav-milter"
killall clamav-milter
echo "Stopping freshclam daemon: killall freshclam"
killall freshclam
}

# Reinicia o ClamAV:
clamav_restart() {
clamav_stop
sleep 1
clamav_start
}

case "$1" in
'start')
clamav_start
;;
'stop')
clamav_stop
;;
'restart')
clamav_restart
;;
*)

echo "Usage: $0 start|stop|restart"
esac


2. Torne esse arquivo executável com o seguinte comando no terminal:

# chmod +x /etc/init.d/clamav


3. Para que o ClamAV seja carregado toda vez que o sistema for iniciado, você pode executar o seguinte comando, se utiliza Debian (ou uma distribuição baseada nele):

# update-rc.d clamav defaults


ou executar os comandos a seguir, se utiliza outra distribuição:

# ln -s /etc/init.d/clamav /etc/rc0.d/K20clamav
# ln -s /etc/init.d/clamav /etc/rc1.d/K20clamav
# ln -s /etc/init.d/clamav /etc/rc6.d/K20clamav
# ln -s /etc/init.d/clamav /etc/rc2.d/S20clamav
# ln -s /etc/init.d/clamav /etc/rc3.d/S20clamav
# ln -s /etc/init.d/clamav /etc/rc4.d/S20clamav
# ln -s /etc/init.d/clamav /etc/rc5.d/S20clamav


4. Para finalizar, você pode reiniciar o computador e verificar se o ClamAV foi carregado.


Após reiniciar o computador, execute o seguinte comando no terminal:

$ ps aux | grep clam


Se esse comando retornar algo parecido com isso:

root 4204 0.0 16.6 96456 85972 ? Ssl 19:30 0:00 /usr/sbin/clamd
clamav 4212 0.0 0.1 3268 852 ? Ss 19:30 0:00 freshclam -d
vinicius 6719 0.0 0.1 2216 712 pts/0 S+ 19:31 0:00 grep clam


é sinal de que o ClamAV foi carregado corretamente.

Testando o ClamAV


Há uma forma bastante simples de testar o ClamAV e ver se ele está funcionando corretamente: baixando o EICAR, um conhecido arquivo de teste de antivírus. Esse arquivo não contém na verdade nenhum vírus. Apenas todos os antivírus o adicionam às suas bases de dados para que seja possível verificar seu funcionamento. Assim, se seu antivírus detectar um vírus nesse arquivo, não se espante, seu computador não está infectado! Apenas seu antivírus está funcionando corretamente.


Vamos ver como o ClamAV se comporta diante desse arquivo:


1. Crie uma pasta de teste para baixar o arquivo de teste (o comando a seguir é só um exemplo) e entre nessa pasta:

$ mkdir /home/vinicius/teste

$ cd /home/vinicius/teste


2. Baixe o arquivo de teste eicar.com e salve-o nessa pasta. Isso pode ser feito também através de um comando no terminal:

$ wget http://www.eicar.org/download/eicar.com


3. Agora, execute no terminal o comando:

$ clamscan


Se ele retornar uma mensagem como a seguir:

/home/vinicius/teste/eicar.com: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 678712
Engine version: 0.95.2
Scanned directories: 1
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 2.597 sec (0 m 2 s)


é sinal de que a detecção de vírus do ClamAV está funcionando corretamente. Agora vamos testar a proteção residente.


4. Tente agora abrir o arquivo:

$ vi eicar.com


Se for negado o acesso ao arquivo, é sinal de que a proteção residente do ClamAV também está funcionando corretamente.


Feito isso, você tem a certeza de que o ClamAV está instalado no seu computador e que está funcionando adequadamente.

Fontes

http://www.clamav.net/doc/latest/html/

https://wwws.clamav.net/bugzilla/show_bug.cgi?id=1691

http://lurker.clamav.net/message/20090908.223714.a282dbd1.pt.html

http://www.vivaolinux.com.br/artigo/ClamAV-em-desktop/

http://www.vivaolinux.com.br/artigo/Tutorial-de-Instalacao-do-ClamAV-Antivirus-open-Source/

http://www.vivaolinux.com.br/artigo/Configuracao-de-um-servidor-com-clamav/

http://www.vivaolinux.com.br/artigo/Solucao-completa-com-o-sendmail-(segunda-edicao)?pagina=3

http://www.vivaolinux.com.br/artigo/Qmail-simples-e-funcional?pagina=9

http://www.vivaolinux.com.br/artigo/Trabalhando-com-init-no-Debian/?pagina=5

http://www.vivaolinux.com.br/artigo/Fundamentos-do-sistema-Linux-comandos-do-Linux/

Bibliografia: http://avmlinux.blogspot.com

sexta-feira, 7 de maio de 2010

Instalando Wine

Instalação do Winehq


Após baixado o pacote da vossa respectiva pra sua distro, é só instalar sem segredos; utilizando o comando installpkg, no meu caso que uso slackware 13.0

Depois de instalado, é só brincar com os aplicativos do windows no linux.


http://sourceforge.net/projects/wine/files/
ou
http://sourceforge.net/projects/wine/files/Slackware%20Packages/1.1.43/wine-1.1.43-i486-1sg.txz/download

Bibliografia: http://www.winehq.org/

Imspector Controle de Mensageiros

Dependências, download e instalação

Dependências:

* Versão usada nesse artigo: 0.9
* Distribuição Slackware Linux 13.0
* MySQL 4 ou superior (não vou abranger a instalação do mesmo)
* OpenSSL versão 0.6 ou superior (não vou abranger a instalação do mesmo)


Download:

# wget http://www.imspector.org/downloads/imspector-0.9.tar.gz

Descompacte-o:

# tar -zxvf imspector-0.9.tar.gz

Instalação:

Entre na pasta:

# cd imspector-0.9

Compile e instale:

# make
# make install

Instale o certificado SSL:

# make install-ca-cert

Instalação da biblioteca de conexão do MySQL:

# make mysqlloggingplugin.so
# cp mysqlloggingplugin.so /usr/lib/imspector

Pronto, o Imspector e seu certificado estão instalados, os mesmos ficaram nas seguintes pastas:

* /usr/sbin/imspector - binários;
* /usr/lib/libimspector.so - biblioteca compartilhada;
* /usr/lib/imspector/ - plugins;
* /usr/lib/imspector/*loggingplugin.so - plugins de log;
* /usr/etc/imspector/ - arquivos de configuração e certificados.


Mais informações no site oficial do Imspector.


Configuração e execução

vamos criar o banco de dados:

Obs.: Para prosseguir nesse tópico o MySQL tem que estar instalado e rodando perfeitamente.

Entre no prompt do MySQL:

# mysql -p (em seguida digite a senha do root do MySQL)

Criação do banco:

mysql> create database imspector; (atente para o ; no final do comando dentro do prompt do mysql)

Criação da tabela:

mysql> CREATE TABLE `messages` (
`id` int(11) NOT NULL auto_increment,
`timestamp` int(11) NOT NULL default '0',
`clientaddress` text NOT NULL,
`protocolname` text NOT NULL,
`outgoing` int(11) NOT NULL default '0',
`type` int(11) NOT NULL default '0',
`localid` text NOT NULL,
`remoteid` text NOT NULL,
`filtered` int(11) NOT NULL default '0',
`categories` text NOT NULL,
`eventdata` blob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Pronto, criado o banco de dados, vamos ao arquivo de configuração, sendo o mesmo situado no seguinte caminho: /usr/etc/imspector/imspector.conf

Opções gerais:

# Portas de trabalho
port=16667
http_port=18080

# Rede de trabalho
listeneaddr=0.0.0.0

# Diretório de plugins
plugin_dir=/usr/lib/imspector

# Protocolos habilitados
icq_protocol=on
irc_protocol=on
msn_protocol=on
yahoo_protocol=on
gg_protocol=on
jabber_protocol=on
https_protocol=on

# Além de gravar em banco ele também guarda os registros em log
log_typing_events=on
file_logging_dir=/var/log/imspector

# Conexão com o banco, descomentar e completar com seus dados
# MySQL logging plugin stuff
mysql_server=localhost
mysql_database=imspector
mysql_username=SEU USUÁRIO QUE CONECTA AO BANCO
mysql_password=SENHA DO USUÁRIO

A configuração básica está pronta, agora falta colocar umas regras de redirecionamento para o Imspector começar a captura.

Adicione as seguintes regras no seu script do iptables:

# Regras para quem usa proxy transparente

# MSN:
iptables -t nat -A PREROUTING -p tcp --destination-port 1863 -j REDIRECT --to-ports 16667
# Jabber:
iptables -t nat -A PREROUTING -p tcp --destination-port 5222 -j REDIRECT --to-ports 16667
# Jabber over SSL:
iptables -t nat -A PREROUTING -p tcp --destination-port 5223 -j REDIRECT --to-ports 16667
# ICQ/AIM:
iptables -t nat -A PREROUTING -p tcp --destination-port 5190 -j REDIRECT --to-ports 16667
# Yahoo:
iptables -t nat -A PREROUTING -p tcp --destination-port 5050 -j REDIRECT --to-ports 16667
# IRC:
iptables -t nat -A PREROUTING -p tcp --destination-port 6667 -j REDIRECT --to-ports 16667
# Gadu-Gadu:
iptables -t nat -A PREROUTING -p tcp --destination-port 8074 -j REDIRECT --to-ports 16667

# Regras para quem redireciona todo o trafico para o Squid, não usa proxy transparente:

# MSN:
iptables -t nat -A OUTPUT -p tcp --destination-port 1863 -m owner --uid-owner 100 -j REDIRECT --to-ports 16667
# Jabber:
iptables -t nat -A OUTPUT -p tcp --destination-port 5222 -m owner --uid-owner 100 -j REDIRECT --to-ports 16667
# Jabber over SSL:
iptables -t nat -A OUTPUT -p tcp --destination-port 5223 -m owner --uid-owner 100 -j REDIRECT --to-ports 16667
# ICQ/AIM:
iptables -t nat -A OUTPUT -p tcp --destination-port 5190 -m owner --uid-owner 100 -j REDIRECT --to-ports 16667
# Yahoo:
iptables -t nat -A OUTPUT -p tcp --destination-port 5050 -m owner --uid-owner 100 -j REDIRECT --to-ports 16667
# IRC:
iptables -t nat -A OUTPUT -p tcp --destination-port 6667 -m owner --uid-owner 100 -j REDIRECT --to-ports 16667
# Gadu-Gadu:
iptables -t nat -A OUTPUT -p tcp --destination-port 8074 -m owner --uid-owner 100 -j REDIRECT --to-ports 16667

Execução:

A sua execução é simples, para ter um debug do que está acontecendo:

# imspector -D

Modo normal:

# imspector

Agora é só criar um script de inicialização no /etc/rc.d e colocar no rc.M e pronto, essa parte está concluída.

O Imspector 0.7 vem com um script CGI em Perl para visualizar as conversas, porém esse script pega as conversas registradas em log, não do banco. O que passei no script é o básico para seu funcionamento, visite a pagina do desenvolvedor e explore seus recursos.

Bibliografia: www.imspector.org www.blogdobalani.blogspot.com

SEJA LIVRE! VIVA O LINUX!