Auditoria de compartilhamento Samba
Recentemente recebi uma newsletter onde um dos links ensinava a trabalhar com auditoria em windows server e imediatamente pensei: "Deve existir alguma coisa igual ou próxima para linux, impossível que a comunidade do samba não tenha pensado nisso". Pois bem, existe :) e vamos configurar a seguir.
Valido dizer que esse post vai sofrer update em breve, pois o ambiente de testes aqui é antigo. Acreditem, não é impossível achar em produção algo semelhante ao descrito abaixo. Próxima etapa vai ser estudar melhor o log e também montar tudo isso em um CentOS 7 c/ Samba 4x.
Versão do Linux utilizado nesse post: CentOS 5.7 x86_64
Versão do Samba utilizado nesse post: 3.0.33-3.40.el5_10
Como saber a versão do sistema operacional?
cat /etc/issue
Como saber a versão do samba disponível para instalação?
yum list samba
Caso já esteja instalado, utilize:
smbd -V
Nesse tutorial vamos usar a lib full_audit, mas para conferir quais estão disponíveis para uso no seu ambiente, liste o diretório: /usr/lib64/samba/vfs.
Então, o nosso ambiente está igual? Vamos começar, primeiro passo é configurar o smb.conf. Acrescentei as seguintes opções no compartilhamento a ser auditado:
smb.conf
vfs objects = full_audit
full_audit:success = open, opendir, write, rename, mkdir, rmdir
full_audit:failure = open, opendri, write, rename, mkdir, rmdir
full_audit:prefix = %u|%I|%S
full_audit:facillity = local1
full_audit:priority = info
Explicando um pouco as opções escolhidas acima logo no inicio temos o modulo que foi carregado. Em seguida as operações que vamos auditar, mas atenção pois precisamos descrever se vamos auditar quando houver sucesso ou falha. É comum auditar apenas as operações bem sucedidas, mas para debug recomendo também ficar atento as falhas.
Em seguida no prefix utilizei %u, que corresponde ao usuário que executou a operação, depois %I, ip do usuário e por fim %S que é o que foi acessado(pasta / arquivo / subpasta). As opções aqui são muitas, recomendo explorar os links que utilizei como base.
Os dois campos seguintes estão relacionados a log e eu vou estudar melhor. Deixo aqui a dica de que é possível alterar a severidade do log, repare que acima optei por usar info. Mas é possível ainda utilizar: Emergência (Emerg), Alerta (Alert), Critico (crit), Erro (err/error), Aviso (warn), Aviso Prévio (notice), Informativo (info) e Debug (debug).
Apos configurar o smb.conf reinicie o samba para que as configurações sejam aplicadas e vamos testar.
/etc/init.d/smb restart
A seguir deixo duas imagens que mostram um pouco do syslog(/var/log/message) informando as operações de criar pasta e renomear pasta.
Criei uma pasta e renomei para 'post sobre auditoria'
Criei uma pasta e renomei para 'post sobre auditoria'
Pergunta: Então quer dizer que o percent %u do smb.conf indica usuário e na imagem está escrito 'nobody'?
Resposta: Fica a dica para vocês repensarem o uso da opção 'map to guest = bad user' no smb.conf. Senão do que adianta auditar selecionando usuário.
Solução: Um dos caminhos a seguir é criar usuário, é possível através do comando: adduser nome_usuario depois associar no samba, através do comando: smbpasswd -a nome_usuario.
Morte ao 'nobody' :) Vamos identificar usuários!
Tenho certeza que é possível fazer mais do que o descrito aqui. Eu mesmo quero testar em um ambiente mais atual e entender melhor logs. Por hora deixo aqui mais essa dica.
Referencia:
Link1 - http://www.samba.org/samba/docs/man/manpages-3/vfs_full_audit.8.html
Link2 - http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#FULL_AUDIT:PREFIX
Valido dizer que esse post vai sofrer update em breve, pois o ambiente de testes aqui é antigo. Acreditem, não é impossível achar em produção algo semelhante ao descrito abaixo. Próxima etapa vai ser estudar melhor o log e também montar tudo isso em um CentOS 7 c/ Samba 4x.
Versão do Linux utilizado nesse post: CentOS 5.7 x86_64
Versão do Samba utilizado nesse post: 3.0.33-3.40.el5_10
Como saber a versão do sistema operacional?
cat /etc/issue
Como saber a versão do samba disponível para instalação?
yum list samba
Caso já esteja instalado, utilize:
smbd -V
Nesse tutorial vamos usar a lib full_audit, mas para conferir quais estão disponíveis para uso no seu ambiente, liste o diretório: /usr/lib64/samba/vfs.
Então, o nosso ambiente está igual? Vamos começar, primeiro passo é configurar o smb.conf. Acrescentei as seguintes opções no compartilhamento a ser auditado:
smb.conf
vfs objects = full_audit
full_audit:success = open, opendir, write, rename, mkdir, rmdir
full_audit:failure = open, opendri, write, rename, mkdir, rmdir
full_audit:prefix = %u|%I|%S
full_audit:facillity = local1
full_audit:priority = info
Explicando um pouco as opções escolhidas acima logo no inicio temos o modulo que foi carregado. Em seguida as operações que vamos auditar, mas atenção pois precisamos descrever se vamos auditar quando houver sucesso ou falha. É comum auditar apenas as operações bem sucedidas, mas para debug recomendo também ficar atento as falhas.
Em seguida no prefix utilizei %u, que corresponde ao usuário que executou a operação, depois %I, ip do usuário e por fim %S que é o que foi acessado(pasta / arquivo / subpasta). As opções aqui são muitas, recomendo explorar os links que utilizei como base.
Os dois campos seguintes estão relacionados a log e eu vou estudar melhor. Deixo aqui a dica de que é possível alterar a severidade do log, repare que acima optei por usar info. Mas é possível ainda utilizar: Emergência (Emerg), Alerta (Alert), Critico (crit), Erro (err/error), Aviso (warn), Aviso Prévio (notice), Informativo (info) e Debug (debug).
Apos configurar o smb.conf reinicie o samba para que as configurações sejam aplicadas e vamos testar.
/etc/init.d/smb restart
A seguir deixo duas imagens que mostram um pouco do syslog(/var/log/message) informando as operações de criar pasta e renomear pasta.
Criei uma pasta e renomei para 'post sobre auditoria'
Criei uma pasta e renomei para 'post sobre auditoria'
Pergunta: Então quer dizer que o percent %u do smb.conf indica usuário e na imagem está escrito 'nobody'?
Resposta: Fica a dica para vocês repensarem o uso da opção 'map to guest = bad user' no smb.conf. Senão do que adianta auditar selecionando usuário.
Solução: Um dos caminhos a seguir é criar usuário, é possível através do comando: adduser nome_usuario depois associar no samba, através do comando: smbpasswd -a nome_usuario.
Morte ao 'nobody' :) Vamos identificar usuários!
Tenho certeza que é possível fazer mais do que o descrito aqui. Eu mesmo quero testar em um ambiente mais atual e entender melhor logs. Por hora deixo aqui mais essa dica.
Referencia:
Link1 - http://www.samba.org/samba/docs/man/manpages-3/vfs_full_audit.8.html
Link2 - http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#FULL_AUDIT:PREFIX