Samba com log de acesso e lixeira - Instalação e configuração no Debian 6/7 e Ubuntu

Publicado por William Cadore em 03/03/2014

[ Hits: 24.771 ]

 


Samba com log de acesso e lixeira - Instalação e configuração no Debian 6/7 e Ubuntu



Ao montar um compartilhamento de rede com Debian 7, me deparei com alguns problemas, todos os tutoriais que têm na Internet, são de sistemas antigos. Ex.: mudou muita coisa do Debian 6 para o Debian 7.

Vamos lá!

Primeiramente, vamos instalar o Samba no Ubuntu ou Debian6/7 (se estiver usando Ubuntu, logue como usuário normal, e use o comando sudo em todos os comandos. Se estiver usando Debian, logue-se como root):

# apt-get upadate && apt-get install samba

Obs.: o sistema irá pedir a confirmação da instalação.

Configurando o Samba

Vamos fazer uma cópia do arquivo de configuração, só por segurança:

# cd /etc/samba/
# mv smb.conf smb.conf.old


Agora, vamos criar um novo arquivo de configuração (dentro do diretório /etc/samba):

# nano smb.conf

Abaixo, irei explicar o que faz em cada linha:

Obs.: configuração baseada nos tutoriais:
#Define a classe "global"
[global]

#Grupo de trabalho
workgroup = WORKGROUP

#Nome que será exibido na rede
netbios name = Servidor de arquivos Samba

#Nome do servidor
server string = Linux

#Level do OS (pode deixar 33 que funciona)
os level = 33

#Arquivo de log, abaixo irei explicar como criar um log personalizado
log file = /var/log/samba/samba.log

#Level do log: (de 0 a 10), sendo que o nível 0 mostra apenas mensagens críticas, o nível 1 mostra alguns detalhes sobre os acessos e os demais mostram diversos níveis de informações de debug, úteis a desenvolvedores, se quiser um log completo, até de erros nos acessos das máquinas clientes deixe 10
log level = 10

#Valor máximo para o arquivo de log
max log size = 10000

#Nível de debug do sistema
debug level = 2

#Segurança de acesso, deixe "user" para solicitar usuário e senha, "share" para não pedir
security = user

#Define se vai ser o servidor padrão da rede, deixe "false"
domain master = false

#Ativa módulos: full_audit = logs, recycle = lixeira
vfs objects = full_audit, recycle  #Se não deseja ter logs ou lixeira basta remover o nome do módulo e os arquivos de configuração do mesmo

###Início da configuração de log
#O próximo passo é definir quais operações devem ser logadas:
# open = abriu arquivo
# opendir = abriu diretório
# write = escreveu arquivo
# unlink = excluiu arquivo
# rename = renomeou arquivo
# mkdir = criou diretório
# rmdir = excluiu diretório
# chmod = editou permissões do diretório/arquivo
# chown = mudou o dono de um arquivo

full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown

#Usando a opção "full_audit:prefix".
#Aqui podemos utilizar algumas variáveis como:
# %u = o nome do usuário
# %I = o IP da máquina
# %S = o nome do compartilhamento onde foi feito o acesso ou a alteração

full_audit:prefix = %u|%I|%S

#Por padrão, o módulo loga não apenas os acessos e modificações, mas também um grande volume de mensagens de alerta e erros gerados durante a operação. A opção "full_audit:failure = none" evita que estas mensagens sejam logadas, fazendo com que o log fique muito mais limpo e seja mais fácil encontrar as opções que realmente interessam
full_audit:failure = none

#Especificamos o nível dos alertas, entre os suportados pelo syslog
full_audit:facility = local5
full_audit:priority = notice

###Fim configuração de log

###Início configuração da lixeira
#Lembrando que o "vfs objects" deve conter o modulo: "recycle"

#Não deixa que os arquivos fiquem misturados, cria o caminho certo de onde o arquivo foi excluído

recycle:keeptree = yes

#Não sobrescreve os arquivos deletados, criar diferentes nomes. Exemplo: arquivo, arquivo2, arquivo3...
recycle:versions = yes

#Aqui podemos colocar os arquivos em um diretório, ou podemos deixar apenas na lixeira, que ele cria no diretório raiz de cada compartilhamento
recycle:repository = /var/samba/trash/

#Aqui ignoramos alguns arquivos, porque não há necessidade de deixar os mesmos salvos como um "backup" e ocupar espaço em disco
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso

#Mesma coisa, mas neste caso são pastas não importantes
recycle:exclude_dir = tmp, cache

###Fim configuração da lixeira

#Obs.: estas configurações se aplicam a todo compartilhamento, para criar configurações específicas para cada compartilhamento retire da opção "global" e coloque em cada seção de compartilhamento, que será explicado abaixo

#Agora vamos configurar os compartilhamento, irei criar dois como exemplos
#Nome do compartilhamento: Usuario

[Arquivos Usuario]

#Comentário para o compartilhamento
comment = Arquivos Usuario

#Diretório para o compartilhamento
path = /home/server/files/usuario

#Usuários que poderão acessar o compartilhamento. Obs.: os usuários devem estar no sistema também. Abaixo explicarei como adicionar os usuários
#Vamos supor que esta empresa tenha três usuários:

valid users = william, joao, maria #Os três usuários poderão ter acesso

#Informa se o compartilhamento é público
public = no

#Permite somente conexões guest ao recurso. O UID do usuário é mapeado para guest mesmo que forneça uma senha correta
guest only = no

#Informa se o compartilhamento será "somente leitura" assim não podendo deletar, criar ou renomear arquivos e pastas
read only = no

#Define se o compartilhamento será ou não exibido
browseable = yes

#Define se será possível "escrever" no compartilhamento
writable = yes

#Solicita que o Samba force o tipo de permissão dos arquivos criados
force create mode = 777

#Mesmo que force create mode, mas para diretórios criados nos compartilhamentos
force directory mode = 777


#Nome do compartilhamento (financeiro)
[Arquivos Financeiro]

#Comentário para o compartilhamento
comment = Arquivos Financeiro

#Diretório para o compartilhamento
path = /home/server/files/financeiro

#Usuários que poderão acessar o compartilhamento.
#Obs.: os usuários devem estar no sistema também, abaixo explicarei como adicionar os usuários

valid users = william, maria  #Apenas o usuário "william" e o usuário "maria" poderão acessar este compartilhamento enquanto que o usuário "joao" não

#Informa se o compartilhamento é público
public = no

#Permite somente conexões guest ao recurso. O UID do usuário é mapeado para guest mesmo que forneça uma senha correta
guest only = no

#Informa se o compartilhamento será "somente leitura" assim não podendo deletar, criar ou renomear arquivos e pastas
read only = no

#Define se o compartilhamento será ou não exibido
browseable = yes

#Define se será possível "escrever" no compartilhamento
writable = yes

#Solicita que o Samba force o tipo de permissão dos arquivos criados
force create mode = 777

#Mesmo que force create mode, mas para diretórios criados nos compartilhamentos
force directory mode = 777

#Obs.: para mostrar a lixeira junto na rede crie um novo compartilhamento informando o diretório da lixeira

Configurando Syslog

Agora, vamos configurar o syslog do sistema para executar os logs do Samba.

Abra o arquivo /etc/syslog.conf se estiver usando Ubuntu ou Debian até a versaõ 6. Se estiver usando o Debian 7, o arquivo é /etc/rsyslog.conf.

Insira esta linha no final do arquivo:

local5.notice /var/log/samba-full_audit.log

Note que o local5.notice corresponde aos valores informados nas opções full_audit:facility e full_audit:priority. Enquanto o /var/log/samba-full_audit.log é o arquivo de log que será gerado.

Em seguida, iremos criar os diretórios:

# mkdir /home/server/files/usuario && mkdir /home/server/files/financeiro

Agora, iremos dar permissão total a esses diretórios:

# chmod 777 /home/server && chmod 777 /home/server/files && chmod 777 /home/server/files/usuario && chmod 777 /home/server/files/financeiro

Ainda temos que criar os usuários: william, maria e joao:

# adduser william

Informe a senha e outras informações conforme o servidor pedir. Faremos igual para os outros dois:

# adduser maria
# adduser joao


Agora, temos de adicioná-los ao Samba:

# smbpasswd -a william

Informe a senha para usuário.

Obs.: a senha deve ser igual à criada anteriormente, para evitarmos negação de direito nos diretórios.

O mesmo para os outros dois:

# smbpasswd -a maria
# smbpasswd -a joao


Se desejar que os usuários não possam logar no sistema do servidor via SSH, ou pelo próprio sistema, vamos inativar o acesso deles ao sistema com o comando usermod.

Onde:
  • -L = LOCK (bloqueia)
  • -U = UNLOCK (desbloqueia)

# usermod -L william
# usermod -L maria
# usermod -L joao


Para liberar o acesso, basta trocar o -L por -U.

Depois de concluída toda a configuração, reinicie os serviços e o compartilhamento passará a funcionar imediatamente:

# service samba restart

Devemos reiniciar o serviço de log também:

# service rsyslog restart

Fazendo assim, deverá funcionar, configurei o meu desse mesmo jeito. Se der algum problema, ou alguma coisa não está como você queria, revise o tutorial.

Obs.: a dica abaixo foi retirada de:

Acessando arquivos de log

Para acessar os arquivos de log, configuramos o arquivo para ser gerado em /var/log/samba-full_audit.log.

Dentro do arquivo, você verá entradas contendo a data e hora, o usuário, o IP da máquina, o nome do compartilhamento, a operação realizada e o nome do arquivo, ou pasta, onde ela foi realizada, como em:

Nov 18 15:21:15 m5 smbd_audit: joao|192.168.1.23|arquivos|opendir|ok|.
Nov 18 15:21:29 m5 smbd_audit: joao|192.168.1.23|arquivos|open|ok|r|addr.txt
Nov 18 15:21:34 m5 smbd_audit: joao|192.168.1.23|arquivos|mkdir|ok|trabalho
Nov 18 15:21:36 m5 smbd_audit: joao|192.168.1.23|arquivos|opendir|ok|trabalho
Nov 18 15:21:43 m5 smbd_audit: joao|192.168.1.23|arquivos|open|ok|w|trabalho/Samba.sxw
Nov 18 15:21:44 m5 smbd_audit: joao|192.168.1.23|arquivos|open|ok|w|trabalho/foto.jpg

O log conterá entradas referentes a todos os usuários e máquinas, mas, é fácil ver apenas as entradas referentes a um determinado usuário, compartilhamento, endereço IP ou outro parâmetro qualquer, ao listar o arquivo pelo terminal usando o grep, que permite mostrar apenas as linhas contendo determinados trechos de texto, como em:

Mostra os acessos provenientes do usuário joao:

# cat /var/log/samba-full_audit.log | grep joao

Acessos feitos ao compartilhamento "financeiro", por parte de qualquer usuário:

# cat /var/log/samba-full_audit.log | grep |financeiro|

Dica: adicione "> arquivos.log" no final de cada linha anterior, para copiar o log para um arquivo externo.


Dúvidas ou problemas postem nos comentários abaixo. Abraço...

Fontes:
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Problemas ao montar partição criptografada com Losetup em distribuições diferentes

Montagem de filesystem Windows CIFS automaticamente

Problemas ao montar partições NTFS no Slackware 13.37 [Resolvido]

Pesquisar por arquivos no GNU/Linux

Acessando dados de uma pasta /home encriptada

  

Comentários
[1] Comentário enviado por lafiera em 15/05/2014 - 14:31h

Muito bom! Parabens. Me ajudou bastante.

Obrigado

[2] Comentário enviado por tulioramos em 16/08/2017 - 17:16h

Parabéns. Muito útil.

[3] Comentário enviado por Wcadore em 16/08/2017 - 17:30h


[2] Comentário enviado por tulioramos em 16/08/2017 - 17:16h

Parabéns. Muito útil.


Obrigado, estamos aqui para contribuir, qualquer duvida estamos ai!

[4] Comentário enviado por Wcadore em 16/08/2017 - 17:31h


[1] Comentário enviado por lafiera em 15/05/2014 - 14:31h

Muito bom! Parabens. Me ajudou bastante.

Obrigado


Obrigado, desculpe a demora, estava fora por uns tempos!
Conseguiu usar, ficou alguma duvida?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts