RNP - Rede Nacional de Ensino e Pesquisa
 
Segurança de redes 
 

Alterações de configuração necessárias para o Horário de Verão 2007/2008

Alerta do CAIS 20071005

[CAIS, 05.10.2007-14:59, revisão 01]


Como foi devidamente anunciado pelo CAIS, o horário de verão 2007/2008 terá início em 14 de Outubro de 2007 e terminará em 17 de Fevereiro de 2008. Com isto, algumas configurações nos sistemas são necessárias.

O horário de verão está relacionado ao TIMEZONE adotado no sistema. Ou seja, o timezone funciona como uma "máscara" sobre o relógio do sistema, adequando o horário mostrado ao usuário e utilizado pelos programas (localtime) à localidade em que o sistema se encontra, mas deixando intacto o relógio do sistema (horário absoluto), sempre em UTC (GMT 0).

Se o relógio do sistema (horário absoluto) marca 16:00 UTC (GMT 0), ajustado sempre por NTP, então temos que:

  • Para o timezone do Brasil (GMT-3), o horário mostrado ao usuário será 13:00h - GMT-3 (localtime)
  • Para o timezone de Paris (França - GMT+1), por exemplo, o horário mostrado ao usuário seria 17:00h - GMT+1 (localtime)

Assim, nenhuma modificação nas configurações do serviço de NTP deve ser feita nos sistemas. Entretanto, deve-se tomar um cuidado especial com os *servidores* NTP (Stratum 1, Stratum 2 e outros) quando das modificações de configuração para o Horário de Verão. Caso o servidor NTP detecte uma diferença maior que 20 minutos entre o horário do sistema (horário absoluto) e o horário registrado pelo servidor NTP (ntpd, OpenNTPD), o serviço NTPD poderá parar. Assim, deve-se redobrar a atenção durante o processo de configuração do Horário de Verão em hosts que provêem este serviço.

Lembramos também que para algumas versões de Linux/Unix poderá ser necessário reiniciar o daemon "cron" após o início do horário de verão, de forma que as tarefas agendadas através do Cron possam continuar a ser executadas no horário correto. Para mais informações, verifique o manual do "cron" e "crontab" do seu sistema.

A seguir são descritos os procedimentos de atualização do localtime em sistemas OpenBSD, FreeBSD, GNU/Linux, Solaris, AIX e Windows, bem como em alguns equipamentos Cisco que usam o IOS. Antes de prosseguir com estes procedimentos é preciso que se saiba de antemão o timezone da sua região.

DICA: Consulte o site do Agência Nacional de Energia Elétrica para saber qual timezone se aplica à região do Brasil na qual seus sistemas estão.

  1. CISCO IOS
  2. GNU/Linux
  3. FreeBSD
  4. OpenBSD
  5. Solaris
  6. AIX
  7. MS Windows

1. Cisco IOS

Nos arquivos de configuração dos roteadores Cisco será preciso incluir (ou atualizar) as seguintes linhas:

clock timezone GMT-3 -3
clock summer-time GMT-2 date Oct 14 2007 0:00 Feb 17 2008 0:00

*OBS: Os logs gerados pelo Cisco passarão a informar a hora como GMT-2, que é a nova configuração do timezone.


2. GNU/Linux

Usuários de sistemas baseados em GNU/Linux devem seguir o procedimento abaixo:


1. Verificar a existência do arquivo '/etc/localtime' e se este arquivo é um link simbólico ou não.

Não é recomendado possuir o arquivo /etc/localtime como link simbólico, pois em sistemas em que o diretório /usr nao estiver acessivel (nao tiver sido montado, por exemplo) no momento da inicialização da máquina, as informações contidas no arquivo localtime não serão carregadas.

2. Verificar se existe no diretório /usr/share/zoneinfo/Brazil algum arquivo que contenha informações relativas a outros horários de verão (DICA: geralmente um arquivo com extensão .zic).
a) Se não existir nenhum arquivo com tais informações então crie um novo, de nome 'verao.2007.zic' por exemplo, no diretório /usr/share/zoneinfo/Brazil/. Este arquivo deverá conter as seguintes linhas:

Rule Brazil 2007 only - Oct 14 00:00 1 S
Rule Brazil 2008 only - Feb 17 00:00 0 -

Zone Brazil/East -3:00 Brazil BR%sT


b) Se existir algum arquivo com informações de Horário de Verão de outros anos basta inserir as linhas mencionadas.

As duas primeiras linhas de configuração acima informam quando se inicia o Horário de Verão, quando termina, e qual a ação a ser tomada. Lembre-se de que no início do Horário de Verão deve ser adicionada uma hora ao horário mostrado ao usuário (localtime).

A última linha diz qual arquivo será modificado pelo comando 'zic'. No exemplo acima, será o arquivo 'East' (dentro do diretório Brazil). Esta linha também informa qual o timezone original da região - no caso de São Paulo (East) temos UTC-3. Caso você esteja utilizando um timezone diferente do adotado em São Paulo (East), modifique estes parâmetros para o timezone que afeta sua região.

#Cidades que seguem o timezone definido para Fernando de Noronha:
Zone Brazil/DeNoronha -2:00 Brazil FN%sT

#Cidades que seguem o timezone definido para Brasília:
Zone Brazil/East -3:00 Brazil BR%sT

#Cidades que seguem o timezone definido para o Amazonas:
Zone Brazil/West -4:00 Brazil AM%sT

#Cidades que seguem o timezone definido para o Acre:
Zone Brazil/Acre -5:00 Brazil AC%sT

* Parâmetros definidos pela glibc presente em sistemas Linux, disponível para download em http://www.gnu.org/

3. Uma vez feitos os devidos ajustes no arquivo 'verao.2007.zic' execute o comando 'zic':

# zic verao.2007.zic


4. Neste caso em particular o comando atualizará o arquivo East.

Para verificar se as configurações corretas foram feitas, execute o comando 'zdump', conforme segue abaixo (troque East pelo timezone de sua região):

# zdump -v Brazil/East |grep 200[78]

Você deverá obter uma resposta como a que segue abaixo:

Brazil/East Sun Oct 14 02:59:59 2007 UTC = Sat Oct 13 23:59:59 2007 BRT isdst=0 gmtoff=-10800
Brazil/East Sun Oct 14 03:00:00 2007 UTC = Sun Oct 14 01:00:00 2007 BRST isdst=1 gmtoff=-7200
Brazil/East Sun Feb 17 01:59:59 2008 UTC = Sat Feb 16 23:59:59 2008 BRST isdst=1 gmtoff=-7200
Brazil/East Sun Feb 17 02:00:00 2008 UTC = Sat Feb 16 23:00:00 2008 BRT isdst=0 gmtoff=-10800

Note que em "Sat Oct 13 23:59:59 2007" o sistema ainda não está no Horário de Verão (indicação 'BRT'). No segundo seguinte as modificações do Horário de Verão entram em vigor, adiantando o localtime em uma hora: "Sun Oct 14 01:00:00 2007 BRST" (O horário mostrado ao usuário passará para 1 da manhã, e não para meia-noite, mostrando o adiantamento do horário).

Em "Sat Feb 16 23:59:59 2008 BRST", o Horário de Verão terminará no segundo seguinte, com o localtime sendo então atrasado em 1 hora: "Sat Feb 16 23:00:00 2008 BRT" (o horário mostrado ao usuário voltará para às 23:00).

5. Por último, se o arquivo /etc/localtime NÃO for um link para o arquivo /usr/share/zoneinfo/Brazil/East, deve-se copiar o arquivo East para /etc/localtime
# cp East /etc/localtime

Caso o arquivo /etc/localtime seja um link, sugerimos que o link seja removido e a cópia descrita acima seja executada. Lembre-se sempre de fazer cópias de segurança antes de modificar seu sistema.


3. FreeBSD

Usuários do sistema FreeBSD devem proceder da mesma forma que usuários GNU/Linux. A única diferença está no diretório onde deverá ser criado o arquivo 'verao.2007.zic' - /usr/share/zoneinfo. As linhas a serem incluidas neste arquivo, assim como em sistemas GNU/Linux, são:

Rule Brazil 2007 only - Oct 14 00:00 1 S
Rule Brazil 2008 only - Feb 17 00:00 0 -

Zone hv2007 -3:00 Brazil BR%sT

No exemplo acima, o nome 'hv2007' representa o arquivo que será criado ao executar o comando 'zic verao.2007.zic', o qual conterá as informações do Horário de Verão. Este novo arquivo deverá ser copiado sobre /etc/localtime, lembrando que será preciso fazer uma cópia de segurança do arquivo /etc/localtime antes de sobrescrevê-lo.


4. OpenBSD

Usuários do sistema OpenBSD devem proceder da mesma forma que usuários GNU/Linux.


5. Solaris

Usuários de Solaris devem seguir o procedimento abaixo:

1. Verificar o zoneinfo respectivo. O arquivo /etc/TIMEZONE contém as informações relativas a qual arquivo será consultado para verificar o zoneinfo.

# more /etc/TIMEZONE

TZ=Brazil/East

No exemplo acima, deverá ser consultado o arquivo East, no diretório Brazil. Por padrão, este diretório deve estar em /usr/share/lib/zoneinfo.


2. Verificar se existe no diretório /usr/share/lib/zoneinfo algum arquivo em formato texto que contenha informações relativas a outros horários de verão (DICA: geralmente um arquivo com extensão .zic)

a) Se não existir nenhum arquivo com tais informações, deverá ser criado um novo arquivo, de nome 'brazil.zic' por exemplo, e inserir as seguintes linhas.

Rule Brazil 2007 only - Oct 14 00:00 1 S
Rule Brazil 2008 only - Feb 17 00:00 0 -

Zone Brazil/East -3:00 Brazil BR%sT

b) Se existir um arquivo com informações de Horário de Verão de outros anos basta inserir as linhas acima.

As duas primeiras linhas informam quando inicia o Horário de Verão, quando termina e qual a ação a ser tomada. Lembre-se de que no início do Horário de Verão deve ser adicionada uma hora.

A última linha diz qual arquivo será gerado pelo comando 'zic' - no exemplo será o arquivo 'East' (dentro do diretorio Brazil). Esta linha também informa o timezone da região, no caso o de São Paulo, UTC-3.

No exemplo que se segue existe um diretório 'Brazil' dentro de /usr/share/lib/zoneinfo que contém um arquivo brazil.zic, que deve ser atualizado com as linhas mencionadas acima.

3. Deve-se então gerar o novo arquivo (em formato binário) como segue:

# zic brazil.zic


4. Para verificar se as configurações foram feitas corretamente, execute o comando 'zdump' conforme segue abaixo (troque East pelo timezone de sua região):


# zdump -v Brazil/East |grep 200[78]

Você deverá obter uma resposta como a que segue abaixo:

Brazil/East Sun Oct 14 02:59:59 2007 UTC = Sat Oct 13 23:59:59 2007 BRT isdst=0
Brazil/East Sun Oct 14 03:00:00 2007 UTC = Sun Oct 14 01:00:00 2007 BRST isdst=1
Brazil/East Sun Feb 17 01:59:59 2008 UTC = Sat Feb 16 23:59:59 2008 BRST isdst=1
Brazil/East Sun Feb 17 02:00:00 2008 UTC = Sat Feb 16 23:00:00 2008 BRT isdst=0


6. AIX

Usuários de AIX devem alterar o arquivo /etc/environment colocando a diretiva:

2007: TZ=GRNLNDST3GRNLNDDT,M10.2.0/00:00:00,M2.3.0/00:00:00

Isto indica que o horário de verão se inicia às 00:00 do segundo domingo do mês 10 (14 de Outubro) e finaliza às 00:00 do terceiro domingo do mês 2 (17 de Fevereiro) , seguindo a seguinte sintaxe:

2007: TZ=GRNLNDST3GRNLNDDT,Mm.w.wd/00:00:00,Mm.w.wd/00:00:00

* m - mês ( 1 < m < 12 )
* w - ocorrencia do dia da semana no mês contados a partir do dia 1o. (1 < d < 5)
* wd - dia da semana ( 0 < n < 5 : Domingo corresponde a 0)
* hh:mm - horário



7. Windows

Para sistemas Windows 9*/NT/2000/XP recomenda-se o uso do utilitário TZEDIT (tzedit.exe), incluido no CD do Resource Kit que acompanha a distribuição do sistema. Não existe URL oficial para fazer download deste programa no site da Microsoft, mas ele pode ser facilmente encontrado na Internet, lembrando que neste último caso *não* se garante a integridade do programa.

Uma segunda opção para modificação do timezone em WindowsXP é a utilização do utilitário 'timezone.exe', disponível para download em:

Microsoft Download Center - Windows XP Service Pack 2 Support Tools


OBS: O download é precedido de um processo de validação, que verifica se sua cópia de Microsoft Windows é genuína.

Administradores que queiram automatizar a atualização do Horário de Verão em redes com elevado número de máquinas Windows podem encontrar mais informações em:

Microsoft Support Knowledge Base How to configure daylight saving time dates for Brazilhttp://support.microsoft.com/?kbid=317211

Para a configuração de timezone do seu sistema utilizando o comando 'timezone.exe' siga os seguintes passos:


1. Faça o download do "Windows XP Service Pack 2 Support Tools" e instale-o no seu sistema, caso você não possua o utilitário 'timezone.exe'.

2. Em um prompt de comando (cmd.exe) execute, a partir do diretório "Program Files\Support Tools" se foi utilizada a instalação padrão, o seguinte comando:


C:\Program Files\Support Tools>timezone.exe /s 00:0:2:10 00:0:3:02

As configurações acima seguem o formato:

Hora:DiaDaSemana:Dia:Mes - (Início Horário de Verão)
Hora:DiaDaSemana:Dia:Mês - (Fim Horário de Verão)

Hora: Hora (00 ate 23)
DiaDaSemana: Dia da semana (0 - 6 : 0 = Domingo, 1 = Segunda, etc)
Dia: Ocorrência do dia da semana no mês ( 1 - 5 : Exemplo -> no caso do dia da semana ser Terça-Feira: 1 - primeira terça do mês, 2 - segunda terca do mês, etc)
Mês: Mês do ano (01 - 12)

3. Execute o seguinte comando para verificar se as modificações foram corretamente executadas:

C:\Program Files\Support Tools>timezone.exe /g

Current Timezone is :

Daylight Saving Time begins at 00:0:2:10
Daylight Saving Time ends at 00:0:3:02

4. Configure o sistema para utilizar automaticamente as configurações do Horário de Verão:

5. Vá em Start -> Settings -> Control Panel -> Date and Time -> Timezone;

6. Certifique-se que você está utilizando o timezone de Brasilia (UTC-0300) Brasília;

7. Certifique-se que a caixa "Automaticamente ajuste o relógio para o horário de verão" está marcada.


Mais informações:


O CAIS Alerta também é oferecido no formato RSS/RDF:
http://www.rnp.br/cais/alertas/rss.xml

O CAIS está à disposição para mais esclarecimentos.



Centro de Atendimento a Incidentes de Segurança

Consulta em alertas

 


Contato com o Cais:

+55 (19) 3787-3300
+55 (19) 3787-3301

cais@cais.rnp.br


Chave PGP pública do Cais