Como corrigir Data/hora no Centos 6.X para seu timezone inclusive nos logs
Hoje eu me deparei com um problema ao utilizar o Fail2ban que me ajuda demais a manter o servidor no ar mesmo sob ataques de brute-force.
Um dos meus filtros não estavam barrando as diversas tentativas de autenticação em um dos meus serviços embora estivesse tudo certo. Resolvi aumentar o tempo de Findtime na configuração comum e ele começou a barrar.
Então era hora de entender porque com um findtime baixo ele não conseguia barrar. Comecei a checar detalhadamente as configurações e percebi que mesmo tendo alterado a hora para meu timezone para o horario oficial de Brasilia, os logs continuavam a exibir o horario em UTC. Desconfiei que pudesse ser isso e resolvi alterar o horário que é colocado nos logs (/var/log/messages).
Bingo!
Após a alteração e confirmar que os logs estavam usando o mesmo horario que o reportado em
date
mudei o findtime para os valores que desejava e tudo funcionou como esperado.
Segue a receita para alterar o horario.
As informações de Timezone ficam no arquivo /etc/localtime e caso ele não esteja no que você quer basta substitui-lo pelo que deseja e que esteja presente em /usr/share/zoneinfo/. No meu caso, como queria o horario de Brasília, utilizei /usr/share/zoneinfo/America/Sao_Paulo.
# ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
Agora é só testar usando o comando date e verificar a saída que deverá ser algo como:
# date Wed Dec 9 15:55:58 BRST 2015
Mesmo após essas mudanças, os logs continuarão a terem o horário da forma antiga. Para alterar isso edite o arquivo /etc/sysconfig/clock e adicione as linhas abaixo para refletir também o seu timezone.
ZONE="America/Sao_Paulo" UTC=false ARC=false
No meu caso, precisei reiniciar o servidor para que as alterações surtissem efeito mas pode ser que apenas reiniciando o serviço rsyslog já resolva.
# service rsyslog restart
Até a próxima.