Samba 23: Sincronizando Horário e Data do Servidor e Clientes Samba Usando ntpd ou Chrony

Introdução

 

Se deseja fazer com que os clientes samba(computadores cadastrados no domínio) atualizem seus horários através do servidor samba então terá que seguir esse tutorial. Ele é o de número 23 de uma séria que escrevemos sobre o samba. Mas até aqui, nessa série de artigos sobre SAMBA, não falamos ainda sobre tempo(horário e data).

Quando estamos testando o nosso samba em casa é comum desativarmos o firewall e não nos preocuparmos com o horário do computador. Em ambiente empresarial é importantíssimo termos o firewall e horário atualizado e ativo.

A diferença máxima de tempo permitida pelo samba é de 5 minutos. Se o computador onde está instalado o samba estiver com um horário com diferença de cinco minutos para mais ou menos o acesso às pastas compartilhadas do samba será negado.

O registro de tempo correto é importante para o bom funcionamento do Samba, por exemplo, Kerberos requer carimbo de tempo correto para prevenir ataque de repetição(replay atack).  kerberos é um sistema para autenticação segura e o samba faz uso dele.

Para automatizar o processo de ajuste do horário e data podemos fazer uso de um programa ntp(network time protocol). NTP é um protocolo para sincronização dos relógios dos computadores.  o protocolo ntp usa o protocolo de rede UDP e porta 123.  Essa porta deverá ser liberada no seu firewall. Já postamos artigos sobre firewall e outro sobre como liberar as portas usadas pelo samba:

 

Um programa ntp que mantém o horário atualizado, geralmente, faz uso de um servidor de tempo na internet. Por isso a importância de liberar a porta UDP 123 em nosso firewall.

Já falamos quais são as portas e protocolos usados pelo samba e agora iremos falar sobre como deixar o horário e data ajustados automaticamente usando para isso algum programa que trabalhe com ntp(network time protocolo).

Usando o Samba para Manter Atualizado o Tempo nos Clientes Windows Cadastrados no Domínio

 

Quando instalamos programas como ntpd, Chrony ou openntpd, eles atualizarão o horário do nosso computador automaticamente e para isso eles consultam um servidor de tempo na internet. Se qualquer um desses 3 programas estiver instalado nosso servidor está ok com data e horário atualizados. O samba que também está instalado nesse mesmo servidor estará também em boa situação em relação ao tempo. Mas, e quanto aos computadores clientes(geralmente Windows) cadastrado em nosso domínio do samba? como eles conseguem pegar o horário correto? Esses clientes terão seus horários atualizados pelo samba.

O samba suporta dois programas para ajuste automático de tempo: ntpd e chrony

Por padrão, os clientes Windows cadastrados no domínio sincronizam seus horários usando o protocolo NT5DS. Esse protocolo usa assinaturas digitais.  O samba também pode fornecer essas assinaturas digitais usando as opções:

  • mssntp
  • ntpsigndsocket

Poderíamos não usar o samba para atualizar o horário dos clientes. Bastaria configurarmos todas as máquinas Windows para atualizar seu horário diretamente com um servidor ntp. Porém é recomendado usarmos o protocolo NT5DS para pegamos o horário do samba.

Obs.: Se tiver mais de um servidor samba configure um servidor de tempo ntp em todos eles.

 

Abaixo iremos exemplificar usando o ntpd  ou o Chrony. É bom deixar claro que você terá que escolher ou um ou outro, ocorrerá erro se tentar iniciar ou executar os dois.

Instalando o ntpd

Instalando no Debian e Derivados

apt install ntp

Instalando no Red Hat, CentOS

yum install ntp

Instalando o Chrony

 

Instalando no Debian e Derivados

apt install ntp

Instalando no Red Hat/ CentOS

yum install ntp

 

Ajustando o Samba

 

O Windows precisa de um servidor ntp que forneça respostas ntp assinadas para que o seu horário seja atualizado usando um servidor ntp. O protocolo NTP precisa de um provedor de assinatura e o samba 4 satisfaz esse requisito.

No Samba já há um socket habilitado por padrão. Socket, em Linux, é um modo de um programa se comunicar com outro através da rede. Podemos executar somente o comando “netstat -a” para vermos o socket sendo usado. Mas é melhor usarmos “netstat -a | grep ntp_signd” para filtrarmos somente as linhas contendo a palavra ntp_signd.

elder@server02:~$ sudo netstat -a | grep ntp_signd
unix  2      [ ACC ]     STREAM     OUVINDO       44145    /usr/local/samba/var/lib/ntp_signd/socket

Podemos ver acima que o samba está pronto, fornecendo um socket para conexões ntp assinadas(signed).

Como dito acima, precisamos definir as duas opções abaixo dentro de /etc/ntp.conf  ou dentro de chrony /etc/chrony/chrony.conf caso estejamos usando o chrony ao invés do ntpd para ajustes do horário.

  • mssntp
  • ntpsigndsocket

 

Como o socket oferecido pelo samba para conexões assinadas ntp está pronto, então não precisamos fazer nada nesse quesito.

 

Como dito acima, podemos escolher tanto o ntpd quando o chrony. A depender da escolha devemos realizar a alteração abaixo:

Configurando o  Arquivo /etc/ntp.conf  para o ntpd

Abra o arquivo /etc/ntp.conf  e acrescente as seguintes linhas. Use seu editor de texto predileto para editar o arquivo.

ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
restrict default mssntp

 

configurando o Aquivo /usr/local/samba/var/lib/ntp_signd/  do Chrony

 

Abra o arquivo /etc/chrony/chrony.conf  e acrescente as seguintes linhas. Use seu editor de texto predileto para editar o arquivo.

ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
allow 192.168.0.0/24

Adicione a rede acima: allow 192.168.0.0/24. Altere a faixa de ip de acordo com o seu ambiente.

Permissão da Pasta do Socket

Ainda, a depender do programa sendo usado, ntpd ou chrony, deveremos conceder permissão para a pasta do socket do samba.

Se Usar o ntpd:

chown root:ntp /usr/local/samba/var/lib/ntp_signd/
chmod 750 /usr/local/samba/var/lib/ntp_signd/

Se usar o Chrony:

chown root:_chrony /usr/local/samba/var/lib/ntp_signd/
chmod 750 /usr/local/samba/var/lib/ntp_signd/

 

Testando o ntp cliente

Para testes iremos usar o windows 7, mas poderia ser qualquer versão. O Windows já deverá estar cadastrado no domínio.

Atenção: No servidor samba tenha certeza de ter iniciado o ntpd ou o chrony.

Abra o cmd no windows e digite “w32tm /resync”. O resultado deverá ser o seguinte:

c:\> w32tm /resync
Enviando comando resync para o computador local
O comando foi concluído com êxito.

 

Erro Encontrado appmor

 

AppArmor é um sistema de Controle de Acesso e ele poderá estar bloqueando o acesso ao ntp.

Se estiver usando Debian é bom adicionar exceção no apparmor.

 

Para o ntpd

Para isso edite o arquivo /etc/apparmor.d/local/usr.sbin.ntpd e adicione a seguinte linha:

/usr/local/samba/var/lib/ntp_signd/socket rw

 

Para o chrony

Altere o arquivo /etc/apparmor.d/local/usr.sbin.chronyd e acrescente a linha abaixo:

/usr/local/samba/var/lib/ntp_signd/socket rw

 

Fontes: wikipedia, samba.org, beej.us, blog.mycroes.nl, debian-handbook

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

One Comment to “Samba 23: Sincronizando Horário e Data do Servidor e Clientes Samba Usando ntpd ou Chrony”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *