sexta-feira, 14 de outubro de 2011

Procedimento Horário de Verão: GNU/Linux, FreeBSD e Windows


Horário de Verão 2011/2012:
Início: 16/10/11 - 3º Domingo
Término: 26/02/2012 - 4 Domingo

Sistemas GNU/Linux:
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.
# ls -las /etc/localtime

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.zic' por exemplo, no diretório /usr/share/zoneinfo/Brazil/. Este arquivo deverá conter as seguintes linhas:

    Rule Brazil  2011    only     -       Oct    16   00:00   1       S
    Rule Brazil  2012    only     -       Feb    26   00:00   0       -

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

# ls -las /usr/share/zoneinfo/Brazil/*.zic

3. Uma vez feitos os devidos ajustes no arquivo 'verao.zic' execute o comando 'zic':
# cd /usr/share/zoneinfo/Brazil/
# zic verao.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:
# zdump -v /usr/share/zoneinfo/Brazil/East |grep 201[12]

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

/usr/share/zoneinfo/Brazil/East  Sun Oct 16 02:59:59 2011 UTC = Sat Oct 15 23:59:59 2011 BRT isdst=0 gmtoff=-10800
/usr/share/zoneinfo/Brazil/East  Sun Oct 16 03:00:00 2011 UTC = Sun Oct 16 01:00:00 2011 BRST isdst=1 gmtoff=-7200
/usr/share/zoneinfo/Brazil/East  Sun Feb 26 01:59:59 2012 UTC = Sat Feb 25 23:59:59 2012 BRST isdst=1 gmtoff=-7200
/usr/share/zoneinfo/Brazil/East  Sun Feb 26 02:00:00 2012 UTC = Sat Feb 25 23:00:00 2012 BRT isdst=0 gmtoff=-10800

Note que em "Sat Oct 15 23:59:59 2011" 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 16 01:00:00 2011 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 25 23:59:59 2012 BRST", o Horário de Verão terminará no segundo seguinte, com o localtime sendo então atrasado em 1 hora: "Sat Feb 25 23:00:00 2012 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.

Sistemas FreeBSD:
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.
# ls -las /etc/localtime

2. Verificar se existe no diretório /usr/share/zoneinfo 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.zic' por exemplo, no diretório /usr/share/zoneinfo. Este arquivo deverá conter as seguintes linhas:

    Rule Brazil  2011    only     -       Oct    16   00:00   1       S
    Rule Brazil  2012    only     -       Feb    26   00:00   0       -

    Zone hv2011 -3:00 Brazil BR%sT

No exemplo acima, o nome 'hv2011' representa o arquivo que será criado ao executar o comando 'zic verao.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.

# ls -las /usr/share/zoneinfo/ *.zic

3. Uma vez feitos os devidos ajustes no arquivo 'verao.zic' execute o comando 'zic':
# cd /usr/share/zoneinfo/Brazil/
# zic verao.zic

4. Neste caso em particular o comando gerará o arquivo 'hv2011'.

Para verificar se as configurações corretas foram feitas, execute o comando 'zdump', conforme segue abaixo:
# zdump -v /usr/share/zoneinfo/hv2011

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

/usr/share/zoneinfo/hv2011  Sun Oct 16 02:59:59 2011 UTC = Sat Oct 15 23:59:59 2011 BRT isdst=0 gmtoff=-10800
/usr/share/zoneinfo/hv2011  Sun Oct 16 03:00:00 2011 UTC = Sun Oct 16 01:00:00 2011 BRST isdst=1 gmtoff=-7200
/usr/share/zoneinfo/hv2011  Sun Feb 26 01:59:59 2012 UTC = Sat Feb 25 23:59:59 2012 BRST isdst=1 gmtoff=-7200
/usr/share/zoneinfo/hv2011  Sun Feb 26 02:00:00 2012 UTC = Sat Feb 25 23:00:00 2012 BRT isdst=0 gmtoff=-10800

Note que em "Sat Oct 15 23:59:59 2011" 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 16 01:00:00 2011 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 25 23:59:59 2012 BRST", o Horário de Verão terminará no segundo seguinte, com o localtime sendo então atrasado em 1 hora: "Sat Feb 25 23:00:00 2012 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, deve-se copiar o arquivo 'hv2011' para /etc/localtime
# cp /usr/share/zoneinfo/hv2011 /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.

Sistemas Windows:
1. Faça o download do TZEdit.

2. Ao executar o arquivo baixado ele vai descompactar os arquivos em:
C:\Program Files\TZEdit

3. Entre na pasta e execute o TZEDIT.EXE

4. Configure-o conforme imagem abaixo:

Referências:

terça-feira, 4 de outubro de 2011

Duplicando Discos Virtuais no VirtualBox

Introdução:
Muitas vezes criamos máquinas virtuais e depois desejamos criar uma nova máquina idêntica a primeira, como se fossemos clonar a máquina virtual, a primeira idéia que nos vem a cabeça é copiar o arquivo do disco virtual, criar uma nova máquina e apontar para o disco recém copiado.

O problema:
Os discos possuem uma identificação única e ao realizarmos o procedimento acima, vamos receber uma mensagem dizendo que o disco já está em uso.
Observe que eu renomeie a cópia de CentOS 6.0 para CentOS 6.0 - Cópia, mas o VirtualBox diz que os dois discos tem o mesmo UUID.

Como resolver:
Pesquisando na net (vide referências) descobri que poderia usar um comando para gerar a cópia dos discos, o comando VBoxManage clonehd <disco original> <cópia do disco>, mas eu já tinha feito uma cópia do disco, e acho mais fácil fazer dessa maneira.
Pesquisando mais um pouco descobri que eu poderia pegar a cópia do disco e gerar um novo UUID para o mesmo usando o comando VBoxManage internalcommands sethduuid <copia do disco>.

Usando a cópia do disco:
Agora já podemos usar a cópia que fizemos do disco em uma nova máquina virtual, na mesma máquina física.

Simples não?
 
Referências:
Blog do Athanazio
Blog Networks & Security

domingo, 11 de setembro de 2011

Gerenciamento de Redes - O Protocolo SNMP

O SNMP (Simple Network Management Protocol) é um protocolo da camada de aplicação que tem como objetivo principal coletar informações de dispositivos gerenciáveis. É o responsável por veícular informações de gerência (valores das MIBs).
Suas interações são sem conexão, trabalha com Mensagens no protocolo UDP/IP, utiliza as portas 161 e 162 e seus pacotes tem tamanho variável.

Este protocolo se tornou padrão para gerência na Internet, por ser simples de implementar e amplamente difundido.

É composto de um Protocolo para troca de mensagens e padrões para estruturar a informação.



As Informações de Gerenciamento são armazenadas em MIBs que são definidas através da SMI (Structure of Management Information) e transportadas através do protocolo SNMP.

SMI
Podemos entender a SMI como uma descrição lógica das informações. É composta dos seguintes elementos:
Nomes dos objetos gerenciados, referenciados através dos OIDs (Object IDentifiers);
Sintaxe dos dados, seguindo os padrões da ASN.1 (Abstract Syntax Notation 1);
Sintaxe de transferência, seguindo as regras da BER (Basic Encoding Rules).

ASN.1
É uma linguagem de descrição de dados da ISO, definida em formato texto não ambíguo, que permite definir modelo de dados com formato independente de máquina. A implementação de dados não é considerada.

Sintaxe básica em ANS.1
Tipos de dados:
Primitivos: INTEGER, OCTET STRING, OBJECT IDENTIFIER, NULL, Subtipos;
Construtores: Lista e Tabelas;
Definidos: Nomes alternativos para tipos ASN.1.

Notações em ASN.1, seguem algumas convenções:

Exemplos de Definição ASN.1:
sysContact OBJECT-TYPE
SYNTAX DisplayString (SIZE (0...255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
    “Texto xxxxxxxxxxxxxxxxxxxxxxxx”

parDhcpStartTime OBJECT-TYPE
SYNTAX  DisplayString (SIZE (1..30))
ACCESS  read-only
STATUS  mandatory
DESCRIPTION
    “Dhcp Server start time”


Campo SYNTAX:
Define o conteúdo do objeto.
INTEGER: Inteiros de 32 bits.
INTEGER (1...100) Sub-tipo inteiro).
OCTET STRING: String de bytes.
OBJECT IDENTIFIER: Localização de outro objeto na MIB.

Aceita alguns tipos específicos de aplicação:
IpAddress: OCTET STRING com 4 bytes.
Counter: Inteiro 32 bits.
Gauge: Inteiro 32 bits.
TimeTicks: Inteiro 32 bits (1/100 de segundo).

Campo ACCESS:
Define a acessibilidade do objeto.

read only: Somente leitura.
read-write: Leitura e escrita.

write-only: Somente escrita, senha do equipamento, por exemplo.
not-accessible: Não acessível, campo para operações internas, por exemplo.

Campo STATUS
Situação do objeto na MIB.
Mandatory: Devem ser implementados por todos os agentes, os valores contidos devem ser válidos.
Optional: Pode ou não ser implementado.
Deprecated: Foi substituido por novo objeto, mas ainda é válido, se tornará obsoleto mais tarde.
Obsolete: Não deve ser considerado.

Mensagem SNMP
Limitada a 484 bytes


As PDUs SNMP
Protocol Data Unit – Unidade de Dados de Protocolo 


Toda operação gera uma resposta, com excessão do Trap. Os dados das operações são transportados na porta 161 UDP/IP, enquanto os traps são transportados na porta 162 UDP/IP.


Estrutura das PDUs SNMP
Preâmbulo e Cabeçalho
Versão:
0: SNMPv1
1: SNMPv2c
2: SNMPv2u/SNMPv2p
3: SNMPv3

Tipo de PDU:
0: getRequest
1: getNextRequest
2: getResponse
3: setRequest
4: trap

Request ID:
Valor númerico usado para fazer referência a pedidos e respostas.

Códigos de erro (Error Status):
0: noError: Sucesso na operação.
1: tooBig: Resposta muito grande.
2: noSuchName: OID não suportado pelo agente.
3: badvalue: Valor incorreto para operação set.
4: readOnly: Tentativa de escrita inválida.
5: genErr: Erro não relacionado ao protocolo.

Error index:
Indica qual variável listada na PDU causou o erro.

A Arquitetura SNMP
Operações/Mensagens SNMP
Get-Request: Recupera o valor de informações de gerenciamento.

Get-Next-Request: Recupera o valor de informações de gerenciamento existentes após um determinado identificador; pega o valor da próxima variável.


Get-Bulk-Request: Estende a funcionalidade da função Get-Next. Traz um bloco de informações (Tabela) de cada vez.

Set-Request: Modifica o valor de informações de gerenciamento.

TRAP: Informa um evento ocorrido no sistema gerenciado.
Inform-Request: Fornece uma informação de gerenciamento não solicitada, usado entre gerentes, porém diferentemente do Trap no caso do Inform-Request existe a confirmação do recebimento da mensagem.
Exemplo de Operação:
Limitações de SNMP
Falta de segurança:
Esquema de autenticação trivial.
Limitações no uso do método SET.

Ineficiência:
Esquema de eventos limitado e fixo.
Operação baseada em pooling.
Comandos transportam poucos dados.

Falta de funções específicas:
MIB com estrutura fixa.
Falta de comandos de controle.
Falta de comunicação entre gerenciadores.

Não confiável:
Baseado em UDP/IP.
Traps sem reconhecimento.

Vulnerabilidade SNMP - Proteção:
Aplicar patchs fornecidos pelo fabricante;
Utilizar aplicações SNMP somente onde seja necessário;
Filtrar o acesso aos dispositivos gerenciados, permitindo somente o tráfego a partir de seus próprios servidores de gerenciamento;
Alterar o nome padrão das comunidades;
Isolar o tráfrego de gerência em uma rede específica, uma VLAN por exemplo, etc...

Versões SNMP:
  • SNMP v1
  • SNMP v2
  • SNMP v3

SNMP V1
Características e Operações Básicas:
Get: Usado pelo NMS (Network Management System – Sistema de Gerenciamento de Redes) para adquirir o valor de uma ou mais instâncias de um objeto de um agente;
GetNext: Usado pelo NMS para adquirir o valor do próximo objeto em uma tabela ou lista;
Set: Usado pelo NMS para atribuir um valor a um objeto no agente.

SNMP V2
Durante a “divergência” SNMPv2, foram definidos quatro variações:
O SNMPv2 original: SNMPv2p; Com o "p" referindo-se a "party-based“ security;
SNMPv2 baseado na comunidade: SNMPv2c;
SNMPv2 baseada no usuário: SNMPv2u;
“SNMPv2 Estrela”: SNMPv2*; Combina elementos de SNMPv2p e SNMPv2u. Isso nunca foi formalmente padronizado. Sim, isso é um asterisco no nome.

Destes, os três primeiros foram documentados em conjuntos de padrões SNMP RFC Standard, o quarto não foi.
A estrutura do formato de mensagem global para cada variante é discutido em um padrão administrativo ou de segurança para a variação em questão, que faz referência à norma SNMPv2 compartilhada para o formato de PDU (RFC 1905).

SNMP V2 (v2c)
Características e Operações adicionais:
Trap: Mensagem não solicitada, enviada por um agente para informar ao NMS sobre um evento significante;
GetBulk: Usado pelo NMS para adquirir eficientemente grandes blocos de dados;
Inform: Permite que um NMS envie traps para outro NMS e receba respostas desses traps.

SNMP V3
Melhorias de Segurança:
USM: User-based Security Model (Modelo de Segurança Baseada em Usuários);
VACM: View-based Access Control Model (Modelo de controle de acesso baseado em visões);
Configuração dinâmica de agentes SNMP utilizando comandos SNMP.

Modelo de Segurança SNMP
Modelo mais comum: SNMP V2c.
Baseado no conceito de “comunidade”.
Cada dispositivo implementa uma ou mais comunidades.
Comunidade default: “public” para leitura e “private” para gravação.


Uma comunidade define:
Método para autenticar o acesso (senha), a visibilidade da MIB e o privilégios de acesso à MIB.

Serviço de autenticação:
Todas as mensagens SNMP são autenticadas, o nome da comunidade serve como senha, porém esse é um sistema de segurança frágil e limitado; Não permite a operação SET em alguns casos.

Alguns dispositivos controlam o acesso usando o nome da comunidade e o número IP do(s) gerente(s) o que eleva um pouco a segurança, mas não resolve o problema.

Traps em SNMP
São mensagens enviadas pelo agente ao gerente, não são respostas a pedidos, ou seja são mensagens não solicitadas, representam eventos anormais.

Classificam-se em:
Genéricos: presentes na MIB padrão.
Específicos: definidos na MIB “enterprises”.

Traps genéricos
ColdStart:
Dispositivo foi ligado;
Configuração local pode ter sido alterada;
Informa ao gerente sobre sua existência.

WarmStart:
Dispositivo foi reinicializado;
Configuração local não foi alterada.

LinkDown:
Link ou porta de comunicação ligado ao nó falhou.

LinkUp:
Link ou porta local foi (re)ativada.

AuthenticationFailure:
O dispositivo recebeu mensagem SNMP não autorizada;
Comunidade não reconhecida;
Número IP de gerente inválido.

EgpNeighborLoss:
Exterior Gateway Protocol falhou no nó;
Normalmente usado em roteadores.

Referências:
Pessoal o material usado como base para a criação destes textos, veio de amigos, listas de distribuição e pesquisas na internet, portanto não possuo referências sobre os mesmos, mas se você identificar algum material de sua autoria, por favor entre em contato que os devidos créditos serão atribuídos.

quinta-feira, 18 de agosto de 2011

Instalando o Homebrew Channel no System Menu 4.3 sem precisar de jogos originais

Introdução:
Pessoal saiu um novo método de destravamento para Wii 4.3, que não necessita de jogos originais, e é extremamente simples de executar.
Ele se chama Letterbomb!

Links:
Letterbomb: Instalando o Homebrew Channel no System Menu 4.3 sem precisar de jogos originais.
LetterBomb – Dê nova vida à sua Wii com firmware 4.3

Abraços,
Déo

terça-feira, 9 de agosto de 2011

Formação Zabbix na ICANS

Fonte: ICANS # public DevBlog



Estamos usando o software Zabbix para monitorar a disponibilidade e funcionalidade da nossa infra-estrutura de TI e, especificamente, o bom funcionamento do site PokerStrategy.com
Na semana passada, organizamos uma sessão de treinamento em Zabbix com Rihards Olups da Zabbix SIA - a empresa que desenvolve o software e fornece suporte e treinamento. Nós fornecemos a sala de conferências com novos laptops Lenovo T420 e o habitual catering[1] de guloseimas deliciosas da Marie. Ambos, participantes externos e colegas ICANS participaram do workshop, que consistiu de sessões de “Zabbix Certified Specialist” e “Zabbix for Large Environments”. Foi uma semana difícil com muita informação, magia hands-on e exercícios complicados. Mas estávamos todos felizes de estar lá e temos aprendido muito. Mesmo depois de dois anos usando o Zabbix ainda há maneiras de melhorar a nossa configuração.

Eu aproveitei a oportunidade para uma pequena entrevista com Rihards.

Rihards, por favor, apresente-se e ao Zabbix em algumas frases.
Zabbix é uma solução de monitoramento muito flexível e totalmente opensource. Ou melhor, uma ferramenta que traz paz de espírito. Zabbix SIA é uma empresa que está trabalhando no Zabbix, adicionando recursos e melhorando-o de muitas maneiras. SIA não faz parte do nome - é mais ou menos o mesmo que GmbH[2]  na Alemanha. Eu, pessoalmente, juntei-me há dois anos porque eu gosto da abordagem opensource - e eu gosto de trabalhar em coisas que eu gosto. Embora o meu uso do Zabbix remeta a 2001, ano em que foi lançado, eu tenho mais experiência do lado de usuário do que internamente.

Como o Zabbix é diferente de outros softwares de monitoramento?
Comparado com as soluções comerciais, Zabbix não é terrivelmente caro (incluindo o não pagamento para cada dispositivo monitorado). Também é muito mais flexível, em grande parte devido ao acesso fácil e irrestrito a todo o código fonte. Que resulta em uma solução flexível, que muitos ambientes corporativos necessitam desesperadamente. Com todas as fontes disponíveis, não existe o risco de ficar preso a um fornecedor, e não estar preso a um fornecedor oferece uma grande versatilidade e capacidade de monitorar vários ambientes diferentes.

Em geral, Zabbix oferece um pacote completo bastante singular de solução opensource - não há versões “professional” ou “enterprise” ou módulos proprietários que você tem que comprar para realmente usá-lo eficientemente. Há um monte vantagens técnicas, incluindo agentes nativos, módulo de escalonamento flexível, coletor de dados remoto (Zabbix proxy) ... mas para descobrir essas coisas seria melhor uma entrevista mais longa.

Quais são as principais vantagens e desvantagens do Zabbix na sua opinião?
Para mim, pessoalmente ao procurar uma solução de monitoramento as principais vantagens são:
  • Pacote de frontend e visualização
  • Solução verdadeiramente opensource
  • Grande conjunto de recursos que não tem que ser colocados juntos a partir de milhões de peças.[3]
Eu poderia ser um pouco tendencioso quando se fala de grandes desvantagens, embora atualmente eu provavelmente aponte dois pontos:
  • Configuração inicial pode ser não-trivial, e aprender os conceitos pode levar algum tempo (embora como um membro da comunidade Zabbix disse, "é uma curva de aprendizagem, mas a vista de cima é excelente")
  • Interface de usuário em algumas partes poderiam se beneficiar de melhorias.
Como é que o Zabbix é menos conhecido por administradores de rede do que softwares como o Nagios ou Cacti? Administradores que experimentaram o Zabbix parecem que quase nunca voltam para qualquer outra coisa.
Zabbix nunca foi realmente muito anunciado - foi discretamente desenvolvido e melhorado tecnicamente. Mas, na verdade, ultimamente usuários que escolheram o Zabbix ficaram com ele. Eles também estão sugerindo para os outros, o que o torna mais popular. Um exemplo é o LinuxJournal, onde Zabbix é realmente líder atualmente.
Outra área em que o Zabbix tem crescido com pouca exposição é no segmento empresarial. Há um monte de instalações Zabbix acontecendo silenciosamente.

Você está publicando o Zabbix inteiramente sob uma licença opensource e está vendendo suporte e treinamento. Zabbix é uma outra história de sucesso provando que é possível ganhar dinheiro com software opensource?
Quando Alexei publicou o Zabbix pela primeira vez em 7 de abril em 2001, foi uma verdadeira solução opensource, mas sem quaisquer serviços comerciais disponíveis. Agora há uma empresa saudável e em crescimento, de modo que, provavelmente, se qualifica como uma história de sucesso:)

Você é o autor do livro Zabbix da Packt Publishing. Por que você decidiu escrever um livro sobre Zabbix?
Para ser justo, foi um pouco meio que acidentalmente. Eu tinha uma oferta da Packt, que disse algo ao longo das linhas como "você gostaria de fazer parte do nosso coletivo". Que soou como se haveriam muitos autores e eu só iria escrever um capítulo ou dois, o que parecia sensato - por isso eu aceitei. Depois, eu recebi um pedido para fornecer conteúdo e cronograma para todos os capítulos. Que foi um pouco chocante, mas naquele momento parecia indelicado recusar...

No que mais você está gastando seu tempo, exceto Zabbix?
Ultimamente o Zabbix toma grande parte do meu tempo, às vezes todo ele. Ainda assim, tento dedicar alguns momentos ao OpenStreetMap, um mapa livre e aberto que todos podem editar. É um projeto muito viciante e útil ao mesmo tempo, o que também me deixa mais tempo ao ar livre para coletar dados. Se alguém vê alguma coisa errada ou faltando em www.osm.org, eu gostaria de convidá-los para melhorá-lo:)

Você gosta de sua estadia em Hamburgo?
Certamente. É uma cidade agradável, com uma longa história. Meu hotel também está situado próximo ao Reeperbahn[4]. Ambos Hamburgo e Riga estavam na Liga Hanseática[5], por isso há também um pouco de história comum.

Gostaria de convidar todos os usuários Zabbix a se juntarem a nós na Zabbix Conference e 10 anos de celebração (lembre-se, foi inicialmente lançado em 2001?) Em Riga, Letônia. Isso é muito próximo à Alemanha, e além dos temas centrados em Zabbix há uma chance de visitar Riga e a região vizinha. É claro, aqueles que não estão usando o Zabbix ainda são bem-vindos para descobrir por que ele tem ganhado popularidade e descobrir como o Zabbix poderá ajudá-los a gerenciar seus ambientes. Mais detalhes estão disponíveis nas páginas da Conferência Zabbix.

Obrigado pela entrevista e uma grande, divertida e interessante semana.
 
Christoph Haas
Team Lead System & Network Services
(Inventor do QR code rickrolling)

Notas do Tradutor:
[1] Buffet
[2] Na Alemanha, existem dois tipos de empresas: de capital aberto e fechado.
A sigla "GmbH", o que está escrito após o nome da empresa, designa uma empresa privada como na Alemanha. As letras correspondem às Gesellschaft mit beschränkter Haftung que, traduzido literalmente, significa uma "sociedade de responsabilidade limitada". Empresas GmbH são incorporadas e, como tal, são pessoas jurídicas em si mesmas. Estas empresas devem ter um mínimo de dois sócios e podem ser, mas não tem que ser, de propriedade de uma empresa pública.
Fonte: Investopedia
[3] Não sei por que, mas lembrei do Nagios ;)
[4] A avenida mais famosa de Hamburgo é o centro da vida noturna do bairro boêmio de Sankt Pauli, conhecido no mundo todo pelas vitrines com prostitutas e baladas para todos os estilos musicais.
[5] Liga Hanseática
Tradução Livre

terça-feira, 7 de junho de 2011

Representante do ZABBIX-JP está indo para a Letónia

Fonte: Japonês
Fonte: Inglês



"Atividades comunitárias mudaram tudo" - O único engenheiro japonês trabalhando em uma empresa na Letônia
27/04/2011

Letônia é um país de frente para o Mar Báltico. O país é um sexto do Japão, a língua oficial é o Letão, e há muitas pessoas que falam russo. A capital é Riga que é uma bela cidade portuária, chamada de "Pérola do Báltico". Zabbix SIA que desenvolve o Zabbix, um software de monitoramento de redes open source, fica ali.

"Nunca imaginei que eu poderia trabalhar no exterior, ainda mais na Letónia".
República da Letônia, Riga
disse Kodai Terashima, que é representante do ZABBIX-JP (comunidade Zabbix no Japão) e o único engenheiro japonês trabalhando na Letónia. Ele havia trabalhado para a MIRACLE LINUX CORPORATION, mas fecharam a empresa em abril de 2011. Logo depois, ele foi para a Letônia para trabalha na Zabbix SIA.

Indo para a Letônia - Foi decisão muito importante para sua carreira. Por que ele foi trabalhar num país estrangeiro, onde só existem 20 japoneses? Sua resposta é muito simples. "São atividades comunitárias do Zabbix".

O encontro com o Zabbix mudou tudo
Ele encontrou o Zabbix pela primeira vez em 2005. Naquela época, ele trabalhava para uma empresa Integradora de Sistemas como engenheiro de infra-estrutura, que são os responsáveis por gerenciar e construir redes de computadores e servidores para sistema de TI.
Sr. Kodai Terashima, Zabbix SIA
"Nossos sistemas estão inoperantes muitas vezes, por isso gostaríamos que você construísse um sistema de monitoramento, mas não temos orçamento suficiente." Um projeto desses pode mudar sua carreira.

"Meu trabalho era" buscar um bom software de monitoramento livre ". Busquei e comparei alguns softwares de monitoramento open source. Então, bati o olho no Zabbix."

Naquela época, Nagios era o software de monitoramento open source mais famoso. Havia muitas instalações do Nagios em empresas japonesas, e documentos traduzidos em japonês. Por outro lado, Zabbix era um software totalmente desconhecido. Como dito por ele, não havia nenhum documento em japonês relacionado ao Zabbix no resultado da pesquisa do Google em 2005.

No entanto, as características do Zabbix eram as mesmas do Nagios. Como resultado da comparação entre alguns dos softwares de código aberto, o Zabbix foi adotado no projeto. "O projeto foi uma instalação muito precoce do Zabbix no Japão". Disse Kodai.

Apenas uma comunidade
Em agosto de 2005, após alguns meses da conclusão do projeto. Sr. Terashima lançou o site ZABBIX-JP, como uma comunidade de Zabbix no Japão.
Forum on ZABBIX-JP
"Eu enviei um patch que era a tradução em japonês da interface web do Zabbix, ao mesmo tempo. Isso foi o inicio da troca de alguns e-mails".

As principais atividades da ZABBIX-JP são a tradução da interface web e documentos, compartilhamento de informações no fórum, criar e enviar patches. Hoje a ZABBIX-JP tem centenas de usuários na lista de discussão e 8 pessoas na sua equipe, mas a comunidade em 2005 era apenas ele.

Havia muitas tarefas, porque era apenas ele. As traduções foram tarefas especialmente problemáticas. Ele nunca tinha usado Inglês em sua vida e trabalho antes de lançar a ZABBIX-JP. Ele só tinha lido alguns documentos técnicos em Inglês. Ele continuou a reunir e traduzir informação sobre o Zabbix após o seu trabalho durante vários anos.

Lançando e gerenciando o site do software sozinho - Não é só fazer algumas tarefas, mas também manter a motivação própria parece difícil. No entanto, o Sr. Terashima disse: "Eu me tornei um engenheiro de infra-estrutura, porque eu estava interessado em Linux, então eu tive o sonho de lançar uma comunidade open source". Além disso, se o fórum é aberto, eu tenho que responder os posts". Ele sorriu abertamente.

Zabbix no trabalho, não só na comunidade
Sr. Terashima pensava "Eu gostaria de entrar no mundo open source", então ele mudou de emprego para a MIRACLE LINUX CORPORATION. No início, ele trabalhou com assuntos relacionados a Linux e, em seguida ele lançou negócios com Zabbix na empresa por causa de um pedido de "um bom software de monitoramento" pelo seu cliente em 2008.

Ele tem planejado e feito consultorias, suporte, integração de software de terceiros com Zabbix, e tem crescido no negócio. O negócio cresceu, existiam 4 engenheiros em tempo integral na equipe Zabbix. Como resultado, a equipe atingiu de 20-30 projetos de Zabbix em cerca de 3 anos.

Zabbix começou a se espalhar no Japão, com a expansão do negócio. Não havia muitos posts no forum do ZABBIX-JP no início, mas as mensagens começaram a aumentar depois de um tempo. Informações relacionadas ao Zabbix surgiram em algumas mídias em 2008, as mensagens no fórum aumentaram para 10 posts por dia.

"Eu devo ter um vasto conhecimento como engenheiro"
Sr. Terashima fez do Zabbix não só sua comunidade, mas também o seu trabalho. Ele agradece a empresa por ter aceitado o seu trabalho na comunidade e dar-lhe a oportunidade de iniciar o negócio Zabbix, mas ele começou a pensar sobre sua mudança de emprego.

"Eu queria saber mais coisas. Eu estava usando o Zabbix por 6 anos, e eu tinha trabalhado para MIRACLE LINUX  por 5 anos. Se alguém trabalha para uma empresa, seus conhecimentos e estilo de trabalho tendem a correção. Quero saber de outras tecnologias e empresas, e obter mais conhecimento".

Engenheiros de infra-estrutura tem que ter amplo conhecimento que incluem servidores, rede, aplicações, etc. Ele disse: "Eu sou um engenheiro de infra-estrutura " outra vez e outra vez. Suas palavras: "Engenheiros devem querer saber sobre vários assuntos, e não ficar em uma tecnologia". Revela o seu objetivo como um engenheiro de infra-estrutura.

Por que você não vem trabalhar na Letónia?
Novembro de 2010. A virada veio de repente, do outro lado do mar.

“Se você vai mudar de trabalho, por que você não vem trabalhar na Letónia?”
Sr. Terashima e Sr. Alexei Vladishev, em Tokio.
Ele disse ao Sr. Alexei Vladishev que é o presidente da Zabbix SIA e seu amigo desde 2005 sobre a mudança de emprego e ele lhe fez a oferta "Primeiro de tudo, por que você não trabalha para Zabbix SIA como engenheiro por um ano". A oferta lhe surpreendeu, mas ele aceitou prontamente.

"Para um homem que veio da comunidade, é muito gratificante poder ler e tocar o código fonte dentro da empresa. E eu estou ansioso para ver os engenheiros na Zabbix SIA com quem eu me comunicava apenas por e-mails". Disse ele com um sorriso.

Zabbix não é como os Softwares Open Source em geral, é desenvolvido por uma empresa. Assim, todos os committers trabalham para Zabbix SIA. Na Letónia, uma nova terra e ambiente onde pode se juntar à equipe de desenvolvimento do software é adequado para quem quer fazer "uma coisa nova e desafiadora".

Ele perguntou sobre a empresa, e depois "Por favor, venha se tornar grande na Letónia" me incentivou. Seis meses depois, ele iria colocar os pés na Letónia.

Relacionamento com as pessoas são criados pela atividade da comunidade
O papel de Sr. Terashima na Letónia é ser uma "ponte entre o Japão e Letónia ", dando suporte para usuários do Zabbix, empresas parceiras e realizando o marketing do Zabbix no Japão. Ele disse: "Eu quero participar do desenvolvimento do Zabbix no futuro".

Por outro lado, ele ainda se preocupa com a linguagem na comunicação. Afinal, ele só usou Inglês no trabalho com a comunidade ZABBIX-JP, não profissionalmente. Além disso, os engenheiros da Zabbix SIA falam inglês na Zabbix SIA, mas a língua oficial na Letônia é o Letão. A distância entre Japão e Letônia ele revela em suas palavras "Há apenas um livro em língua letã no Japão". "Mas", acrescentou.

"Se eu estivesse sozinho, eu não teria coragem suficiente para ir para a Letônia. Mas eu tenho um relacionamento que foi cultivado através do ZABBIX-JP. Penso que como engenheiro na Zabbix SIA, Alexei e muitas pessoas irão me ajudar, então eu pude decidir ir para lá.

E o relacionamento com as pessoas no Japão também me dá confiança.

"Eu juntei as reuniões da Conferência Open Source e estudos de engenheiros de infra-estrutura a partir de 2010. Fico feliz que eu pude obter uma chance de ter um relacionamento com muitas pessoas e eu sou chamado de "Terashima-san, especialista em Zabbix" nessas comunidades".

Tradução de Software Open Source em japonês irá estender a sua atividade
"Por que não tentar fazer uma atividade comunitária?" enfatizou.

Atividades comunitárias, constituem em boas chances de ter um relacionamento, especialmente para engenheiros que querem trabalhar no exterior. Ele recomenda especialmente Softwares Open Source  que não tenham sido traduzidas para o japonês ainda. Há muitas coisas para fazer como traduções e criar patches, então engenheiros estrangeiros saberão seu nome enquanto falam sobre essas tarefas na lista de discussão.

Ele também mencionou a comunicação em Inglês, que a maioria dos engenheiros devem se preocupar "Mesmo se você não tiver usado Inglês antes, você pode traduzir ou escrever um e-mail em Inglês, porque a maioria dos japoneses sabem ler e escrever em Inglês também. Você não tem que falar em Inglês. Você pode escrever um e-mail em Inglês, é um bom ponto de partida." ele incentiva.

"Eu acho que é a cabeça que mantem sua motivação se você faz o trabalho de tradução sozinho. Você vai ter uma confiança muito grande quando você puder se comunicar com engenheiros estrangeiros em Inglês por e-mail, se você não é bom em Inglês.”

A atividade que começou sozinha vai para o mar.
Perguntamos a ele o que ele gostaria de experimentar na Letónia, e como ele gostaria de crescer como um engenheiro. Ele respondeu: "Eu quero me tornar um engenheiro que conhece tudo sobre tecnologia da informação de maneira ampla e superficial, então, saber sobre um ponto específico profundamente".

A maioria dos "grandes engenheiros" que conheceu nas reuniões da Conferência Open Source ou de estudo para os engenheiros de infra-estrutura são do tipo acima, ele pensa.

"Bem, é difícil, se não for assim. Se você tem conhecimentos técnicos específicos e profundos, todo mundo vai se lembrar de você como um especialista em alguma coisa na reunião da comunidade ou de estudo. É importante"

Zabbix é um software de monitoramento integrado, que pode monitorar muitos tipos de dispositivos, por isso é necessário possuir um conhecimento amplo de aplicação e infra-estrutura. Exatamente, o Sr. Terashima é um engenheiro que "conhece toda a tecnologia de TI amplamente e conhece ainda mais sobre Zabbix".

As atividades da comunidade que começou sozinho se tornaram um negócio, criando relacionamentos e indo para o mar. Agora, estou feliz, eu tenho mais prazer de ver o mapa do mundo.
Mar Báltico

Como consegui essa entrevista?
No dia 27/04/2011 recebi no Twiiter "Zabbix SIA
Interview of Kodai Terashima about his work on Zabbix (in Japanese only)"

segunda-feira, 30 de maio de 2011

Monitorando Hosts Windows com Zabbix e PerfCounter (Contadores de Performance do Windows)

Introdução:
O Zabbix é uma ferramenta eficiente de monitoramento e gerência de rede, que permite integração com alguns elementos, nesse tutorial vamos abordar o monitoramento de hosts Windows utilizando o Zabbix e os Contadores de Performanace do Windows (PerfCounter).

Pré-Requisitos:
O único pré-requisito necessário é a instalação do Agente Zabbix no host Windows.

Determinando o que será monitorado:
Nos hosts Windows temos um aplicativo chamado Monitor de Desempenho, ele pode ser acessado através do Menu Iniciar // Executar // perfmon

Neste software podemos facilmente visualizar os Objetos disponíveis e os contadores que cada objeto possui, bem como testar a leitura das informações, visto que determinados contadores só funcionam, por exemplo, se o serviço ao qual ele está relacionado estiver em execução.
Uma maneira prática de obter uma lista destes objetos e seus contadores é através do comando typeperf -qx. Para isso clique no Menu Iniciar // Executar // cmd

 
Na janela de prompt de comando que surgiu digite:
typeperf -qx -o c:\objetos.txt


Este comando vai trazer a lista de todos os contadores instalados, redirecionar a saída através da opção -o, para o arquivo c:\objetos.txt, para outras opções consulte a ajuda, através do comando "typeperf /?".

Agora basta olhar no arquivo gerado as opções disponíveis, escolher o que será monitorado e testar através do Monitor de Desempenho.

Testando a Leitura do Parâmetro via Servidor Zabbix:
A leitura do parametro é feita através do comando zabbix_get -s IP -k perf_counter["\Contador\Objeto"], exatamentamente da mesma maneira que aparece no arquivo gerado (Com espaço, acentos, maiúsculas e minúsculas, símbolos, etc), por exemplo:
zabbix_get -s IP -k perf_counter["\Serviços de Terminal\Sessões Ativas"]
1.000000
zabbix_get -s IP -k perf_counter["\Interface de rede(AMD PCNET Family PCI Ethernet Adapter - Miniporta do agendador de pacotes
)\Bytes recebidos/s"]
882.030062
zabbix_get -s 143.106.113.8 -k perf_counter["\Interface de rede(AMD PCNET Family PCI Ethernet Adapter - Miniporta do agendador de pacotes)\Bytes enviados/s"]
357.157417


Com o resultado destes comandos já dá para determinar o tipo de dados recebido (Integer, Float, Text)

Criação do Item no Zabbix:
O item, é um item normal, do tipo "Zabbix Agente", o detalhe está na chave que deve ser a mesma entrada recebida pelo comando perf_counter.
Type: Zabbix Agent
Key: perf_counter["\Interface de rede(AMD PCNET Family PCI Ethernet Adapter - Miniporta do agendador de pacotes)\Bytes recebidos/s"]

Monitorando Hosts Windows com Idiomas Diferentes:
O problema destes contadores e seus objetos é que eles são traduzidos para o idioma do host, neste caso mesmo que eu tenha dois Hosts com o mesmo Sistema Operacional Windows, da mesma Versão, mas em idiomas diferentes, esses contadores e objetos terão nomes diferentes como por exemplo, "\Interface de rede\Bytes recebidos/s" no Host A e "\Network Interface\Bytes Received/Sec" no Host B. Dá para imaginar que isso vai ser um grande problema, por exemplo, se eu administrar um data center com máquinas em diversos idiomas.
Mas este problema está documentado no Manual do Zabbix, esse contadores possuem além da identificação textual, uma identificação númérica que é universal, que pode ser vizualizada através do Editor de Registros do Windows.

Acesse Menu Iniciar // Executar // regedit

Dentro do Editor de Registros, navegue pela estrutura "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\", dentro desse diretório teremos dois diretórios:
009 - Relação dos contadores e seus identificadores númericos no Idioma Inglês
016 - Relação dos contadores e seus identificadores númericos no Idioma Português do Brasil

Nesta relação, abrindo o objeto "Counter" encontraremos as seguintes definições:
2176
Serviços de terminal

2180
Sessões ativas

Ou seja se realizarmos a leitura:
zabbix_get -s IP -k perf_counter["\Serviços de Terminal\Sessões Ativas"]
ou
zabbix_get -s IP -k perf_counter["\2176\2180"]

Receberemos a mesma informação, com a vantagem de que no segundo exemplo, podemos usar um único item para monitorar vários hosts de idiomas diferentes.

sexta-feira, 25 de fevereiro de 2011

Como dominar qualquer assunto?

As pessoas sempre me perguntam "Déo como você sabe tanto sobre xyz", hoje vou revelar esse segredo a vocês.

Você vai precisar de:
  • Google;
  • Um idiota que conheça sobre o assunto que você está interessado, quanto mais esse idiota conhecer sobre o assunto melhor, se ele souber falar/ler em outro idioma melhor ainda, pois a qualidade das informações serão diferenciadas;
  • Uma lista de discussão cheia de idiotas que conheçam sobre o assunto que você está interessado e/ou um blog de um idiota sobre o assunto que você se interessa;
  • Muita cara de pau.

O que você não vai precisar:
  • Artigos sobre o assunto;
  • Livros sobre o assunto;
  • Fazer cursos;
  • Tentar fazer antes de perguntar;
  • Detalhar as suas dúvidas, simplesmente diga que deu problema, ou pergunte como faço xyz?
  • Perder tempo lendo as mensagens anteriores, nem os comentários, aliás não perca tempo isso é para os idiotas!
Agora vamos a parte prática, essa é a mais importante:
  1. Use o google para achar os idiotas:
    Eles montam blogs, criam listas de discussão, compram livros, fazem cursos,  comentam suas experiencias, etc.
  2. Perguntas:
    Ignore tudo que já foi escrito por esse idiota, faça quantas perguntas você quiser, por mais ridículas que sejam, afinal de contas você não é obrigado a saber tudo, né? O idiota é que é.
  3. Não descreva os problemas:
    Diga coisas do tipo "deu erro", "Eu segui segui seu tutorial mas deu problema/ não funcionou". O idiota vai advinhar em que parte exata que deu problema, ou porque não funcionou, afinal quem conhece disso é ele né.
  4. Responda sempre ao idiota:
    Mas responda coisas como "não existe essa opção que você falou", "dá pra me mandar um tutorial", "tem uma imagem disso"? Pô uma imagem vale por mil palavras né.
Advertências:
Os idiotas costumam ser muito estressados e em pouco tempo se tornam mal educados, mesmo que nas primeiras (20, 30, 50) vezes ele tenha sido paciente e extremamente educado;
Ignore os comentários do tipo "Você leu as mensagens/comentários anteriores?", "Você seguiu meu tutorial a risca?", "O erro ocorreu em que momento?", "Isso já foi respondido", "Eu já te expliquei isso, você não anotou?"

Att,
André Déo - Um Idiota

sexta-feira, 28 de janeiro de 2011

Tela de Login em PHP autenticando no Active Directory (AD)

Introdução:
As vezes necessitamos disponibilizar determinada informação, como um Wiki por exemplo, para ser acessada de qualquer local que estivermos, mas não queremos que essa informação seja acessada por qualquer pessoa.
Muitas vezes temos informações que necessitam de privacidade e para isso utilizamos telas de login, mas se já existe na rede uma estrutura de LDAP, que é o AD, para que ficar criando banco de dados para autenticar usuários?

Pré-Requisitos:
Você precisa ter o módulo ldap do php instalado e habilitado no seu servidor.

Entendo a estrutura dos arquivos:
index.php - Página de Login
verif.php - Página de validação das informações digitadas, realiza a conexão com o AD, retorna ao index.php ou segue para a página do seu aplicativo.
funcs.js - Função responsável por não permitir usuário e/ou senha em branco
pagina_que_voce_quer_chamar.php: Essa página é o index da aplicação que você quer proteger, como a página inicial do Wiki por exemplo, será necessário acrescentar um pequeno trecho de código nela, pois se o usuário chamar a página diretamente sem se autenticar, vai ser automáticamente redirecionado para a página de login.

Código das Páginas:
Index.php
<?php


    session_start('sessao');

?>
<html>
<head>
<script language="JavaScript" type="text/javascript" src="funcs.js"></script>
</head>
<body>

    <form method="post" action="verif.php" name="form" AUTOCOMPLETE='ON' onSubmit="return valida()">
        usuario:<br>
        <input type="text" name="usu" size="50" maxlength="50" >
        <br>
        Senha:<br>
        <input type="password" name="senha" size="50" maxlength="9" >
        <br><br>
        <input type="submit" value="Entrar">
    </form>

</body>
</html>

Verif.php
<?php

set_time_limit(0);

function valida_ldap($srv, $usr, $pwd)
{

    $ldap_server = $srv;
    $auth_user = $usr;
    $auth_pass = $pwd;

    // Tenta se conectar com o servidor
    if (!($connect = @ldap_connect($ldap_server))){
       return FALSE;
    }

    // Tenta autenticar no servidor
    if (!($bind = @ldap_bind($connect, $auth_user, $auth_pass))) {
        // se nao validar retorna false
        return FALSE;
    } else {
        // se validar retorna true
        return TRUE;
    }

} // fim funcao conectar ldap

$dominio = "@seudominio.com.br";
$usu = $_REQUEST['usu'].$dominio;
$senha = $_REQUEST['senha'];
$ip_server = "XXX.XXX.XXX.XXX";

if (valida_ldap($ip_server, $usu, $senha)) {
    echo "usuario autenticado<br>";

    session_start();
    $_SESSION['usu'] = $usu;

    header("Location: pagina_que_voce_quer_chamar.php");

}else {
    echo "Usuario ou Senha Invalidos";
    echo "<br><input type='button' value='voltar' onclick='location.href=\"index.php\";'>";
}

?>

funcs.js
function valida() {

    if (form['usu'].value == "") {
        alert("O campo USUARIO e obrigatorio");
        form['usu'].focus();
        return false
    }

    if (form['senha'].value == "") {
        alert("O campo SENHA e obrigatorio");
        form['senha'].focus();
        return false
    }
}

Código da página
<?php

session_start();

        // se usuario nao registrado, redireciona p/ validacao

        if(!isset($_SESSION['usu']))

                header("Location: index.php?op=err");
Continuação do código da aplicação

Agradecimentos:
Ludgero Scocia - Meu Personal PHP Developer Tabajara, sempre que preciso de algo em PHP acabo apelando para o Lud, que sempre me socorre!!!
Valew Brother!!!!

Referências:
Autenticando no Active Directory com PHP via LDAP
Como autenticar no Active Directory usando PHP?