Olá, pessoal.
Devido a
LGPD chegando, alguns clientes começaram a me pedir para montar uma estrutura de
logs de qual usuário acessou qual arquivo, tal dia e horário em seu fileserver.
Então, antes de pensar em usar servidor de log externos, fui atrás de como gerar os logs do
Samba de forma local e simplificada no
OpenMediaVault e foi mais simples do que imaginei.
O OpenMediaVault utiliza o RSyslog como servidor de logs e tem nativamente via interface WEB uma opção de habilitar o log, porém, não pegaram e habilitaram no RSyslog a opção de todos os logs da auditoria irem para um arquivo, então, vão todos para o arquivo padrão do sistema. Nos próximos passos, vamos fazer o acesso ao servidor via SSH, só para encaminhar os logs para o arquivo correto.
Então vamos à parte prática.
Passos
1. Primeiro ponto, é acessar a interface web do OpenMediaVault, navegar até a página de compartilhamento de pastas com o Samba no caminho: Services > SMB/CIFS > Shares
...e na pasta compartilhada, editar e habilitar a opção: "Audit file operations"
2. Após adicionar a opção de habilitar o log a todos os compartilhamentos que deseja, vamos ter que descobrir o nome usado pelo Samba do OpenMediaVault para a "regra" de logs, para adicionar no arquivo do RSyslog.
Para isso, acesse o OpenMediaVault por SSH e abra o arquivo
/etc/samba/smb.conf:
# nano /etc/samba/smb.conf
3. Com o arquivo do Samba aberto, busque a linha que contem: "full_audit:facility". No meu caso era "local7" e estava da seguinte forma:
full_audit:prefix = %u|%I|%m|%P|%S
full_audit:success = mkdir rename unlink rmdir pwrite
full_audit:failure = none
full_audit:facility = local7
4. Após descobrir o nome usado pelo OMV para a regra de logs, vamos editar o RSyslog para redirecionar o arquivo para o local correto. Abra o arquivo
/etc/rsyslog.conf e adicione a seguinte linha ao final do arquivo, trocando "local7" pelo que encontrou na linha anterior:
# echo "local7.notice /var/log/samba/full_audit.log" >> /etc/rsyslog.conf
5. Reinicie o servidor do RSyslog com o comando:
# systemctl restart rsyslog
6. Ao concluir a reinicialização do RSyslog, acesse o seu fileserver. Entre em uma das pastas que habilitou a auditoria e simule algumas modificações como: criar, deletar, abrir e editar arquivos e por fim, veja o arquivo de logs que terá uma saída próxima a essa:
# less /var/log/samba/full_audit.log
Sep 26 15:01:43 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|mkdir|ok|Nova pasta
Sep 26 15:01:45 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|rename|ok|Nova pasta|Tacio
Sep 26 15:01:54 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|rename|ok|Tacio/Novo Documento de Texto.txt|Tacio/Teste.txt
Sep 26 15:02:07 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|pwrite|ok|Tacio/Teste.txt
Sep 26 15:02:08 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|pwrite|ok|Tacio/Teste.txt
Sep 26 15:02:15 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|mkdir|ok|.recycle
Sep 26 15:02:15 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|mkdir|ok|.recycle/tacio
Sep 26 15:02:15 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|mkdir|ok|.recycle/tacio/Tacio
Sep 26 15:02:15 arquivos smbd_audit: tacio|10.0.10.6|andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|rename|ok|Tacio/Teste.txt|.recycle/tacio/Tacio/Teste.txt
Sep 26 15:15:10 arquivos smbd_audit: tacio|10.0.10.6|
andradenote|/srv/dev-disk-by-id-md-name-arquivos-Arquivos/ti|ti|rmdir|ok|Tacio
Com o log local, nós poderemos futuramente usar alguma ferramenta centralizadora de logs para mandar essas informações para outro local como um Graylog, RSyslog remoto, etc, e armazená-los a longo prazo.
Boa sorte a todos e vamos que vamos!