Bind named error (broken trust chain)

Esta noite a UPS decidiu avariar, penso que seja a bateria que já deu o que tinha para dar ...

Como não parava de emitir um beep sonoro deveras chato, principalmente às 2h30 da madrugada, limitei-me a desligar a UPS, mesmo sabendo que desligaria toda a minha rede.

Após chegar do trabalho a casa, lá fui desligar tudo da UPS resolvendo o problema temporariamente com uma tripla, até descobrir qual o problema com a UPS.

Depois de fazer power ON a tudo, qual a minha surpresa, quando reparo que nenhum aparelho está com conectividade à Internet. Analisando melhor, reparo que o Skype no meu portátil consegui ligar, continuando as restantes aplicações sem acesso à net.
Este sintoma aponta baterias para problemas com o DNS, pois o skype não faz uso deste serviço.

Olhando para os log's do BIND no raspberry reparo no seguinte:


Jan 28 02:26:04 gandalf named[1957]: validating @0xb83f6408: android.clients.google.com A: bad cache hit (com/DS)

Jan 28 02:26:04 gandalf named[1957]: error (broken trust chain) resolving 'android.clients.google.com/A/IN': 8.8.8.8#53

Nunca tinha visto este tipo de erros no Bind, mas uma coisa não batia certo, a hora dos log's, o relógio do Raspberry Pi estava manifestamente atrasado em relação ao fuso horário em PT.

Usei o comando date para mudar a hora

date -s "28 JAN 2016 18:36:00"

Reiniciei o serviço de Bind, e problema resolvido !


phpIPAM - Gestão de IP's, Instalação em Raspberry PI

Introdução

O phpIPAM é um gestor de IP's open-source. Permite através de um browser fazer a gestão de endereços IPv4 e IPv6 de uma forma simples.

Permite: 
  • Fazer a separação de subnets 
  • Suporte para IPv4 e IPv6
  • Visualizar gama de IP's livres
  • Visualizar dados estatísticos
  • Gestão de utilizadores
  • Suporte para autenticação com AD/LDAP/OpenLDAP
  • Notificações por email
  • Importação de IP's de ficheiros XLS/CSV
  • Exportar IP's para XLS
  • Calculadora IPv4/IPv6
  • Pesquisas diversas
Na lista TODO 
  • Updates aos servidores DNS
  • Fazer scan's a subnets

Tutorial

Vamos começar por verificar se temos o apache instalado

netstat -na | grep :80| grep LISTEN

Se estiver à escuta, no próximo passo não há necessidade se instalar o apache, podem igualmente verificar se o Mysql está instalado, verificando o porto 3306

apt-get update


apt-get install apache2 mysql-server php5 php5-gmp php-pear php5-mysql php5-ldap

Configuração do Mysql


Se fizerem uma instalação nova, o instalador pede a password desejada para root, poderão usar este user para aceder à base de dados do phpIpam, no entanto se preferirem usar outro utilizador no Mysql para o phpIpam então tem que criar um user especifico na consola do Mysql

CREATE USER 'phpip_usr'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON phpipam . * TO 'phpip_usr'@'localhost';

FLUSH PRIVILEGES;

Configuração do Apache

É necessário activar o módulo mod_rewrite, executando :

sudo a2enmod rewrite
sudo service apache2 reload

Instalação e configuração do phpIpam

Vamos até o directório do phpIpam para fazer o download do software usando o comando wget.
Caso o endereço mude, podem consultar na página oficial a secção de downloads

cd /var/www
wget http://sourceforge.net/projects/phpipam/files/latest/download

Ao descompactar o ficheiro download,  será criado o directório phpipam 

tar -xvf download

Vamos configurar o acesso do phpIpam à base de dados editando do ficheiro config.php que está em /var/www/phpipam

Deverão ter em consideração o user e password escolhidos na instalação do Mysql

<?php

/*      database connection details
 ******************************/
$db['host'] = "localhost";
$db['user'] = "phpipam";
$db['pass'] = "phpipamadmin";
$db['name'] = "phpipam";

/**
 * php debugging on/off
 *
 * true  = SHOW all php errors
 * false = HIDE all php errors
 ******************************/
$debugging = false;

/**
 *      manual set session name for auth
 *      increases security
 *      optional
 */
$phpsessname = "phpipam";

/**
 *      BASE definition if phpipam
 *      is not in root directory (e.g. /phpipam/)
 *
 *  Also change
 *      RewriteBase / in .htaccess
 ******************************/
define('BASE', "/phpipam/");

?>

A restante configuração é feita acedendo ao phpIpam via browser, no meu caso em 

http://192.168.100.xxx/phpipam/

Adequam o endereço IP para o vosso cenário.
  • Começamos por escolher a opção 1 para que a base de dados no Mysql seja criada de forma automática
  • No segundo passo colocamos o user e password escolhidos previamente para o acesso ao Mysql
  • De seguida escolhemos a password de administrador para aceder à plataforma phpIpam 
  • A partir daqui podemo efetuar o login usando o user admin e password escolhida anteriormente.
A partir daqui estão prontos a usufruir esta fantástica ferramenta.





Wake-on-LAN, como usar ?


Wake-on-Lan permite ligar um computador que está electricamente desligado (power off) mas com cabo de rede ligado ao switch. 

De notar que Wake-on-Lan pode ser usado em computadores que estejam ligado fisicamente à rede e não por wireless. 

Como verificar se o computador tem esta funcionalidade ?


Para que o wake-on-Lan funcione, a motherboard do computador tem que suportar esta funcionalidade. Consultando o manual da motherboard, ou navegando nos menus da BIOS poderemos encontrar 'PCI Power up' ou “Allow PCI wake up event”. Praticamente todas as motherboards modernas suportam  esta funcionalidade.


Após activar o WOL na motherboard, para acordar o PC podem usar este software cliente em ambiente Windows, para enviar o pedido WOL. O único requisito necessário, é saber qual é o MAC address da placa de rede do computador que queremos acordar.



Como usamos o MAC address do computador de destino, o WOL só vai funcionar se estivermos no mesmo domínio de broadcast.

Caso estejam ligados à rede remota (onde está localizado o PC a acordar), através de uma VPN Layer3, então uma das soluções passa por criar um script no raspberry onde termina a VPN, colocando no script os comandos necessários para invocar o WOL.

Antes de criar o script, devemos instalar o cliente linux:

sudo apt-get update
sudo apt-get install etherwake

Após instalar o etherwake, podemos executar o comando com o MAC de destino associado:

sudo etherwake xx:yy:zz:11:22:33


Se não quiserem estar a decorar o MAC de destino, podem criar um script com o comando.

pico acorda_frodo.sh

editando o script com a seguinte informação:

#!/bin/bash
echo "Enviando WOL ao Frodo !"
sudo etherwake xx:yy:zz:11:22:33

Após gravar o script temos que dar permissões de execução

sudo chmod o+x acorda_frodo.sh

Para executar o script basta chamar o mesmo da seguinte forma:

./acorda_frodo.sh

Desta forma, o Raspberry é que envia o pedido para acordar o PC, e como estão ambos no mesmo domínio de broadcast, funciona.