Olá pessoal, eu sei que já existem trocentos tutoriais de como colocar Samba e Clamav funcionando juntos, mas até agora eu não vi nenhum aqui no VOL específico para Slackware...
No meu trabalho eu tive que montar um servidor Samba com o Clamav e usei Slackware para isso, então resolvi compartilhar o conhecimento adquirido. Separei todo o procedimento em passos fáceis de seguir, vamos começar!
1. Baixar os fontes e pacotes, os links seguem abaixo:
Salve todos os arquivos dentro de um diretório qualquer (/tmp).
2. Descompactando e instalando tudo:
Samba:
# tar -jxvf samba-3.0.10.tar.bz2
Estou levando em conta que você já possui o Samba instalado.
ClamAV:
# installpkg clamav-0.85-i486-2jim.tgz
O ClamAV é moleza, esse pacote já traz tudo, inclusive o script de inicialização para o daemon, rc.clamav.
Samba-vscan:
# tar -jxvf samba-vscan-0.3.6.tar.bz2
# mv samba-vscan-0.3.6 samba-3.0.10/examples/VFS/
No caso do samba-vscan, ele precisa dos fontes do Samba instalados para criar um módulo que será carregado pelo Samba, por isso temos que copiá-lo dentro do diretório de fontes do Samba.
Compilando o módulo do samba-vscan:
# cd samba-3.0.10
# ./configure
# make
# cd samba-3.0.10/examples/VFS/samba-vscan-0.3.6
# ./configure
# make
# cp clamav/vscan-clamav.conf /etc/samba/
# cp vscan-clamav.so /usr/lib/samba/vfs/
3. Configurando os softwares.
ClamAV:
Arquivo de configuração: /etc/clamd.conf
Não vou detalhar de maneira doentia as opções deste arquivo,
mesmo por que ele é bem auto-explicativo, basta ler e acredite,
leia os comentários dele, eles podem te ajudar e poupar tempo
e deixar o ClamAV melhor ainda para suas necessidades.
Basicamente certifique-se de descomentar as seguintes linhas:
LogSyslog
LogVerbose
LocalSocket /var/run/clamav-milter/clamd.sock
ScanPE
DetectBrokenExecutables
ScanOLE2
ScanHTML
ScanArchive
ScanRAR
# CERTIFIQUE-SE DE QUE ESTA LINHA ESTEJA COMENTADA:
# TCPSocket 3310
A opção acima deve ser comentada por que o ClamAV pode ser
configurado para ficar "escutando" uma porta TCP ao invés de
um arquivo de socket (comunicação entre aplicativos) em disco,
essa técnica não é muito segura, uma vez que a porta fica
aberta... quanto mais portas puder fechar, é melhor fechar ;)
Samba-vscan:
Arquivo de configuração: /etc/samba/vscan-clamav.conf
Este arquivo também é babinha, as seguintes linhas devem ser alteradas:
infected file action = nothing
Ficará assim:
infected file action = delete
clamd socket name = /var/run/clamd
Ficará assim:
clamd socket name = /var/run/clamav-milter/clamd.sock
Protegendo os compartilhamentos:
Arquivo de configuração: /etc/samba/smb.conf
Coloque as seguintes linhas em seus compartilhamentos que devem ser protegidos:
Configurando o Slack para carregar o ClamAV na inicialização do sistema:
No arquivo /etc/rc.d/rc.M, procure onde estão as linhas que iniciam o serviço Samba e cole _ACIMA_ delas as seguintes linhas:
# Start Clamav to scan Samba Shares
if [ -x /etc/rc.d/rc.clamav ]; then
. /etc/rc.d/rc.clamav start
fi
Lembre-se de dar permissão de execução para o arquivo rc.clamav:
# chmod +x /etc/rc.d/rc.clamav
4. Finalmente colocando TUDO para funcionar:
É necessário SEMPRE iniciar o ClamAV antes do Samba, afinal, ele
vai criar o socket que o Samba vai usar para "falar" onde ele
deve scanear. Seguindo os comandos:
# cd /etc/rc.d/
# ./rc.clamav start
# ./rc.samba start
TESTANDO: Pegue uma máquina Windows que está na mesma rede que o
seu Servidor Samba e tente copiar um arquivo de texto com o seguinte
conteúdo para o compartilhamento Samba do Servidor:
Jun 4 10:05:53 servidor smbd_vscan-clamav[3387]: INFO: Scanning file : '/mnt/Servidor/eicar'
Jun 4 10:05:53 servidor clamd[5673]: /mnt/Servidor/eicar: Eicar-Test-Signature FOUND
Jun 4 10:05:53 servidor smbd_vscan-clamav[3387]: File '/mnt/Servidor/eicar' has already been scanned and marked as infected. Not scanned any more. Access denied