GNU/Linux – Horário de verão 2018/2019

Fala pessoal, o blog não morreu 🙂


Tendo em vista as mudanças e incertezas sobre o horário de verão desse ano, resolvi escrever esse artigo explicando como configurar o horário de verão manualmente em sistemas GNU/Linux.

O inicio do horário de verão de 2018, inicialmente, estava marcado para começar hoje, mais precisamente na virada do dia 20/10 para o 21/10, mas foi alterado por um decreto para o dia 4/11 e talvez ainda seja alterado novamente, mudando para o dia 18/11.

Penso que ainda existe incerteza sobre quando vai iniciar o horário de verão desse ano, algumas fontes indicam para o dia 4/11, dando a entender que a alteração para o dia 18/11 foi cancelada( ou nunca foi aprovada ) e outras afirmam que a data de inicio é realmente 18/11:

   

Dependendo da distribuição ( e da versão ) que você está utilizando, é provável que a correção para o horário de verão desse ano já esteja disponível, mas se não estiver, ou o inicio do horário de verão seja alterado mais uma vez, é possível utilizar os seguintes passos para configurar o sistema manualmente:

1 – Crie o arquivo /usr/share/zoneinfo/Brazil/verao_2018_19.zic conforme esse exemplo:

 
Rule Brazil 2018 only - Nov  4 00:00 1 S
Rule Brazil 2019 only - Feb 17 00:00 0 -

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

# quando começa o horário de verão ( 4/11 00:00 ) 
Rule Brazil 2018 only - Nov  4 00:00 1 S

# quando termina o horário de verão ( 17/11 00:00, o dia 16 é o ultimo dia com horário de verão )
Rule Brazil 2019 only - Feb 17 00:00 0 -

# qual timezone será alterado na compilação
Zone Brazil/East -3:00 Brazil BR%sT
 

Nesse arquivo, estou configurando o inicio do horário de verão para o dia 4/11 e usando o Brazil/East ( horário de Brasília ), faça os ajustes para a sua necessidade. Outros horários são Brazil/Acre, Brazil/DeNoronha e Brazil/West.

2 – Compile o arquivo criado com o comando zic :


zic /usr/share/zoneinfo/Brazil/verao_2018_19.zic

3 – Consulte se o arquivo compilado foi criado corretamente:

zdump -v /usr/share/zoneinfo/Brazil/East | grep 201[89]

Se você alterou o Brazil/East no arquivo .zic, lembre-se de realizar alteração no restante dos comandos…

A saida do comando deve ser semelhante a essa:

/usr/share/zoneinfo/Brazil/East  Sun Nov  4 02:59:59 2018 UT = Sat Nov  3 23:59:59 2018 -03 isdst=0 gmtoff=-10800
/usr/share/zoneinfo/Brazil/East  Sun Nov  4 03:00:00 2018 UT = Sun Nov  4 01:00:00 2018 -02 isdst=1 gmtoff=-7200
/usr/share/zoneinfo/Brazil/East  Sun Feb 17 01:59:59 2019 UT = Sat Feb 16 23:59:59 2019 -02 isdst=1 gmtoff=-7200
/usr/share/zoneinfo/Brazil/East  Sun Feb 17 02:00:00 2019 UT = Sat Feb 16 23:00:00 2019 -03 isdst=0 gmtoff=-10800

As duas primeiras linhas mostram o inicio do horário de verão e as duas últimas o final.

# ganha uma hora 
Nov  3 23:59:59 2018 -03 
Nov  4 01:00:00 2018 -02 

# perde uma hora
Feb 16 23:59:59 2019 -02 
Feb 16 23:00:00 2019 -03 

4 – Por último, substitua o arquivo localtime pelo novo arquivo compilado:

mv /etc/localtime /etc/localtime.bkp
cp /usr/share/zoneinfo/Brazil/East /etc/localtime

E pronto seu sistema estará configurado.

Em caso de dúvidas, deixe um comentário ou me procure no twitter…

Instalando o FreeRADIUS no Ubuntu 14.04

O FreeRADIUS é um serviço para sistemas Unix like que permite realizar a autenticação, autorização e a contabilidade( AAA – Authentication, Authorization e Accounting ) de usuários de uma rede… Um exemplo de uso do FreeRADIUS é a integração com Mikrotik para fazer a autenticação dos usuários de um hotspot( Wi-Fi ).

Nesse artigo, vou mostrar como instalar, configurar e testar o FreeRADIUS no Ubuntu 14.04. Para maiores informações sobre o que é o FreeRADIUS e o que ele pode fazer, acesse o site do projeto nessa URL: http://freeradius.org/.

Para começar, é necessário atualizar a lista do APT e instalar os pacotes do FreeRADIUS e do MySQL:

 



apt-get update

apt-get install freeradius freeradius-mysql freeradius-utils mysql-server

Obs.: Todos os comandos devem ser realizados através do usuário root.

Obs.: Durante a instalação será necessário cadastrar uma senha para o usuário root do MySQL.

Com os pacotes instalados, primeiro é necessário configurar o MySQL. Execute o comando mysql_secure_installation e responda as perguntas conforme o seguinte exemplo:

 



mysql_secure_installation

#Mudar a senha do root?
Change the root password? [Y/n] n

#Remover usuários anônimos?
Remove anonymous users? [Y/n] y

#Desabilitar acesso do root remotamente?
Disallow root login remotely? [Y/n] y

#Remover o banco de dados de teste?
Remove test database and access to it? [Y/n] y

#Atualizar a tabela de privilégios agora?
Reload privilege tables now? [Y/n] y

Depois, crie um banco de dados e um usuário no MySQL para serem utilizados pelo FreeRADIUS:

 



mysql -u root -p -e "CREATE DATABASE radius"

mysql -u root -p -e "CREATE USER 'usuario_radius'@'localhost' IDENTIFIED BY 'senha'"

mysql -u root -p -e "GRANT ALL PRIVILEGES ON radius.* TO 'usuario_radius'@'localhost'"

service mysql restart

Esses comandos criam o banco de dados ‘radius’ e o usuário ‘usuario_radius’ com a senha ‘senha’.

Com o banco de dados criado, é necessário adicionar as tabelas que serão usadas pelo FreeRADIUS. Isso pode ser feito importando o arquivo /etc/freeradius/sql/mysql/schema.sql e o arquivo /etc/freeradius/sql/mysql/nas.sql para o banco de dados. Para fazer isso, use os seguintes comandos:

 



mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql

mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql

Com o banco de dados pronto, é possível iniciar a configuração do FreeRADIUS. Como a configuração padrão é bastante abrangente, será necessário fazer apenas pequenas alterações nos arquivos disponibilizados pela instalação.

Primeiro, é necessário cadastrar as informações do banco no arquivo /etc/freeradius/sql.conf. Para o exemplo desse artigo, a configuração é a seguinte:

 


... inicio do arquivo ...

database = "mysql"
#
# Which FreeRADIUS driver to use.
#
driver = "rlm_sql_${database}"

# Connection info:
server = "localhost"
#port = 3306
login = "usuario_radius"
password = "senha"
# Database table configuration for everything except Oracle
radius_db = "radius"

... final do arquivo ...

Ainda no arquivo /etc/freeradius/sql.conf, também é necessário habilitar a leitura dos clientes através do banco de dados, isso é feito retirando o # da frente da seguinte linha:

 


#readclients = yes

Dando continuidade, o próximo passo é habilitar o modulo SQL do FreeRADIUS alterando o arquivo /etc/freeradius/radiusd.conf.

Retire o # da frente dessa linha:

 


... inicio do arquivo ...

# $INCLUDE sql.conf

... final do arquivo ...

Em seguida, é necessário ativar o uso do modulo SQL nas sessões do arquivo /etc/freeradius/sites-available/default . Novamente, basta descomentar as linhas onde aparece a palavra sql, retire o # da frente de linhas iguais a essa:

 



# sql

Com isso, o FreeRADIUS está funcionando e já pode ser testado localmente( a partir da máquina onde está instalado )… Porém, antes de fazer o teste, é necessário adicionar um usuário… Use o seguinte comando para criar o usuário ‘paulo’ com a senha ‘dias’:

 


mysql -u root -p -e "INSERT INTO radcheck( username, attribute, op, value ) VALUES ( 'paulo', 'User-Password', '==', 'dias' )" radius

Reinicie o serviço do FreeRADIUS e execute o comando radtest para testar a autenticação do usuário, assim:

 



service freeradius restart

radtest paulo dias 127.0.0.1 0 testing123

Obs.: Nesse exemplo, o ‘testing123’ é o segredo( senha ) que o cliente localhost precisa enviar para utilizar o FreeRADIUS.

Se a saída do comando radtest, for semelhante a essa abaixo, o FreeRADIUS foi configurado e está funcionando corretamente.

 



rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=152, length=20

Como por padrão apenas o cliente localhost está cadastrado, para usar o FreeRADIUS em um roteador, será preciso cadastrá-lo como um cliente no banco de dados. Isso é feito com o seguinte comando:

 



mysql -u root -p -e "INSERT INTO nas( nasname, shortname, secret) VALUES ( '192.168.0.1', 'Roteador principal', 'segredo' ) " radius;

Onde ‘192.168.0.1’ é o IP do cliente, ‘Roteador principal’ é uma identificação para o cliente e ‘segredo’ e a senha que esse cliente terá que enviar junto com as requisições para o FreeRADIUS.

Bom, por enquanto é isso, conforme o tempo permitir vou tentar adicionar mais artigos sobre o FreeRADIUS, se ficou alguma dúvida ou algo não funcionou, deixe um comentário…

Nagios Core no Ubuntu 14.04 – Parte 1

Oi, tudo bem?

Hoje vou iniciar uma serie de artigos sobre como instalar e configurar o Nagios Core através dos repositórios do Ubuntu 14.04. O Nagios é um sistema de monitoramento de rede de código aberto distribuído sob a licença GPL. Ele pode monitorar hosts e serviços, alertando quando ocorrerem problemas e também quando os problemas são resolvidos.

Nesse artigo, quero mostrar como instalar, administrar usuários e monitorar hosts ativos na rede. Para isso, o primeiro passo é executar a instalação com o seguinte comando:

 
sudo apt-get install nagios3 nagios-plugins-extra
 

Durante a instalação será necessário definir uma senha para o usuário padrão do Nagios. O usuário é o nagiosadmin, escolha a senha conforme a sua vontade.

Feito isso, o Nagios já vai estar instalado e funcionando… Utilize o seu navegador( use sempre o firefox 🙂 para acessar a máquina onde o Nagios foi instalado. A URL segue o seguinte padrão: http://ip.da.maquina/nagios3.

A seguinte janela vai requisitar os dados de autenticação:

Forneça o usuário nagiosadmin e a senha que foi cadastrada durante a instalação. Se tudo ocorreu normalmente, uma interface semelhante a essa será exibida:

Com o Nagios instalado é possível criar novos usuários para ter acesso a essa interface WEB. Para isso, utilize o seguinte comando:

 
sudo htpasswd /etc/nagios3/htpasswd.users paulo

Dessa forma, o usuário paulo vai ter acesso a interface WEB do Nagios, mas ainda não vai ter permissões para acessar algumas páginas. Isso ocorre devido as permissões que estão configuradas no arquivo /etc/nagios3/cgi.cfg. Para dar as mesmas permissões do usuário nagiosadmin para o novo usuário, use os seguintes comandos:

 
sudo mv /etc/nagios3/cgi.cfg /etc/nagios3/cgi.bkp

sudo cat /etc/nagios3/cgi.bkp | sed s/=nagiosadmin/=nagiosadmin,paulo/g > /etc/nagios3/cgi.cfg

sudo service nagios3 restart

Obs.: Substitua paulo pelo nome do seu usuário.

Depois de configurar outro usuário com todas as permissões necessárias, recomendo remover o usuário nagiosadmin. Para fazer isso, use o comando:

 
sudo htpasswd -D /etc/nagios3/htpasswd.users nagiosadmin

Para configurar um monitoramento é necessário criar um arquivo dentro da pasta /etc/nagios3/conf.d. Todos os arquivos com a extensão .cfg no interior dessa pasta( e sub-pastas ) serão analisados pelo Nagios. A instalação do Nagios já deixou alguns arquivos preparados. No meu Ubuntu existem os seguintes arquivos:

 
extinfo_nagios2.cfg
generic-host_nagios2.cfg
generic-service_nagios2.cfg
hostgroups_nagios2.cfg
localhost_nagios2.cfg
services_nagios2.cfg
timeperiods_nagios2.cfg

Os arquivos generic-host_nagios2.cfg e generic-service_nagios2.cfg são templates que podem ser utilizados para criar novos monitoramentos de forma simples. Para que o Nagios monitore se um equipamento está conectado na rede( através do protocolo ICMP ) crie o arquivo /etc/nagios3/conf.d/equipamento.cfg com o seguinte conteúdo:

 
define host{
use                 generic-host
host_name           equipamento
alias               equipamento
address             192.168.0.108
}

define service{
use                   generic-service
host_name             equipamento
service_description   PING
check_command         check_ping!550.0,10%!600.0,20%
}

Observação.: Altere o campo address com o endereço IP do seu equipamento

Acessando o link Map no menu da esquerda da interface WEB do Nagios será carregada uma tela semelhante a essa:

Com essa configuração o Nagios vai monitorar e sinalizar na interface WEB se o equipamento for desconectado.

Perceba que o novo monitoramento está utilizando um ícone com o simbolo de interrogação( ? ), mas é possível alterar esse simbolo por outro que identifique o equipamento de uma forma mais adequada. Altere o arquivo /etc/nagios3/conf.d/equipamento.cfg com o seguinte conteúdo:

 
define host{
use                 generic-host
host_name           equipamento
alias               equipamento
address             192.168.0.108
}

define service{
use                   generic-service
host_name             equipamento
service_description   PING
check_command         check_ping!550.0,10%!600.0,20%
}

define hostextinfo{
host_name       equipamento
icon_image      switch.png
icon_image_alt  equipamento
statusmap_image switch.png
}

Para que essa configuração tenha o efeito desejado é necessário colocar a imagem( no exemplo switch.png ) na seguinte pasta: /usr/share/nagios3/htdocs/images/logos/

A próxima imagem é de um sistema que já está em produção, veja como os ícones fornecem uma melhor visão da rede:

Veja que além dos ícones, que identificam os equipamentos, a forma como os equipamento foram organizados oferece um boa visualização dessa rede. Para conseguir esse efeito, é necessário alterar o arquivo /etc/nagios3/conf.d/equipamento.cfg e adicionar o atributo parents na definição do host. Veja:

 
define host{
use                 generic-host
host_name           equipamento
alias               equipamento
address             192.168.0.108
parents             localhost
}

define service{
use                   generic-service
host_name             equipamento
service_description   PING
check_command         check_ping!550.0,10%!600.0,20%
}

define hostextinfo{
host_name       equipamento
icon_image      switch.png
icon_image_alt  equipamento
statusmap_image switch.png
}

Veja a diferença na interface WEB do Nagios:

Dessa forma, fica evidente que o novo equipamento está ligado diretamente no localhost ( no servidor onde o Nagios está instalado ).

Obs.: No atributo parents é especificado o atributo host_name de outro equipamento.

Bom pessoal, esse artigo termina aqui, no próximo quero mostrar como configurar o postifix e receber alertas do Nagios por email. Obrigado e até mais…