Páginas

Oito anos de testes

shyrul@debian:~$ A grande idéia de postar tudo aqui, veio do simples fato de que depois de 8 anos de pesquisas, testes e muitos clientes satisfeitos, eu nunca tinha juntado todo o material que consegui com o decorrer do tempo, em um só lugar. A gente ai ficando velho e acaba esquecendo de coisas básicas. E também gostaria de deixar minha contribuição para todos.

.

sexta-feira, 3 de junho de 2011

Montando SAMBA + ANTIVIRUS + LIXEIRA



PDFImprimirE-mail
Funções do servidor:

- Compartilhamento de pastas e arquivos
- Escaneamento de Anti vírus em tempo real, para as pastas compartilhadas (ClamAv ) usando o modulo Scannedonly.
- Lixeira para exclusão de arquivos em rede
- Auditoria de acesso as pastas compartilhadas
Iniciando Foi escolhida a distribuição Debian 5 para a montagem deste tutorial. Para iniciar basta instalar o Debian com as opções de
[x] Sistema Básico
[x] Servidor de arquivos
[x] Ambiente Desktop

*Obs .Caso vc tenha escolhido usar o Ubuntu pule basta ignorar as opções de RCCONF.
As configurações de partições e outras opções não são tão importantes e podem ser escolhidas a vontade, lembrando que este tutorial deva servir para instalação no Ubuntu.
Após instalar o sistema entre como root e no terminal instale o sistema de SSH-Server
# apt-get install openssh-server

Isso permitirá acesso remoto ao seu sistema, o que facilitará muito a manutenção.
Agora conectado via SSH no seu servidor será necessário ajustar os repositórios do APT para atualização dos módulos necessários.
Começe fazendo um backup do arquivo de Sources list.
# cp /etc/apt/sourceslist /etc/apt/sources.list.default

Agora vamos editar ele e adicionar as seguintes linhas
# nano /etc/apt/sources.list
Salve o arquivo e logo em seguida realize a atualização dos pacotes
# apt-get update

Caso você tenha acabado de instalar o seu sistema e usou o método de baixar os pacotes via internet isso não será necessário, já que os pacotes estão atualizados.
Eu particularmente gosto de otimizar meu sistema desativando alguns serviços que não são necessários neste ambiente. Utilize o comando abaixo para entrar no rcconf e desativar os serviços que não utilizaremos
# apt-get install rcconf

Após instalar execute ele
# rcconf

Desative os seguintes serviços:
* exim4
* mountnfs-bootclean.sh
* mountnfs.sh
* nettalk
* nfs-common
* nfs-kernel-server
* openbsd-inetd
* portmap
* rsyslog
* umountnfs.sh

Agora vamos instalar o Sysklogd
# apt-get install syslogd

E vamos iniciar a instalação do ClamAv Antivirus
# apt-get install clamav clamav-docs clamav-daemon clamav-freshclam

E interessante tbm instalar o pacote de testes de vírus para o ClamAv .
# apt-get install clamav-testfiles

Devemos agora instalar as bibliotecas do ClamAv para compilação posterior do ScannedOnly. Isso é necessário para compilação, sem esta biblioteca não conseguiremos prosseguir com a instalação do AntiVirus.
# apt-get install libclamav-dev

Um problema que sempre ocorre com antvirus instalados em servidores Linux é que o próprio servidor não tem as bibliotecas necessárias para abrir arquivos compactados, isso impede o escaneamento. Para solucionar este problemas vamos instalar os pacotes necessários para abrir vários arquivos como os: arc, bzip2, cab, 7zip, zip e rar.
# apt-get install arc bzip2 cabextract p7zip unzip unrar

Como o Samba-vscan o Scannedonly necessita dos arquivos contendo o código fonte do samba. Como quase toda a instalação está baseada em apt-get , por isso alteramos o souce.list no inicio do tutorial.
Antes de realizar-mos o processo de instalação do pacote com os fontes será necessária a instalação do pacote dpkg-dev, que traz como dependência uma série de pacotes como compiladores, bibliotecas e ferramentas de desenvolvimento como o make.
# apt-get install dpkg-dev

Agora vamos instalar o pacote de fontes do Samba:
# cd /usr/local/src

# apt-get source samba

Ao finalizar ele deve realizar o download de 3 arquivos e deve também criar um diretório referente as fontes do Samba, um arquivos contendo o código fonte, outro contendo os patchs de segurança.
Neste diretório estão os arquivos com os fontes que utilizaremos na compilação do ScannedOnly.
Devemos agora acessar o diretório dos fontes do Samba e gerar o make file, bem como, alguns arquivos headers devido eles conterem alguns prototipos de funções utilizados pelo scannedonly, este procedimento também é necessário na compilação do samba-vscan
# cd samba-3.x.x/source (onde o X deve ser substituido pela versão que foi baixada)
# ./configure
Tome um café
# make proto
Tome outro café
# make install

Obs. Vai demorar para compilar e instalar!
Agora vamos baixar os fonts do ScannedOnly
# cd /usr/local/src

# wget http://olivier.sessink.nl/scannedonly/scannedonly-0.15.tar.bz2

Vamos descompactar e depois gerar os MAKE’S dos arquivos
# tar -xvjf scannedonly-0.15.tar.bz2
# cd scannedonly-0.15
# ./configure -with-samba-source=/usr/local/src/samba-3.2.5/source -with-samba-vfs-dir=/usr/lib/samba/vfs

Observer que o comando é dado de uma vez só, e não dois comandos separados... atente-se tambem pelos parametros passados respeitando os espaços entre cada um deles
Atente ao fato do PATH do diretório dos fontes, onde estou considerando que instalamos o pacote no diretório /usr/local/src, mude o PATH conforme o diretório de trabalho que foi utilizado durante o comando “apt-get source samba”.
Realize a compilação e instação:
# make && make install

Agora devemos criar uma Shell de inicialização do Script par o ScannedOnly
# cd /etc/init.d
# nano scannedonly

Cole o seguinte conteudo dentro do Arquivo:
#!/bin/sh
scannedonly=”/usr/local/sbin/scannedonlyd_clamav”
port=”2020″
quarent_dir=”/quarentena”
$scannedonly -p $port -d $quarent_dir

Vamos alterar a permissão do arquivo para tornar ele um executável
# chmod +x scannedonly

Vamos agora criar um link simbólico para inicialização do daemon
# update-rc.d scannedonly defaults

Ufa, agora vamos partir para o Samba, realizando um backup do arquivo de configuração para consulta futura.

# mv /etc/samba/smb.conf /etc/samba/smb.conf-default

Agora crie um novo arquivo smb.conf.
# nano /etc/samba/smb.conf

[global]
netbios name = fileserver server
string = Servidor de arquivos
workgroup = Rafael
socket options = TCP_NODELAY SO_RCVBUF=102400 SO_SNDBUF=102400
interfaces = lo eth0
bind interfaces only = yes
log level = 0
passdb backend = tdbsam
max log size = 1024
load printers = no
printing = bsd
printcap name = /dev/null
getwd cache = yes
[homes]
comment = Diretorio pessoal - %U
path = /arquivos/%U
read only = no
guest ok = yes
vfs object = recycle full_audit scannedonly
# Auditoria
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facilit = local5
full_audit:priority = notice
# Antivirus
scannedonly: domain_socket = False
scannedonly: portnum = 2020
scannedonly: scanhost = localhost
scannedonly: hide_noscanned_files = True
# Lixeira recycled:keeptree = yes
recycle:versions = yes
recycle:repository = /lixeira/%U
recycle:exclude = *.tmp, *.log, *.iso, *.wav, *.mp3, *.wmv, *.avi
recycle:excludir = tmp, cache
[lixeira] comment = Lixeira - %U
path = /lixeira/%U
valid users = %U
create mask = 0700
directory mask = 0700
browseable = yes
read only = no
vfs object = scannedonly
# Antivirus
scannedonly: domain_socket = False
scannedonly: portnum = 2020
scannedonly: scanhost = localhost
scannedonly: hide_noscanned_files = True
[quarentena] comment = Diretorio de quarentena
path = /quarentena
valid users = admin
create mask = 0700
directory mask = 0700
browseable = no
read only = no
Edite as configurações de
netbios name = 
server string = 
workgroup =

após salvar execute o comando testparm para verificar possíveis erros no seu arquivo

# testparm

Agora iniciei os serviços do samba
#/etc/init.d/samba restart

Crie os diretórios de Arquivos de usuário, lixeira e quarentena
# mkdir /arquivos /lixeira /quarentena
Agora vamos criar as contas no servidor
# chmod +x gerenciador

E execute ele
# ./gerenciador

Lixeira 
Copie alguns arquivos para o compartilhamento do(s) usuário(s) que você criou, em seguida exclua-o(s) e verifique que o mesmo foi movido para o compartilhamento lixeira.
Arquivos infectados
ANTIVIRUS
Você pode realizar o teste com arquivos infectados utilizando os arquivos de teste que foram instalados com o pacote clamav-testfiles.
Os arquivos se encontram no diretório /usr/share/clamav-testfiles, você pode simplesmente copia-los para o diretório utilizado como compartilhamento pessoal do usuário.

Auditorias!
Você pode visualizar logs de compartilhamento usando o comando
# tail -f /var/log/messages |grep smbd_audit
Para testes com virus basta copier o arquivo infectado dentro da pasta, este deve ser substituido por um arquivo TXT com o nome do arquivo anterior… o arquivo infectado sera movido para a quarentena.
Para verificar o log de arquivos escaneados e infectados use
# tail -f /var/log/syslog |grep scannedonly

A lixeira funciona de forma simples, para testa la basta apagar um arquivo que esteja na pasta. Isso fará com que o servidor mova o arquivo para a pasta “lixeira” de cada usuário, alem disso o servidor guarda as versões de cada arquivo, com um [2] ou [3] se outro arquivo com mesmo nome for deletado anteriormente...

Conclusões 
Através dos módulos VFS do Samba é possível expandir as capacidades de um servidor Samba, sendo que, recursos como Lixeira e Antivirus são muito bem vindos a Servidores de Arquivos pois evitam dores de cabeça maiores devido exclusões acidentais, bem como, infecção de arquivos importantes e claro, que nosso servidor se tranforme em repositório de virus.
Em relação ao módulo Scannedonly, ele permite que o Servidor Samba tenha sua escalabilidade aumentada com relação a ambientes onde é realizado o acesso a muitos arquivos simultâneamente bem como, esses arquivos sejam grandes e/ou compactados, simplesmente graças ao bom desempenho que o Scannedonly proporciona nessas condições.

Material consultado da publicação de Waldemar Dibiazi Junior no http://blognu.wordpress.com/2010/08/31/servidor-antivirus-lixeira-auditoria-debian/
Materiais de apóio: Guia do hardware, Viva o Linux, debian.org

Nenhum comentário:

Postar um comentário