Logo Hardware.com.br
Equipe GdH
Equipe GdH Geek Moderador
3.5K Mensagens 82 Curtidas

Debian: servidor de arquivos, antivirus, lixeira e auditoria

#1 Por Equipe GdH 19/11/2009 - 11:28
ImagemDebian: servidor de arquivos, antivirus, lixeira e auditoria

A implementação de servidores de arquivos utilizando a plataforma GNU/Linux permite a utilização de diversos recursos, bem como obter ganhos de performance e segurança. Este artigo irá apresentar a implementação de um servidor arquivos utilizando a distribuição Debian GNU/Linux Lenny, bem como, a utilização de 3 módulos VFS (Virtual File System) no Samba, para disponibilizar as funcionalidades de Lixeira, Auditoria e Antivirus.
Waldemar Dibiazi Junior
19/11/2009

https://www.hardware.com.br/dicas/servidor-antivirus-lixeira-auditoria-debian.html

Comente aqui!
jgama
jgama Ubbergeek Registrado
7.1K Mensagens 65 Curtidas
#3 Por jgama
19/11/2009 - 15:16
como faria para que o subdiretorio quarentena fique nos home dos usuários, pois tenho um script que quando cria os usuario já cria o diretorio .quarentema por exemplo:

root@server-pdc:/etc/init.d# ls -la /etc/skel.smb/
total 48
-rw-r--r-- 1 root root 3871 2009-11-12 17:06 !
dr-xr-xr-x 7 root root 4096 2009-11-15 14:01 .
drwxr-xr-x 115 root root 4096 2009-11-19 14:02 ..
drwxr-xr-x 2 root root 4096 2009-10-26 09:16 Lixeira
drwxr-xr-x 2 root root 4096 2009-10-26 09:16 mail
drwxr-xr-x 2 root root 4096 2009-10-26 09:16 Meus documentos
drwxr-xr-x 2 root root 4096 2009-10-26 09:16 PDF
drwxr-xr-x 2 root root 4096 2009-10-26 09:16 .quarentena
root@server-pdc:/etc/init.d#

O script ficaria assim?

#!/bin/sh
scannedonly="/usr/local/sbin/scannedonlyd_clamav"
port="2020"
quarent_dir="/home/$USER/.quarentena"
$scannedonly -p $port -d $quarent_dir

EDITADO: fiz um teste agora com um arquivo infectado gravando no home e um usuario e nada de deletar o arquivo infectado automatico.

tem que liberar a porta 2020 no firewall?

Abraço
" O DVD Pirata de hoje é a bala perdida de amanhã"
Autoria: Bárbara Gancia - Jornalista

Valdir
Sumaré - SP
waldemarjr
waldemarjr Novo Membro Registrado
3 Mensagens 0 Curtidas
#4 Por waldemarjr
19/11/2009 - 16:15
Em relação ao scanning dos arquivos infectados e mover eles para o diretório de quarentena, existem duas opções:

- A primeira é utilizar conexão usando sockets UNIX;
- A segunda conforme eu utilizei, foi através de conexões UDP na porta
2020.
Caso o antivirus esteja na mesma maquina do Samba a conexão UDP
é realizada através da interface loopback, então a seguinte regra no iptables resolveria:
- iptables -I INPUT -i lo -j ACCEPT

No ambiente q escrevi o artigo, eu não utilizei firewall, mas.... após sua duvida, eu inseri a seguintes regras na chain INPUT e funcionou corretamente:

iptables -P INPUT DROP
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT


Em relação a mover para diretórios de quarentenas individuais, isso estou verificando, pois foi uma das funcionalidades que quis implementar.
Mas irei verificar e posto aqui o resultado.

Abraços
waldemarjr
waldemarjr Novo Membro Registrado
3 Mensagens 0 Curtidas
#5 Por waldemarjr
19/11/2009 - 16:59
Verifiquei a documentação do Scannedonly, e pelo que parece não há forma de mover os arquivos para diretórios individuais de cada usuário, deste modo, implementei um pequeno shell script que pode ter a sua execução agendada no cron para que de tempos em tempo ele mova os arquivos de cada usuário para seus respectivos diretórios de quarentena pessoais.


# Shell script que move arquivos contidos no diretorio de quarentena principal
# para o diretorio de quarentena individual de cada usuario
# Utilizado em conjunto com o software Samba+Clamav+Scannedonly
#
# por Waldemar Dibiazi Junior
#

quarent_dir="/quarentena"
home_usuario="/home"
quarent_dir_usuario=".quarentena"
usuarios=`ls $quarent_dir -l |cut -f3 -d" "`
num_arqs=`echo $usuarios |wc -w`
if [ $num_arqs -gt 0 ]; then
i=1
for arq in $quarent_dir/*; do
usuario=`echo $usuarios |cut -f$i -d" "`
mv $arq $home_usuario/$usuario/$quarent_dir_usuario/.
((i++))
done
fi

Apesar que existe um detalhe, se o usuário tiver acesso ao diretório .quarentena, o modulo VFS do ScannedOnly irá detectar o virus
novamente e moverá novamente para o diretório de quarentena principal, e na proxima execução do script ele moverá o mesmo arquivo para o diretório de quarentena do usuário, gerando um certo loop cada vez que o usuário acessar o diretório .quarentena.

Nesse caso, creio que seria melhor criar um compartilhamento da seguinte forma:

[quarentena]
path = /quarentena_usuarios
valid users = admin
browseable = no


Alterando obviamente o sheel script para esta nova situação


Deste modo, somente o usuario admin teria acesso, e ao mesmo tempo este compartilhamento não estaria fazendo uso do módulo VFS
e fazer o Scannedonly mover o arquivo que já está no diretório individual de quarentena do usuário, para o diretório principal de quarentena.


Abraços
jgama
jgama Ubbergeek Registrado
7.1K Mensagens 65 Curtidas
#7 Por jgama
23/11/2009 - 12:12
Olá Waldemar tudo bem!!

Antes de fazer o que vc deu idéia, eu fiz a instalação e configuração conforme seu artigo, não mudei um virgula se quer.

Mas quando fui fazer o teste, o arquivo infectado continua no home do usuário.

Porque não removeu e nem deu alerta de virus?

#tail -f /var/log/syslog |grep scannedonly
Nov 23 12:24:12 server-pdc scannedonlyd_clamav[31884]: Status: scanned 0 files and 0 large files in 10 minutes; min 0/max 0 requests on small queue, min 0/max 0 requests on large queue



Um detalhe, criei um usuário cobaia e movi o arquivo infectado via console.

Vc saberia dizer porque não deu certo?

Abraço
" O DVD Pirata de hoje é a bala perdida de amanhã"
Autoria: Bárbara Gancia - Jornalista

Valdir
Sumaré - SP
waldemarjr
waldemarjr Novo Membro Registrado
3 Mensagens 0 Curtidas
#8 Por waldemarjr
23/11/2009 - 12:48
O Scannedonly é um módulo VFS que trabalha em conjunto com o Samba, até ai tudo bem, por tanto, ele somente solicitará scanning de arquivos se por exemplo, você mover um arquivo infectado para o home do usuário, utilizando chamadas via protocolo CIFS, ou seja, estando numa estação Windows ou Linux e realizando acesso ao diretório compartilhado por intermédio do Samba.

O daemon scannedonlyd_vscan não é notificado sobre novos arquivos criados ou alterações de arquivos (para serem escaneados) se você utilizar o shell diretamente.


Se você não quer realizar o teste utilizando outra estação Windows ou Linux só para conectar ao compartilhamento Samba, bem como, não instalou nenhum Gerenciador de Janelas como o Gnome, por exemplo, você pode através do shell conectar no compartilhamento (fazendo com que o Samba intermedie o acesso ao diretório (compartilhamento)):

mount //localhost/fulano /mnt -o user=fulano

considerando que o usuario fulano tenha sido criado, e você esteja usando por exemplo o compartilhamento homes.

Deste modo, mova o arquivo infectado ao ponto de montagem (/mnt)

depois execute o comando

ls /mnt

você verá que existirá um arquivo de texto vazio com o prefixo VIRUS_found_in_ + o nome do arquivo que você moveu + .txt


Qualquer coisa estamos ai.

Abraço

FcD e se cuida
lfernandosg
lfernandosg Super Participante Registrado
1K Mensagens 0 Curtidas
#9 Por lfernandosg
03/03/2010 - 10:57
amigo estou tentado fazer com o samba 3.4.5 que vem no debian testing squeeze só que só aceita compilar o samba usando o make(sem o proto) e o source dele é /usr/local/src/samba-3.4.5~dfsg/source3


ai dou make e make install e instala sem erros...mas quando vou compilar o modulo anti vírus aparece o erro abaixo:
rodando o comando dentro da pasta do modulo versão 0.18:

#./configure-with-samba-source=/usr/local/src/samba3.4.5~dfsg/source3-with-samba-vfs-dir=/usr/lib/samba/vfs

root@samba:/usr/local/src/scannedonly-0.18# ./configure-with-samba-source=/usr/local/src/samba3.4.5~dfsg/source3-with-samba-vfs-dir=/usr/lib/samba/vfs
bash: ./configure-with-samba-source=/usr/local/src/samba3.4.5~dfsg/source3-with-samba-vfs-dir=/usr/lib/samba/vfs: Arquivo ou diretório não encontrado
Macbook Air 11.6"
The Pretender
The Pretende... Zumbi Registrado
8.5K Mensagens 82 Curtidas
#10 Por The Pretende...
26/04/2010 - 09:25
lfernandosg disse:
amigo estou tentado fazer com o samba 3.4.5 que vem no debian testing squeeze só que só aceita compilar o samba usando o make(sem o proto) e o source dele é /usr/local/src/samba-3.4.5~dfsg/source3


ai dou make e make install e instala sem erros...mas quando vou compilar o modulo anti vírus aparece o erro abaixo:
rodando o comando dentro da pasta do modulo versão 0.18:

#./configure-with-samba-source=/usr/local/src/samba3.4.5~dfsg/source3-with-samba-vfs-dir=/usr/lib/samba/vfs

root@samba:/usr/local/src/scannedonly-0.18# ./configure-with-samba-source=/usr/local/src/samba3.4.5~dfsg/source3-with-samba-vfs-dir=/usr/lib/samba/vfs
bash: ./configure-with-samba-source=/usr/local/src/samba3.4.5~dfsg/source3-with-samba-vfs-dir=/usr/lib/samba/vfs: Arquivo ou diretório não encontrado


Vou levantar o topico denovo hehehe

No caso do Samba 3.4.5 não precisa dizer o local do source, pois a partir do 3.4.4 o modulo VFS já vem compilado por padrão. Por isso da erro.

Apenas compile com um ./configure --prefix=/usr && make && make install e pronto.


Bom, agora minha dúvida.
Instalei ele junto ao Samba 3.4.5, e de vez em quando (umas 3 vezes ao dia) tenho estes erros, e ele simplesmente finaliza, do nada:


Apr 26 08:59:18 server scannedonlyd_clamav[7877]: Finished building databases. Ready for scanning with 4 threads
Apr 26 09:09:18 server scannedonlyd_clamav[7877]: Status: scanned 156 files and 0 large files in 10 minutes; min 0/max 61 requests on small queue, min 0/max 0 requests on large queue
Apr 26 09:09:19 serverdell scannedonlyd_clamav[7877]: ABORT: segmentation fault
Apr 26 09:09:27 server scannedonlyd_clamav[8488]: Starting with udp port 2020 and 4 threads
Apr 26 09:09:40 server scannedonlyd_clamav[8488]: Finished building databases. Ready for scanning with 4 threads
Apr 26 09:09:40 server scannedonlyd_clamav[8488]: ABORT: segmentation fault
Apr 26 09:09:45 server scannedonlyd_clamav[8565]: Starting with udp port 2020 and 4 threads
Apr 26 09:10:00 server scannedonlyd_clamav[8565]: Finished building databases. Ready for scanning with 4 threads
Apr 26 09:10:00 server scannedonlyd_clamav[8565]: ABORT: segmentation fault
Apr 26 09:10:14 server scannedonlyd_clamav[8660]: Starting with udp port 2020 and 4 threads
Apr 26 09:10:26 server scannedonlyd_clamav[8660]: Finished building databases. Ready for scanning with 4 threads
Apr 26 09:10:37 server scannedonlyd_clamav[8660]: ABORT: segmentation fault
Apr 26 09:10:42 server scannedonlyd_clamav[8745]: Starting with udp port 2020 and 4 threads
Apr 26 09:10:55 server scannedonlyd_clamav[8745]: Finished building databases. Ready for scanning with 4 threads
Apr 26 09:10:57 server scannedonlyd_clamav[8745]: ABORT: segmentation fault


Alguém sabe o que pode estar causando isso?

Para não dar problema, eu criei um script que fica monitorando o processo do ScannedOnly, quando ele para de forma "estranha" (que não seja por um STOP proposital) ele inicia o Daemon denovo, para não causar queda de acesso na rede.

Mas isso não está legal assim. Alguém sabe o que pode ser este problema?




Falow!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-->Blog Pessoal - Um pianista "desajeitado" <--
-->Eletrônica no YouTube - Bobsien P&D <--


- Sound Blaster Live 5.1! Digital e 3DFX Voodoo 4 4500PCI - Minhas relíquias!
fbn_sp
fbn_sp Novo Membro Registrado
1 Mensagem 0 Curtidas
#11 Por fbn_sp
04/05/2010 - 17:04
Qunado executo o make da alguns erro, alguem tem alguma idéia do que pode ser ?


# make && make install
make[1]: Entrando no diretório `/usr/local/src/scannedonly-0.19/man'
make[1]: Nada a ser feito para `all'.
make[1]: Saindo do diretório `/usr/local/src/scannedonly-0.19/man'
make[1]: Entrando no diretório `/usr/local/src/scannedonly-0.19/src'
gcc -g -O2 -Wall -pipe -c -o scannedonlyd_clamav.o scannedonlyd_clamav.c
scannedonlyd_clamav.c: In function ‘push_to_queue’:
scannedonlyd_clamav.c:103: warning: implicit declaration of function ‘strdup’
scannedonlyd_clamav.c:103: warning: incompatible implicit declaration of built-in function ‘strdup’
scannedonlyd_clamav.c: In function ‘handle_file_warning’:
scannedonlyd_clamav.c:341: warning: implicit declaration of function ‘snprintf’
scannedonlyd_clamav.c:341: warning: incompatible implicit declaration of built-in function ‘snprintf’
scannedonlyd_clamav.c: In function ‘load_engine’:
scannedonlyd_clamav.c:399: warning: passing argument 2 of ‘cl_load’ from incompatible pointer type
scannedonlyd_clamav.c:403: warning: implicit declaration of function ‘cl_build’
scannedonlyd_clamav.c:405: warning: implicit declaration of function ‘cl_free’
scannedonlyd_clamav.c: In function ‘scanningthread’:
scannedonlyd_clamav.c:662: warning: passing argument 5 of ‘cl_scanfile’ makes integer from pointer without a cast
scannedonlyd_clamav.c:662: error: too many arguments to function ‘cl_scanfile’
scannedonlyd_clamav.c: In function ‘main’:
scannedonlyd_clamav.c:885: warning: incompatible implicit declaration of built-in function ‘strdup’
scannedonlyd_clamav.c:972: warning: incompatible implicit declaration of built-in function ‘strdup’
scannedonlyd_clamav.c:1063: error: invalid application of ‘sizeof’ to incomplete type ‘struct cl_limits’
scannedonlyd_clamav.c:1064: error: invalid use of undefined type ‘struct cl_limits’
scannedonlyd_clamav.c:1065: error: invalid use of undefined type ‘struct cl_limits’
scannedonlyd_clamav.c:1069: error: invalid use of undefined type ‘struct cl_limits’
scannedonlyd_clamav.c:1074: error: invalid use of undefined type ‘struct cl_limits’
make[1]: ** [scannedonlyd_clamav] Erro 1
make[1]: Saindo do diretório `/usr/local/src/scannedonly-0.19/src'
make: ** [all] Erro 2
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal