segunda-feira, 1 de novembro de 2010

Utilizando o gBak do Firebird para efetuar backup/restore

Utilizando o gBak do Firebird para efetuar backup/restore

Saiba quando e como usar o utilitário gBak do Firebird para a exeução de backup/restore.
STAVARENGO, RAFAEL
Programador de sistemas com 8 anos de experiência, integrante da equipe editorial da revista Clube Delphi. Domínio em Java, PHP e UML. Sólido conhecimento em Design Patterns e metodologias ágeis. Graduado em Análise e Desenvolvimento de Sistemas pela...

Ver space do autor


Estatísticas:
Visualizações:
26326
Favoritado:
10 vez(es)
Conteúdo:
Didática:
Utilidade:
8 0
votos: 8

Serviços:
Inclua seu próprio artigo! (ajuda)
Inclua um comentário
Adicionar aos Favoritos
Marcar como lido/assistido
Incluir anotação pessoal (ajuda)
RSS Feeds
Versão para impressão



Utilizando o gBak do Firebird para efetuar backup/restore



Todos os bancos de dados existentes estão sujeitos a erros e perca de dados, portanto, se torna essencial a geração do backup da base de dados. Neste artigo nós veremos como criar backup através do utilitário gBak do Firebird.



Existem duas maneiras de se criar um backup: Através do utilitário gBak (por linha de comando) e através da API de serviços. As duas formas, de modo geral, fazem exatamente a mesma coisa, porém, com o gBak você pode salvar o arquivo de backup na máquina onde o gBak foi executado, indiferentemente se essa máquina é o servidor ou terminal. Através da API de serviços isto não é possível: Você poderá executar o backup em qualquer computador, mas o arquivo de backup só poderá ser salvo no servidor. Isso acontece porque quando você executa o backup pela API de serviços quem executa o backup é o próprio servidor.



Por outro lado, através da API de serviços você pode colocar a rotina de backup integrado ao seu sistema. Caso você queira aprender como fazer um backup no firebird utilizando a API de serviços utilizando o Delphi veja este outro artigo: http://www.devmedia.com.br/articles/viewcomp.asp?comp=4885.



O utilitário gBak fica dentro da basta Bin, no diretório onde você instalou o firebird. Como a maioria dos programas utilizados por linha de comando, o gBak também utiliza de parâmetros para a configuração do backup a ser gerado. Veja na tabela abaixo os parâmetros existentes e o que significa cada um.



Parâmetro


Abreviação


Descrição

-USER





Nome do usuário que fará o backup/restore.

-PASSWORD


-PAS


Senha do usuário que vai executar o backup/restore.

-ROLE


-RO


Role que será usado para conectar a base de dados.

-BACKUP_DATABASE


-B


Gera um backup.

-CREATE_DATABASE


-C


Cria um banco de dados a partir de um arquivo de backup já pronto.

-GARBAGE_COLLECT


-G


Não realiza o processo de garbage collection durante o processo de backup, porém, é recomendado que você sempre realize o garbage collect, pois o mesmo é responsável por excluir as versões de registro que não são mais necessárias.

-INACTIVE


-I


Desativa os índices durante o processo de restauração do banco de dados.

-IGNORE


-IG


Ignora os possíveis erros de checksum.

-NO_VALIDITY


-N


Restaura o banco de dados sem fazer as validações de integridade.

-KILL


-K


Restaura um banco de dados, porém, não restaura os arquivos de espelho (shadow), do banco de dados.

-LIMBO


-L


Ignora todas as transações que por algum motivo não foram confirmadas e nem descartadas.

-MODE


-MO


Determina se o banco restaurado será atualizável (read_write), ou apenas leitura (read_only).

-META_DATA


-M


Faz backup apenas da estrutura do banco de dados, sem os dados contidos nele.

-NT





Cria um arquivo de backup que só poderá ser restaurado num computador que possua um processador compatível com o processador da máquina onde o backup foi gerado (backup não transportável).

-TRANSPORTABLE


-T


Cria um backup com os dados no formato XDR, ou seja, o backup poderá ser restaurado em máquinas que utilizem processadores diferentes do processador utilizado na máquina onde foi feito o backup (formato transportável).

-ONE_ATE_A_TIME


-O


Durante a restauração da base de dados será restaurada apenas uma tabela de cada vez.

-PAGE_SIZE


-P


Determina o tamanho das paginas que o banco restaurado usará

-REPLACE_DATABASE


-R


Especifica que caso o banco informado para o restore já exista, ele deverá ser sobreposto.

-SERVICE


-SE


Usa a API de serviço para executar o backup o que fará com que o servidor faça o backup e não o gBak. Como já foi dito anteriormente, esse processo não permitira que o arquivo de backup seja salvo em uma máquina que não seja o servidor.

-USE_ALL_SPACE


-USE_


Recomendado para bases de dados que serão read only, visto que o tamanho do banco de dados pode diminuir consideravelmente, pois os 20% reservado em cada página do banco para uso posterior não serão usados.

-VERIFY


-V


Mostra na tela todo o processo que esta sendo executado no backup/restore.

-Y





Não mostra as mensagens de status ou se você informar o caminho de um arquivo, as mensagem serão armazenadas nele.

-BUFFERS


-BU


Tamanho (em bytes), do cache para o banco que esta sendo restaurado.

-CONVERT


-CO


Grava as tabelas externas do banco de dados dentro do backup como se fossem tabelas internas.

-Z





Mostra a versão do gBak.

-?





Mostra esta lista de comando.



Vamos aos exemplos de como executar um backup. Como o utilitário gBak é um utilitário de linha de comando, todos os exemplos abaixo devem ser digitados através do prompt de comando.



Primeiro exemplo – Gerando um backup

gbak –user SYSDBA –pas masterkey 172.16.20.14:c:\dados.fdb c:\backup.fbk



Neste primeiro exemplo é criado um backup da base de dados dentro do drive C: do computador onde o gBak foi executado. A base de dados que esta sendo feito o backup se encontra no servidor 172.16.20.14, no caminho C:\Dados.fdb. Os parâmetros –user e –pas informam respectivamente o nome e a senha do usuário que esta se conectando a base de dados para executar o backup.



Segundo exemplo – Restaurando um backup

gbak –user SYSDBA –pas masterkey –r –p 4096 -o c:\backup.fbk 172.16.20.14:c:\dados.fdb



Neste exemplo, será gerado um banco no caminho em C:\Dados.fdb dentro do servidor 172.16.20.14. Esse novo banco de dados, terá as paginas com o tamanho de 4093 bytes (4 KB) e caso o banco C:\Dados.fdb já exista, ele será sobrescrito. Alem disso o comando -o informa que durante o processo de restauração, apenas uma tabela por vez será restaurada, o que é útil em caso onde o backup possa estar corrompido.



Agora você já sabe como usar o utilitário para executar backup/restore no Firebird. Lembre-se de que você nunca deve deixar de fazer backup para evitar futuras “dores de cabeça”.

sexta-feira, 23 de julho de 2010

Sistema de HelpDesk

#Sistema de HelpDesk voltado a empresas de suporte em hardware e/ou software, auxiliando o atendimento a clientes de contrato ou não.

#Requisitos minimos:
Servidor Web com suporte a PHP5 e MySQL4 ou superior

#Instalacao:
-Descompactar o arquivo iwd.tar.gz
-Criar o banco de dados no MySQL e importar os dados do arquivo sql/iwd.sql
-Editar o arquivo include/var.php e inserir os dados do seu servidor
-Inserir as permissões a pasta: chmod 777 iwd
-Inserir usuario a pasta chown usuario.grupo iwd

#Usuario
admin

#Senha
iwd2006v1.1

#Licenca
Este software esta licenciado sob uma licenca Creative Commons, para maiores detalhes acesse o link abaixo.
http://creativecommons.org/licenses/by-nc-sa/2.5/br/


Download do Arquivo:
http://codigolivre.org.br/frs/download.php/5103/iwd.tar.gz




#CREDITOS
Kico Zaninetti - kico@livredesenvolvimento.com.br --> Desenvolvimento e analise
Erick Figueira - erick.figueira@livredesenvolvimento --> Administrador e consultoria
Tiago Batalha - batalha.tiago@gmail.com --> Desenvolvimento
Gabriel Barbosa - gabrielbarbosa.info@gmail.com --> Desenvolvimento

http://codigolivre.org.br

SEJA LIVRE, USE LINUX E SIRVA A DEUS...

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!