Neste artigo irei mostrar como ativar a auditoria em compartilhamentos Samba de forma simples e rápida.
Ambiente de teste:
Debian 4.0 ( etch )
Kernel 2.6.18
Samba 3.0.24-16
1º) Passo
Primeiramento faça um backup do seu arquivo de configuração do Samba como segurança:
cp /etc/samba/smb.conf /etc/samba/smb.config-`date +%d%m%Y`
em seguida adicione as linhas abaixo na parte Globals do smb.conf
vfs objects = full_audit
full_audit:facility = LOCAL5
full_audit:priority = NOTICE
full_audit:prefix = %u|%I|%S
full_audit:success = rename rmdir unlink
full_audit:failure = none
Desta forma a auditoria será ativada para todos os compartilhamentos do smb.conf, você pode simplesmente ativar a auditoria por compartilhamento adicionando as linhas acima em cada compartilhamento ativo.
Entendendo as flags:
em full_audit:prefix voce indica o que deverá preceder no formato do arquivo de auditagem, %u indica nome do usuario, %I representa o IP da maquina e %S indica o nome do compartilhamento conforme a tabela a seguir (copiado das manpages do samba):
Variáveis referentes a maquina cliente de rede :
%a Client’s architecture (Samba, WinNT, WfWg, Win95, or UNKNOWN) %I Client’s IP address %m Client’s NetBIOS name %M Client’s DNS nameVariáveis referentes ao usuário :
%g Primary group of %u %G Primary group of %U %H Home directory of %u %u Current Unix username %U Requested client username (not always used by Samba)Variáveis referentes ao servidor :
%d Current server process ID %h Samba server’s DNS hostname %L Samba server’s NetBIOS name %N Home directory server, from automount map %v Samba versionVariáveis miscelaneas :
%R The SMB protocol level that was negotiated %T The current date and timeVariáveis referentes ao compartilhamento :
%p Automouter’s path to the share’s root directory, if different from %P %P Current share’s root directory %S Current share’s nameEm full_audit:sucess e full_audit:failure voce acrescenta os eventos que devem ser registrados quando houver sucesso e/ou falha. No exemplo acima, eu irie auditar apenas renomeação e exclusão de arquivos/pastas. Como há pouca documentação sobre o módulo “full_audit” então tive que estudar quais eventos no samba poderiam ser auditados, e tive de arrancar isso estudando o código fonte e parecem ser muitos, são eles : “connect”,”disconnect”,”disk_free” ,”get_quota” ,”set_quota” ,”get_shadow_copy_data” ,”opendir” ,”readdir” ,”mkdir” ,”rmdir” ,”closedir” ,”open” ,”close” ,”read” ,”pread” ,”write” ,”pwrite” ,”lseek” ,”sendfile” ,”rename” ,”fsync” ,”stat”,”fstat” ,”lstat” ,”unlink” ,”chmod” ,”fchmod” ,”chown” ,”fchown” ,”chdir” ,”getwd” ,”utime” ,”ftruncate” ,”lock” ,”symlink” ,”readlink” ,”link” ,”mknod”, “realpath” ,”fget_nt_acl” ,”get_nt_acl” ,”fset_nt_acl” ,”set_nt_acl” ,”chmod_acl” ,”fchmod_acl”, “sys_acl_get_entry” ,”sys_acl_get_tag_type” ,”sys_acl_get_permset” ,”sys_acl_get_qualifier” ,”sys_acl_get_file” ,”sys_acl_get_fd” ,”sys_acl_clear_perms” ,”sys_acl_add_perm” ,”sys_acl_to_text” ,”sys_acl_init” ,”sys_acl_create_entry” ,”sys_acl_set_tag_type” ,”sys_acl_set_qualifier” ,”sys_acl_set_permset” ,”sys_acl_valid” ,”sys_acl_set_file” ,”sys_acl_set_fd” ,”sys_acl_delete_def_file” ,”sys_acl_get_perm” ,”sys_acl_free_text” ,”sys_acl_free_acl” ,”sys_acl_free_qualifier” Espero que os nomes sejam auto-explicativos para você, pois não há detalhes suficientes para que eu possa explica-los melhor, no entanto, os mais comuns são e também os que testei foram estes :
none = nenhum (usei este em “failure” simplesmente porque queria uma auditagem bem especifica) all = todos (esse daqui vai registrar tudo, haja espaço em disco) mkdir = criar diretorio rmdir = remover diretorio open = abrir arquivo close = fechar arquivo read = ler arquivo write = gravar arquivo rename = renomear arquivo unlink = excluir arquivo chmod = mudar permissão chown = mudar o dono do arquivo connect= mapeamento ou reconexão a uma unidade de rede disconnect = desconectar uma unidade de redePara determinar onde será gravado a auditoria, acrescente ao arquivo /etc/syslog.conf as linhas :
# auditoria samba local5.notice /var/log/samba/auditoria.logE também reinicie o servidor de log (syslogd):
/etc/init.d/sysklogd restartApesar de existir desde o primórdio do samba3, o módulo audit_full não é muito bem documentado, a menos que voce participe da lista de discussão do samba(em inglês) voce terá pouco acesso a muitos módulos vfs que o samba possui e também módulos de terceiros como o vscan-clamav (antivirus) que juntamente com estes dois módulos citados neste artigo formam a trindade de segurança do samba.
Seja Membro Gratuítamente
Assine a newsletter para receber em seu email as publicações atualizadas neste blog