Servidor de Compartilhamento de Arquivos com Antivírus Realtime
Para esse HOW TO foi instalado o sistema operacional FreeBSD 8.1 e configurados o SAMBA para o serviço de compartilhamento de arquivos. Para o serviço de Antivirus foi utilizado o ClamAV juntamente com o Vscan.
SAMBA: O SAMBA é um servidor e conjunto de ferramentas que permite que máquinas Linux e Windows se comuniquem entre si, compartilhando serviços (arquivos, diretório, impressão) através do protocolo SMB (Server Message Block)/CIFS (Common Internet File System), equivalentes a implementação NetBEUI no Windows. O SAMBA é uma das soluções em ambiente UNIX capaz de interligar redes heterogêneas.
Com o SAMBA, é possível construir domínios completos, fazer controle de acesso a nível de usuário, compartilhamento, montar um servidor WINS, servidor de domínio, impressão, etc. Na maioria dos casos o controle de acesso e exibição de diretórios no samba é mais minucioso e personalizável que no próprio Windows.
www.samba.org/
CLAMAV: O Clam Antivirus é um antivírus open source que possui versões para Windows (o ClamWin) e Linux/Freebsd, com atualizações diárias. É disponibilizado pela licença GPL.
www.clamav.net
VSCAN: Vscan é um o módulo que permite que o servidor Samba, em conjunto com o antivírus Clamav, escaneie por vírus em seus compartilhamentos em tempo real e sem nenhuma queda no rendimento do servidor.
www.openantivirus.org/projects.php
1- Instalando o ClamAV
Para Instalar o ClamAV acesse o diretório:
# cd /usr/ports/security/clamav
Configure as opções de compilação do ClamAV com o comando:
# make config
Marque as opções apropriadas para sua necessidade no ClamAV 0.96.2_1:
[X] ARC Enable arch archives support [X] ARJ Enable arj archives support [X] LHA Enable lha archives support [X] UNZOO Enable zoo archives support [X] UNRAR Enable rar archives support [X] LLVM Enable JIT Bytecode compiler [ ] MILTER Compile the milter interface [ ] LDAP libmilter was built with LDAP [X] ICONV Enable ICONV support [ ] STDERR Print logs to stderr instead of stdout [ ] EXPERIMENTAL Build experimental code
Execute o comando de compilação e instalação do ClamAV:
# make install clean
Marque as opções apropriadas para sua necessidade no python26 2.6.5_1:
[X] THREADS Enable thread support [ ] HUGE_STACK_SIZE Use a larger thread stack [ ] SEM Use POSIX semaphores (experimental) [ ] PTH Use GNU Pth for threading/multiprocessing [X] UCS4 Use UCS4 for unicode support [X] PYMALLOC Use python's internal malloc [ ] IPV6 Enable IPv6 support [ ] FPECTL Enable floating point exception handling
Marque as opções apropriadas para sua necessidade no libiconv 1.13.1_1:
[X] EXTRA_ENCODINGS Include extra character sets [ ] EXTRA_PATCHES Apply patches to fix CP932, add EUCJP-MS
Marque as opções apropriadas para sua necessidade no perl 5.10.1_2:
[ ] DEBUGGING Build with debugging support [ ] GDBM Build GDBM_File extension [X] PERL_MALLOC Use Perl malloc [X] PERL_64BITINT Use 64 bit integers (on i386) [ ] THREADS Build threaded perl [ ] MULTIPLICITY Use multiplicity [ ] SUIDPERL Build set-user-id suidperl binary [ ] SITECUSTOMIZE Run-time customization of @INC [X] USE_PERL Rewrite links in /usr/Bin
Marque as opções apropriadas para sua necessidade no m4 1.4.14_1,1:
[ ] LIBSIGSEGV Use libsigsegv for better diagnostics
Agora edite o arquivo "/usr/local/etc/freshclam.conf" e adapte-o de acordo com as suas necessidades. Antés faça um backup do mesmo:
# cp /usr/local/etc/freshclam.conf /usr/local/etc/freshclam.conf.bkp # ee /usr/local/etc/freshclam.conf
DatabaseDirectory /var/db/clamav UpdateLogFile /var/log/clamav/freshclam.log LogTime yes LogSyslog yes PidFile /var/run/clamav/freshclam.pid DatabaseOwner clamav DNSDatabaseInfo current.cvd.clamav.net DatabaseMirror db.br.clamav.net DatabaseMirror database.clamav.net NotifyClamd /usr/local/etc/clamd.conf #SubmitDetectionStats /usr/local/etc/clamd.conf DetectionStatsCountry BR3
O mesmo aplica-se ao arquivo "/usr/local/etc/clamd.conf":
# cp /usr/local/etc/clamd.conf /usr/local/etc/clamd.conf.bkp # ee /usr/local/etc/clamd.conf
LogFileMaxSize 2M LogTime yes LogSyslog yes LogFile /var/log/clamav/clamd.log PidFile /var/run/clamav/clamd.pid LocalSocket /var/run/clamav/clamd.sock TCPSocket 3310 TCPAddr 127.0.0.1 User clamav ScanPE yes ScanELF yes DetectBrokenExecutables yes ScanOLE2 yes ScanPDF yes ScanMail yes ScanPartialMessages yes PhishingSignatures yes PhishingScanURLs yes PhishingAlwaysBlockSSLMismatch no PhishingAlwaysBlockCloak no HeuristicScanPrecedence yes ScanHTML yes ScanArchive yes
Depois de realizado as configurações no arquivo "clamd.conf", vamos habilitar para o ClamAV inicializar quando o FreeBSD for reiniciado. Editar o arquivo "rc.conf".
Adicionando ao final do arquivo essas linhas, depois salve o arquivo e saia.
# ee /etc/rc.conf
Adicionando ao final do arquivo essas linhas, depois salve o arquivo e saia.
#ClamAV clamav_clamd_enable="YES" clamav_freshclam_enable="YES"
Após a configuração, iniciar o clamd e fazer a atualização da base de vírus.
# /usr/local/etc/rc.d/clamav-clamd onestart # rehash # freshclam
2- Instalando o Samba
Para instalar o Samba acesse o diretório
# cd /usr/ports/net/samba3
Configure as opções de compilação do Samba com o comando:
# make config
Marque as opções apropriadas para sua necessidade no Samba 3.0.37_1.1:
[X] LDAP With LDAP support [ ] ADS With Active Directory support [X] CUPS With CUPS printing support [X] WINBIND With WinBIND support [ ] ACL_SUPPORT With ACL support [ ] AIO_SUPPORT With Asyncronous IO support [ ] FAM_SUPPORT With File Alteration Monitor [X] SYSLOG With Syslog support [X] QUOTAS With Disk quota support [X] UTMP With UTMP accounting support [X] PAM_SMBPASS With PAM authentication vs passdb backends [ ] CLUSTER With experimental cluster support [ ] DNSUPDATE With dynamic DNS update(require ADS) [X] EXP_MODULES With experimental modules [X] POPT With system-wide POPT library [X] PCH With precompiled headers optimization [ ] MAX_DEBUG With maximum debugging [ ] SMBTORTURE With smbtorture
Execute o comando de compilação e instalação do Samba
# make install clean
Marque as opções apropriadas para sua necessidade no cups-client 1.4.4:
[X] GNUTLS Build with GNUTLS library
Marque as opções apropriadas para sua necessidade no openldap-client 2.4.23:
[ ] SASL With (Cyrus) SASL2 support [X] FETCH Enable fetch(3) support
Após a conclusão dos processos de instalação vamos configurar o Samba. Primeiramente vamos realizar um backup do arquivo padrão.
# cp /usr/local/etc/smb.conf /usr/local/etc/smb.conf.bkp # ee /usr/local/etc/smb.conf
[global] netbios name = FreeBSD workgroup = Teste server string = Servidor Samba security = user log file = /var/log/samba/log.%m [homes] comment = Pasta Pessoal browseable = no writable = yes read only = no [teste] comment = Arquivos Teste path = /usr/home/teste valid users = alvaro admin users = alvaro read only = no browseable = no writable = yes
Após realizado as configurações no arquivo smb.conf, vamos habilitar para o SAMBA inicializar quando o FreeBSD for reiniciado. Editar o arquivo "rc.conf".
# ee /etc/rc.conf
Adicionando ao final do arquivo essas linhas, depois salve o arquivo e saia.
#Samba nmbd_enable="YES" smbd_enable="YES" winbindd_enable="YES"
Agora vamos iniciar o Samba com o seguinte comando.
#/usr/local/etc/rc.d/samba start # rehash
3- SWAT
O SWAT (Samba Web Administration Tool) como o nome diz é uma ferramenta para gerenciamento do SAMBA. O mesmo é instalado automaticamente junto com o Samba
Para habilitar o SWAT acesse o arquivo /etc/inetd.conf e descomente a linha abaixo:
# ee /etc/inetd.conf
swat stream tcp nowait/400 root /usr/local/sbin/swat swat
Depois reinicie o inetd:
# /etc/rc.d/inetd restart
Para acessar o Swat use um browser para conectar a:
# http://<ip_do_servidor>:901
4- Instalando o VSCAN
Para instalar o VSCAN acesse o diretório
# cd /usr/ports/security/samba-vscan
Configure as opções de compilação do Vscan com o comando:
# make config
Marque as opções apropriadas para sua necessidade no samba-vscan 0.3.6c_2:
[ ] VSCAN_ANTIVIR for use with AntiVir [X] VSCAN_CLAMAV for use with Clam AntiVirus Daemon [ ] VSCAN_FPROTD for use with F-Prot Daemon [ ] VSCAN_FSAV for use with F-Secure AntiVirus [ ] VSCAN_ICAP for use with an ICAP anti-virus [ ] VSCAN_KAVP for use with Kaspersky AntiVirus [ ] VSCAN_MKSD for use with mks32 [ ] VSCAN_NAI for use with NAI/McAfee uvscan [ ] VSCAN_OAV for use with OpenAntiVirus.org ScannerDaemon [ ] VSCAN_SOPHOS for use with Sophos [ ] VSCAN_TREND for use with Trend Micro FileScanner
O conteúdo do arquivo "/usr/local/etc/vscan-clamav.conf" deverá parecer com o seguinte:
# cp /usr/local/etc/vscan-clamav.conf /usr/local/etc/vscan-clamav.conf.bkp # ee /usr/local/etc/samba-vscan/vscan-clamav.conf
[samba-vscan] max file size = 0 verbose file logging = no scan on open = yes scan on close = yes deny access on error = yes deny access on minor error = yes send warning message = yes infected file action = quarantine quarantine directory = /tmp quarantine prefix = vir- max lru files entries = 100 lru file entry lifetime = 5 exclude file types = exclude file regexp = clamd socket name = /var/run/clamav/clamd.sock libclamav max files in archive = 1000 libclamav max archived file size = 10485760
5- Configurar o Samba para utilizar o vscan
É possível utilizar o Vscan a nível de compartilhamento e global, para tanto, basta colocar as seguintes linhas onde quer utilizar o Vscan, se for adicionado no global não há necessidade de colocar nos compartilhamentos.
# ee /usr/local/etc/smb.conf [global] vfs object = vscan-clamav vscan-clamav: config-file = /usr/local/etc/samba-vscan/vscan-clamav.conf
Agora vamos reiniciar o Samba com o seguinte comando.
#/usr/local/etc/rc.d/samba restart
Através do arquivo de log /var/log/messages é possível acompanhar o funcionamento do Vscan.
# tail -f /var/log/messages
6- Testando o vscan
Para testar o nosso servidor utilizaremo o EICAR test file (arquivo de teste, em português) que é um arquivo de 68 bytes que possui uma linha de caracteres, desenvolvido pelo European Institute of Computer Anti-Virus Research (Instituto Europeu para Pesquisa de Antivírus de Computador), é usado para testar a eficiência dos antivírus na detecção de vírus conhecidos sem qualquer risco ao computador. Usar o EICAR ao invés de um vírus real para testar um antivírus, é a garantia de que o computador não será infectado.
Baixe o arquivo "eicar_com.zip" pelo link:
http://www.eicar.org/download/eicar_com.zip
Salve o arquivo no compartilhamendo do Samba e veja pelos logs que o mesmo foi renomeado e movido para a pasta de quarentena
# tail -f /var/log/messages Aug 15 14:28:56 frebsd smbd_vscan-clamav[1444]: INFO: quarantining file '/usr/home/cd/eicar.com' to '/tmp/vir-cQZNtg' was successful
7- Referências
FREEBSD: www.freebsd.org/
SAMBA: www.samba.org/
CLAMAV: www.clamav.net
VSCAN: www.openantivirus.org/projects.php
www.fug.com.br
www.bsdux.com.br
www.richardsharpe.com/samba-stuff.html
www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html
www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html
www.fogonacaixadagua.com.br/2009/03/freebsd-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/
http://danilosbrasil.wordpress.com/2010/04/24/freebsd-49-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/
http://danilosbrasil.wordpress.com/2010/04/24/freebsd-49-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/
=)