Após compilarmos o samba, executamos o comando “samba-tool domain provision” e foi gerado o arquivo smb.conf.
Abaixo está o conteúdo que é criado dentro de smb.conf ao provisionarmos o samba:
elder@server02:/usr/local/samba$ cat ./etc/smb.conf # Global parameters [global] dns forwarder = 8.8.8.8 netbios name = SERVER02 realm = LAB.LOCAL server role = active directory domain controller workgroup = LAB idmap_ldb:use rfc2307 = yes [sysvol] path = /usr/local/samba/var/locks/sysvol read only = No [netlogon] path = /usr/local/samba/var/locks/sysvol/lab.local/scripts read only = No
Uma coisa a se notar é que usei o caminho relativo “cat ./etc/smb.conf” ao invés do absoluto “cat /usr/local/samba/etc/smb.conf” pois já estava dentro da pasta /usr/local/samba/.
Apesar do texto pequeno, não quer dizer que apenas essas opções estão ativas. Na verdade há opções que estão ocultas porém ativadas no samba. Por exemplo, o log está ativo e é armazenado dentro da pasta /usr/local/samba/var/
Vamos alterar a forma e local onde o samba armazena os logs. Analisando o arquivo smb.conf, na primeira linha acima temos a seção [global]. Como o nome sugere qualquer configuração feita nessa seção afetará tudo, pois ela é global.
Antes de mais nada irei iniciar o samba
elder@server02:/usr/local/samba$ sudo ./sbin/samba
Nosso samba está iniciado e agora podemos alterar as configurações de logs dentro de smb.conf
Local Padrão dos Logs do Samba
Podemos ver acima, no conteúdo do arquivo smb.conf, que não há opção nenhuma referente à logs, mas eles existem e estão dentro da pasta /usr/local/samba/var/
Vamos listá-los:
elder@server02:/usr/local/samba$ ls -1 ./var/ cache cores lib lock locks log.samba log.smbd log.wb-BUILTIN log.wb-LAB log.winbindd log.winbindd-idmap run
Temos acima colorido em laranja os arquivos de logs.
- log.smbd: grava eventos ocorridos com o programa(daemon) smbd, esse é o próprio samba sendo executado, aqui aparecem eventos sobre reinício, início e encerramento do programa samba no servidor.
- log.winbind:Temos logs sobre winbind que é um serviço de troca de nomes(name service switch).
- log.samba: Temos também o arquivo de log do samba, o log.samba.
Quando iniciamos o samba acima com o comando “sudo /usr/local/samba/sbin/samba” foi gravado eventos dentro de log.smbd, pois o samba foi iniciado.
Vamos alterar o arquivo smb.conf
Configurando Logs no samba
Temos as seguintes opções para colocarmos dentro de smb.conf e que afetar o modo como o log(gravação de eventos) ocorrerá:
- log file: alimentamos essa opção com um nome de arquivo onde serão gravados os logs. Podemos definir, como exemplo, que o arquivo de log será gravado em “log file = /var/log/samba.log”
- log level: alimentamos “log level” com um número de de 1 a 10. Quando maior o valor mais informação irá ser gravada. um valor de 1 a 3 é razoável, acima disso pode gerar confusão e deixar arquivos de logs pesados. Acima de 3 faz sentido para programadores do samba apenas. o número zero desativa o log.
- max log size: usamos “max log file” para definirmos o tamanho do arquivo de log do samba. Podemos colocar, como exemplo, “max log file = 10000”; dez mil aqui está em Kilo Bytes e, convertido para Mega Bytes, quer dizer que o tamanho do arquivo não passará de 10 Mega Bytes. Quando o arquivo chegar em 10MB ele será renomeado para, por exemplo, samba.log.old. O arquivo samba.log será esvaziado para receber novos eventos.
Vamos colocar as mãos em obra. Abaixo coloquei propositadamente “max log file” ao invés de “max log size”.
Editei meu arquivo smb.conf com o editor vim e acrescentei as linhas em laranja abaixo:
elder@server02:~$ sudo vim /usr/local/samba/etc/smb.conf
# Global parameters
[global]
dns forwarder = 8.8.8.8
netbios name = SERVER02
realm = LAB.LOCAL
server role = active directory domain controller
workgroup = LAB
idmap_ldb:use rfc2307 = yes
log file = /var/log/samba/samba.log
log level = 2
max log file = 10
[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No
[netlogon]
path = /usr/local/samba/var/locks/sysvol/lab.local/scripts
read only = No
O arquivo de log ficará dentro de uma pasta chamada samba, o nível de log será 2 e o tamanho do arquivo de log será de apenas 10 Kilo Bytes. 10 KB é apenas para testes, um valor maior é recomendado.
Use testparm para analisar se o arquivo smb.conf está com valores corretos.
elder@server02:~$ sudo /usr/local/samba/bin/testparm Load smb config files from /usr/local/samba/etc/smb.conf Unknown parameter encountered: "max log file" Ignoring unknown parameter "max log file" Loaded services file OK. .........
Acima, em vermelho, recebi um erro. O correto é “max log size” e não “max log file“. Corrigi o problema e o testparm não relatou mais erro.
Recarregue as configurações do samba com “smbcontrol all reload-config”
elder@server02:~$ sudo /usr/local/samba/bin/smbcontrol all reload-config
Agora basta criarmos a pasta samba dentro de /var/log/. Mas aqui irei aproveitar para mostrar o log exibido dentro de /usr/local/samba/var/log.smbd
[2021/07/30 14:20:55.522322, 0] ../../lib/util/debug.c:1105(reopen_one_log)
reopen_one_log: Unable to open new log file '/var/log/samba/samba.log': Arquivo ou diretório inexiste
Em vermelho podemos ver que houve erro pois o novo local apontado em smb.conf ainda não existe. Vamos criá-lo com “mkdir /var/log/samba” :
elder@server02:~$ sudo mkdir /var/log/samba
Recarregue novamente as configurações do samba
elder@server02:~$ sudo /usr/local/samba/bin/smbcontrol all reload-config
Veja agora o arquivo samba.log criado automaticamente dentro de /var/log/samba
elder@server02:~$ ls /var/log/samba/ samba.log
Fontes: samba.org(winbindd)
One Comment to “Samba 22: Configurando Logs”