terça-feira, 23 de dezembro de 2008

Net join -U administrador retorna "Failed to set servicePrincipalNames"

Quando utilizar o comando net join -U administrador para logar em um domínio AD pelo linux e o seguinte erro for retornado:
"Failed to set servicePrincipalNames"

Coloque a seguinte linha no seu /etc/samba/smb.conf:
netbios name = <nome da máquina que possui o samba>

terça-feira, 25 de novembro de 2008

Como criar vlan e trunk no linux (debian)

Vlan é uma tecnologia que permite configurar seu dispositivo de rede para trabalhar em várias lans diferentes.
Trunk é uma tecnologia que permite trafegar várias vlans em uma única placa de rede, ou seja, seu dispositivo pode ter várias vlans diferentes, vários ips.


[Passos prévios]

- O sistema utilizado para a instalação foi debian-40r5-amd64-netinst baixado no site http://www.debian.org em 25/11/2008 no link debian-40r5-amd64-netinst.iso

- O protocolo de trunk utilizado é o dot1q, configure-o quando for habilitar o trunk nos equipamentos de rede (switch, roteador, ...).


[Configuração de vlan e trunk no debian]

- Nos debians acima da versão 3.0 a configuração de vlans e trunk pode ser feita diretamente no arquivo /etc/network/interfaces.
Veja o exemplo abaixo, onde temos 2 vlans: 10 (gerencia), 100 (RH). E queremos que o servidor Debian 4.0 netinst do DRH se comunique com o roteador CISCO Catalyst 6500 somente pela interface eth0.

.
.
.
###
# configurando vlan10, gerencia dos servidores
auto vlan10
iface vlan10 inet static
address 10.0.0.31
netmask 255.255.0.0
vlan_raw_device eth0 #inteface utilizada pela vlan

###
# configurando vlan100, RH
auto vlan100
iface vlan100 inet static
address 10.15.0.5
netmask 255.255.0.0
vlan_raw_device eth0 #inteface utilizada pela vlan
.
.
.

- Reinicie o servico /etc/init.d/networking:
/etc/init.d/networking restart

- Execute o ifconfig e veja que 2 novas interfaces foram criadas: vlan10 e vlan100:
ifconfig

Nota: Como as duas estão configuradas na eth0, automaticamente a eth0 foi configurada com trunk.


[Configuração de vlan e trunk em distribuições não debian ou debian antigo]

- Ainda não cheguei a fazer esse tipo de configuração, porém sei da existência do pacote vlan que nos possibilita as seguintes configurações (faça apt-get install vlan):
vconfig add eth0 10
vconfig add eth0 100
Nota: Adiciona as vlans 10 e 100 na interface eth0.

- Para realizar o trunk, crie interfaces virtuais para que a eth0 responda pelos ips válidos nas 2 vlans:
ifconfig eth0:10 10.0.0.31 netmask 255.255.0.0
ifconfig eth0:100 10.15.0.5 netmask 255.255.0.0

quinta-feira, 6 de novembro de 2008

Como instalar o protocolo SNMP em máquinas linux e windows para efetuar sua gerência

SNMP (Simple Network Management Protocol) é um protocolo que possibilita o gerenciamento de equipamentos de rede. Alguns equipamentos como roteadores, switchs, firewalls, otimizadores de tráfego, ... já vêem com o snmp implementado. Outros, como seu computador por exemplo, podem não vir com esse protocolo. Caso você queira monitorar um desses "outros", proceda os seguintes passos para a instalação do protocolo:

[Linux (Debian Etch)]
- Instale o protocolo snmp. O pacote é snmp. Utilize o comando de gerenciamento de pacotes de sua distribuição:
apt-get install snmpd

- Configure permissões do protocolo snmp utilizado pelo daemon snmpd editando o arquivo /etc/snmp/snmpd.conf. Adicionando a linha abaixo você está permitindo qualquer host da rede 10.0.0.0 a acessar o snmp com permissões de somente leitura e community comteste:
.
.
.
com2sec readonly 10.0.0.0/24 comteste
.
.
.

- Altere a linha SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' do arquivo /etc/default/snmpd (no debian) para SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 0.0.0.0'. Deste modo você estará permitindo o "snmpd" (e não o protocolo snmp) a aceitar conexões de todos os hosts.

- Reinicie o serviço snmp no host a ser monitorado para que esse entenda as requisições snmp:
/etc/init.d/snmpd restart

- O host linux já está pronto para ser monitorado.


[Windows (XP Professional)]

- Acesse: Configurações -> Painel de controle -> Adicionar ou remover programas -> Adicionar/Remover componentes do window

- Marque a opção: Ferramentas de gerenciamento e monitoramento

- Avance, instale e conclua.

- Configure permissões do protocolo snmp em Configurações -> Painel de controle -> Ferramentas administrativas -> Serviços -> Serviço SNMP -> Propriedades.

- Reinicie o serviço em Configurações -> Painel de controle -> Ferramentas administrativas -> Serviços -> Serviço SNMP.

- O host windows já está pronto para ser monitorado.


[Possíveis problemas e soluções]

- [Debian Etch] Quando executo o snmpwalk, tenho a seguinte mensagem:
Timeout: No Response from
Não confunda as permissões do snmp com as permissões do snmpd. Não basta somente adicionar permissões, endereços de redes e comunits em /etc/snmp/snmpd.conf pois essas permissões dizem respeito ao protocolo snmp. Você deve também alterar a linha SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' do arquivo /etc/default/snmpd para SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 0.0.0.0'. Deste modo você estará permitindo ao daemon snmpd aceitar conexões de todos os hosts.

terça-feira, 14 de outubro de 2008

Como testar tipos de variáveis em javascript

Hehe, essa eu sempre utilizei em Java, mas não sabia que o javascript também tinha copiado!
Se quiser saber o tipo de uma variável em javascript (em Java também!) utilize a palavra reservada "typeof".

[Exemplo]

var numero = 75;
var naonumero = "oi, tudo bem, como vai";

if(typeof numero == 'number')
{
alert(numero+" é um número :)");
}

if(typeof naonumero == 'number')
{
//não vai entrar aqui pois não é um número!!!
}
else
{
alert("'"+naonumero+"' não é um número :(");
}

quinta-feira, 9 de outubro de 2008

Instalando Pandora FMS 2.0 Beta 1 no Debian

Pandora FMS é uma ferramenta de gerência, não só de redes, mas de tudo que possa oferecer dados. O legal desta ferramenta é a possibilidade de gerar mapas da rede personalizados com alertas entre outras funcionalidades de uma maneira fácil.
Nesta postagem mostro um passo a passo da instalação dessa ferramenta no sistema Debian.

Do original Pandora FMS: User administration guide, cap. 2, pagina 17.
Baixado no site http://pandorafms.org/ no link Pandora_1.3_User_Guide.pdf em 09/10/2008.


[Passos prévios]

- O sistema utilizado para a instalação foi debian-40r4a-i386-netinst baixado no site http://www.debian.org/distrib/netinst em 09/10/2008 no link debian-40r4a-i386-netinst.iso
É necessário que seja i386 por causa das versões dos fontes que utilizaremos.

- Autentique-se como root no sistema para efetuar todos os passos desta explicação.

- Adicione as linhas abaixo no arquivo /etc/apt/source.list para manter o apt-get atualizado:
deb http://ftp.br.debian.org/debian lenny main contrib
deb http://ftp.br.debian.org/debian sid main contrib

Nota: Utilizei as versões lenny (versão de teste) e sid (instável) pois somente elas possuem alguns pacotes utilizados por essa versão do Pandora FMS.

- Após adicionada as linhas, atualize o apt-get com o comando abaixo:
apt-get update

- Instale um LAMP server no seu sistema, veja o passo a passo em http://andreob.blogspot.com/2008/09/instalando-lamp-no-debian.html


[Instalando dependências do Pandora FMS Server]

- Essa versão do debian não vem com os comandos básicos de compilação, gcc, make, devemos instala-los:
apt-get install build-essential

- Instale os pacotes com perl e snmp necessários para o funcionamento do Pandora FMS:
apt-get install libdate-manip-perl
apt-get install snmp
apt-get install snmpd
apt-get install libsnmp-perl
apt-get install libtime-format-perl
apt-get install libxml-simple-perl
apt-get install libnetaddr-ip-perl
apt-get install libdbi-perl
apt-get install libxml-simple-perl
apt-get install libnetaddr-ip-perl
apt-get install libhtml-parser-perl
apt-get install xprobe2


- Instale alguns módulos do perl, que não são instalados com o apt-get:
cpan Digest::MD5 Time::Local DBI threads threads::shared IO::Socket Time::HiRes Time::Format Net::Ping NetAddr::IP Mail::Sendmail Net::Traceroute::PurePerl HTML::Entities

Nota: cpan é como um apt-get para módulos do perl. Responda sim (yes) para todas as perguntas.


[Instalando o Pandora FMS Server]

- Vá para o diretório /usr/src
cd /usr/src

Nota: todos os arquivos fontes que baixar, deixe-os neste diretório pois você pode usa-los no futuro para um update ou mesmo para remover a instalação.

- baixe o pandora do site http://pandora.sourceforge.net/:
wget http://ufpr.dl.sourceforge.net/sourceforge/pandora/ PandoraFMS2.0_beta1.tar.gz

- descompacte o arquivo
tar -xzvf PandoraFMS2.0_beta1.tar.gz

- abra a pasta /usr/src/pandora_server:
cd /usr/src/pandora_server

- execute o script de instalação:
./pandora_server_installer --install

Nota: futuramente se quiser remover o Pandora FMS Server, troque o parametro --install por --uninstall.

- Inicie os principais serviços de monitoramento:
/etc/init.d/pandora_server start
/etc/init.d/pandora_network start
/etc/init.d/pandora_snmpconsole start

[Instalando dependências do Pandora FMS Console]

- Instale as seguintes dependências que não foram previstas em [Passos prévios]:
apt-get install php5-gd
apt-get install php5-snmp
apt-get install graphviz
apt-get install php-pear

- Instale alguns módulos do pear, que não são instalados com o apt-get:
pear install DB
pear install XML_RPC

- Reinicie o servidor web para efetivar as atualizações:
/etc/init.d/apache2 restart


[Instalando o Pandora FMS Console]

Pandora FMS Console é a interface web para você gerenciar o seu Pandora FMS Server.

- Copie a pasta /usr/src/pandora_console para o local dos sites do apache:
cp -rdp /usr/src/pandora_console/ /var/www

Nota: o parâmetro -rdp diz que a cópia será recursiva no diretório e manterá as permissões.

- Altere as pemissões na pasta /var/www/pandora_console/include para que o instalador possa modifica-los:
chmod 777 /var/www/pandora_console/include

- Acesse via web a página de instalação do Pandora FMS Console no seu host:
http://<seu_host>/pandora_console/install.php

- Avance todos os passos, a menos que queira especificar configurações diferentes.

- Por questões de sergurança, remova o arquivo /var/www/pandora_console/install.php
rm /var/www/pandora_console/install.php

- Crie o seguinte link:
ln /var/www/pandora_console/attachment/ /var/www/pandora_consoleattachment -s

Nota: não sei, mas o pandora_console que instalei não conseguiu achar /var/www/pandora_console/attachment/, tive que utilizar esse artifício.

- Pronto, já pode acessar o seu Pandora FMS e gerenciar sua rede:
http://<seu_host>/pandora_console


[Testando]

- Monitore um agent somente para testar. Abra a interface web e acesse:
Manage agents -> Create agent

- Preencha os dados do agent com ip localhost e Network Server igual a *_Net.

- Crie o agent e veja se este apareceu em View agents -> Network Map


[Possíveis problemas e soluções]

- Network Map não é gerado! Fica uma imagem quebrada!
Isso aconteceu na minha instalação, o pandora_console não conseguiu achar /var/www/pandora_console/attachment/.
Crie o seguinte link:
ln /var/www/pandora_console/attachment/ /var/www/pandora_consoleattachment -s

- Ao alterar a senha do banco de dados depois de tudo instalado, não acesso a interface web!
Lembre-se de altera-la também em /etc/pandora/pandora_server.conf e /var/www/pandora_console/include/config.php

- /etc/init.d/mysql: ERROR: Using expire_logs_days without log_bin crashes the server.
Estranho, mas após instalar o Pandora FMS isso ocorreu.
Edite o arquivo /etc/mysql/my.cnf e comente a linha que contém a variável expire_logs_days.

- Notice: Undefined variable: status_parent in /var/www/pandora_console/include/functions_visual_map.php on line 118
Neste passo a passo ensinamos a instalação do Pandora FMS 2.0 Beta1. Para quem não sabe, tudo que está na fase Beta está na fase de testes. E tudo que está em testes pode conter erros!
O programador esqueceu de iniciar a variável $status_parent no arquivo /var/www/pandora_console/include/functions_visual_map.php, inicie-a então. O seguinte trecho mostra como deve ficar o arquivo:

19 ...
20 function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines = true) {
21 global $config;
22 $layout = get_db_row ('tlayout', 'id', $id_layout);
23 $status_parent = -1;//Essa variável não estava definida. Alterado em 10/10/2008 por André O. B. aob@email.si
24 ...

- Could'nt find package wmi-client: possivelmente os seus repositorios nao tem referencia a esse pacote. Caso nao ache um repositorio que o tenha, baixe manualmente em http://www.pandorafms.org no link de downloads o pacote wmi.

quarta-feira, 8 de outubro de 2008

Como desabilitar ou habilitar a tela de log de desligamento inesperado do windows server (Shutdown Event Tracker ou Shutdown Unexpected Tracker)

As vezes, quando acontece um pique-de-luz e nossa máquina Windows Server volta, executa o Logon e fica parada numa tela de Shutdown Event Tracker. Quando queremos automatizar o processo de boot, isso acaba nos atrapalhando.
Para desabilitar essa tela, proceda os seguintes passos:

[Pelo gpedit.msc]

- abra: iniciar->executar e execute o comando gpedit.msc

- Ao executar o comando anterior, abrirá uma tela para gerenciamento de políticas, navega para:
local computer policy -> computer configuration -> administrative templates -> system -> Display Shutdown Event Tracker

- escoha Enabled ou disabled para habilitar ou desabilitar a tela.


[Pelo registro]

- Se quiser alterar diretamente pelo registro, altere a seguinte variável para 0 ou 1:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability]
"ShutdownReasonOn"=dword:00000000

segunda-feira, 6 de outubro de 2008

Como auto iniciar (iniciar automaticamente) um script no linux durante o boot

As vezes precisamos iniciar um script ou um programa automaticamente no boot do nosso sistema. Existem muitas maneiras de fazer isso, umas mais gambiarradas outras menos. A que mais utilizo e julgo ser correta para os diversos scripts e serviços que crio é adicionar os comandos, programas ou scripts no arquivo /etc/rc.local (semelhante ao autoexec.bat do windows).

[Exemplo1]

Quero que toda vez que meu linux der boot, exiba a mensagem "==== Mensagem do rc.local!!!===="

- edite o arquivo /etc/rc.local e coloque a seguinte linha
echo "==== Mensagem do rc.local!!!===="
- salve o arquivo
- da próxima vez que iniciar o sistema, verá a alteração


[Exemplo2]

Quero que a placa eth0 venha com o mac 00:01:02:03:04:05
- edite o arquivo /etc/rc.local e coloque as seguintes linhas
ifconfig eth0 down
ifconfig eth0 hw ether 00:01:02:03:04:05
ifconfig eth0 up


[Exemplo3]

Tive problemas com maquinas virtuais que sempre iniciavam com a hora errada, uma saída que encontrei foi utilizar o comando ntpdate para sincrozar a hora com algum servidor. Então, inseri a seguinte linha no /etc/rc.local
ntpdate -u pool.ntp.org

Nota: pool.ntp.org é um servidor para sincronização de relógio


[Considerações finais]

O arquivo /etc/rc.local é sempre o último a ser executado depois do boot. Se quiser inserir comandos com precedência, deverá utilizar as pastas /etc/rc*.d, mas não entrarei em detalhes por agora.

quarta-feira, 24 de setembro de 2008

Instalando iptables l7 (layer 7) no debian i386

As vezes é necessário fazer bloqueio nos firewalls que vão além de portas e ips. No caso do emule por exemplo, não podemos definir um ip de origem ou mesmo uma porta, pois esses são variáveis. Neste caso, temos que subir até a camada de aplicação, nos protocolos utilizados por esses programas que não são variáveis igual aos ips e portas, e fazer o bloqueio pelos padrões de comunicação utilizados pela aplicação.
Resumindo, o iptables l7 permite a filtragem de pacotes por protocolo da camada 7 (modelo OSI). É uma filtragem menos eficiente (como dito, o iptbles deve "subir" até a camada 7) porém eficaz (como dito, a aplicação não varia o protocolo ).

Abaixo mostro um passo a passo da instalação do iptables l7 no Debian. Do original http://www.eduardoramos.eti.br/ drupal/?q=node/12, porém com algumas correções:


[Passos prévios]

- O sistema utilizado para a instalação foi debian-40r4a-i386-netinst baixado no site http://www.debian.org/distrib/netinst em 09/09/2008 no link http://cdimage.debian.org/debian-cd/4.0_r4a/i386/iso-cd/debian-40r4a-i386-netinst.iso
É necessário que seja i386 por causa das versões dos fontes que utilizaremos.

- Autentique-se como root no sistema para efetuar todos os passos desta explicação.

- Adicione a linha abaixo no arquivo /etc/apt/source.list para manter o apt-get atualizado:
deb http://ftp.br.debian.org/debian etch main contrib

- Após adicionada a linha, atualize o apt-get com o comando abaixo:
apt-get update


[Baixando fontes e instalando utilitarios]

- O iptables é intimamente ligado ao kernel para aumetar sua performance, então, para a instalação do iptables l7 é necessário compilar um kernel com as opções de l7. Baixe os fontes necessários com os comandos abaixo:
cd /usr/src

wget http://www.kernel.org/pub/linux/kernel/v2.6/ linux-2.6.19.tar.gz

wget http://www.netfilter.org/projects/iptables/files/ iptables-1.3.7.tar.bz2


wget http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/ netfilter-layer7-v2.9.tar.gz


wget http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/ l7-protocols-2007-01-14.tar.gz


- Alguns utilitarios que não vêm com o Debian devem ser instalados:
aptitude install bzip2 gzip unzip

aptitude install libncurses5-dev


aptitude install kernel-package


- Descompactando fontes:
tar xvzf linux-2.6.19.tar.gz

tar xvjf iptables-1.3.7.tar.bz2


tar xvzf netfilter-layer7-v2.9.tar.gz


tar xvzf l7-protocols-2007-01-14.tar.gz



[Configurando, compilando e instalando o kernel com l7]

- Criando um link para o diretório do kernel para auxiliar no processo de configuração:
ln -s /usr/src/linux-2.6.19 /usr/src/linux

- Copiando as configurações de boot:
cp /boot/config-2.6.24* /usr/src/linux/.config

- Aplicando o patch do layer7 no kernel:
cd /usr/src/linux
patch -p1 < /usr/src/netfilter-layer7-v2.9/kernel-2.6.18-2.6.19-layer7-2.9.patch

- Agora o kernel está pronto para ser configurado, compilado e instalado:
make menuconfig

- Uma tela de configuração do kernel será mostrada. Você deverá seguir os passos:
Networking ---> Networking options ---> [*] Network packet filtering (replaces ipchains) ---> Core Netfilter Configuration ---> Netfilter Xtables support (required for ip_tables)

- Ative com M a opção Netfilter Xtables support.

- Siga para:
Networking ---> Networking options ---> [*] Network packet filtering (replaces ipchains) ---> IP: Netfilter Configuration ---> IP tables support (required for filtering/masq/NAT) --->

- Ative:
Layer 7 match support (EXPERIMENTAL)
[*] Layer 7 debugging output

- Após ativar conforme acima, siga selecionando Exit e até que seja perguntado se você deseja salvar a nova configuração do kernel, selecione YES e para salvar.

- compilando o kernel:
make-kpkg -initrd kernel_image

Nota: demorará vários minutos.

- Após a compilação, será gerado um arquivo em /usr/src/linux-image-2.6.19.7_2.6.19.7-10.00.Custom_i386.deb, instale-o com o comando abaixo:
dpkg -i linux-image-2.6.19.7_2.6.19.7-10.00.Custom_i386.deb

- Após a instalação, reinicie sua máquina e selecione o novo kernel para ser carregado.


[Configurando e instalando o iptables l7]

- O iptables deve ser configurado para utilizar as novas funcionalidades oferecidas pelo kernel. Faça os comandos abaixo para efetivar essa configuração:
cd /usr/src/iptables-1.3.7

patch -p1 < /usr/src/netfilter-layer7-v2.9/iptables-layer7-2.9.patch


chmod +x extensions/.layer7-test


- Instalando o iptables:
make KERNEL_DIR=/usr/src/linux

make install KERNEL_DIR=/usr/src/linux


- Instalando protocolos que podem ser filtrados:
cd /usr/src/l7-protocols-2007-01-14

make install



[Finalizações]

- Reinicie sua máquina, selecione o novo kernel e insira a seguinte regra para testar o novo iptables:
iptables -I FORWARD -m layer7 --l7proto bittorrent -j DROP


[Possíveis problemas]

- Se a regra anterior for executada com sucesso, o seu iptables está pronto para ser utilizado. Caso contrário, o módulo l7 talvez não foi carregado automaticamente. Carregue-o com o comando abaixo:
modprobe ipt_layer7

- Se for exibida uma mensagem que o módulo não foi encontrado, a sua instalação falhou. Comente os problemas nesta postagem.


[Informações adicionais]

- Uma relação dos protocolos suportados pode ser vista em http://l7-filter.sourceforge.net/protocols

terça-feira, 23 de setembro de 2008

Copiando (clonando) máquinas do xen no mesmo domínio

As vezes precisamos de efetuar testes em máquinas virtuais, backup ou até criar outras máquinas com outros serviços. Então, "para evitar a fadiga" de criar tudo do zero, podemos efetuar cópias (clones) das máquinas virtuais.
Existem maneiras diferentes de efetuar essa clonagem (ex.: o comando virt-clone). Vou explicar somente a que sempre utilizo. Do original http://blog-grid.blogspot.com/2007/07/how-to-clone-xen-vm.html:

Assumindo que temos uma máquina chamada httpd e queremos criar uma httpd-teste, segue os passos:


[Copiando a imagem do disco]
- Copie a imagem do disco da máquina requerida para um outro nome. No meu caso as imagens ficam em uma partição separada /vm. Para efetuar a cópia utilize qualquer comando de cópia (cp, dd, ...), recomendo o dd:
dd if=/vm/httpd of=/vm/httpd-teste bs=4k

Nota: Dependendo do tamanho da imagem isso pode demorar, por isso é importante utilizar o bs=4k para definir blocos maiores a serem copiados, aumentando a velociade de cópia. É recomendado que a máquina httpd esteja desligada ao efetuar a cópia para evitar erros, porém, não é extremamente necessário.

- Altere as permissões do arquivo para que o xen possa escrever nele:
chmod 771 /vm/httpd-teste

[Criando arquivo de configuração]
- A nova máquina precisa de um arquivo de configuração. Utilize o comando abaixo para copiar o arquivo de configuração da máquina httpd:
virsh dumpxml httpd > /tmp/httpd-teste.xml

Nota: O caminho do arquivo de configuração httpd não precisa ser informado pois já é sabido pelo comando. Pore

- Altere as tags do arquivo /tmp/httpd-teste.xml de configuração copiado para seus novos valores:
...
<name>httpd-teste</name>
...
<uuid>3ca12152be4195b1fa67a0e857b9723d</uuid>
...
<mac address='00:16:3e:65:82:48'/>
...
<source file='/vm/httpd-teste'/>
...

Nota: As linhas uuid e mac podem ser apagadas pois o xen criará automático (teoricamente).

- Ponha o novo arquivo de configuração em funcionamento:
virsh define /tmp/httpd-teste.xml


[Iniciando a nova máquina virtual]
- Para iniciar a nova máquina virtual execute:
virsh start httpd-teste

ou

xm start httpd-teste

ou

algum outro comando das ferramentas do xen

Nota: lembre-se de alterar o IP de sua nova máquina, bem como nomes e outros valores que não podem ficar duplicados na rede.

segunda-feira, 22 de setembro de 2008

Ao executar o make no linux, aparece a seguinte warning: File `XXX' has modification time in the future 955485142...

Isso geralmente ocorre quando o horário do sistema não está correto. Não sei muito ao certo o que é um horário errado pois, o timezone (tzconfig) estava configurado correto e o horário do hardware estava correto. Somente quando visualizava o horário do sistema (date) ele não batia com o configurado no hardware [isso deve ser um horário errado :) ]. O seguinte comando corrige o horário e corrigiu a warning:

date mmddhhmmccaa

Onde:

* mm = Mês
* dd = Dia
* hh = Hora
* mm = Minutos
* cc = Primeiras casas do Ano (2008 = 20)
* aa = Últimas duas casa do Ano (2008 = 08)

Ex.: 22 de setembro de 2008 10:24

date 092210242008

terça-feira, 16 de setembro de 2008

Se não existisse ano bissexto, estaríamos em qual ano?

Todos nós sabemos (ou quase todos) daquela historia de que a terra leva 1 ano e 6 horas para dar uma volta em torno do sol. Por isso, para não ficarmos defasados 0.25 dias a cada ano, de 4 em 4 anos temos 1 dia a mais (4 anos * 6 horas = 24 horas = Kiefer Sutherland = 1 dia).

Sempre tive curiosidade de saber qual seria a proporção dessa defasagem se não tivéssemos o ano bissexto. Abaixo segue meu raciocínio para uma fórmula discreta que resulta nessa defasagem:

- a cada 1 ano temos 1/4 dia de sobra, ou (1/4)/365 = 0,000685 anos de sobra a cada ano passado.
- então, em X anos, teremos 0,000685X anos de sobra.
- se estamos no ano X, o ano sem bissexto (ASB) sera:
ASB = X + 0,000685X =>
ASB = X*(1 + 0,000685) =>
ASB = 1,000685X

Portanto, partindo das seguintes afirmações: (nossos anos começaram a partir do nascimento de Cristo) e (o ano 4 foi bissexto) e (desde o nascimento de Cristo passaram 2008.747 anos, data que foi escrito esse post) temos o seguinte resultado:
X = 2008,747
ASB = 1,000685X
ASB = 1,000685*2008,747
ASB = 2010,123

Concluindo:

Se não existisse ano bissexto, estaríamos em 2010!

quarta-feira, 3 de setembro de 2008

Instalando e configurando o poderoso gerenciador de redes Nagios

Tutorial muito bom Instalando e configurando o poderoso gerenciador de redes Nagios

Após instalado o nagios, pode acontecer:

[Erro de acesso]
Eventualmente poderá aparecer a seguinte mensagem na hora da visualização das informações:
"It appears as though you do not have permission to view information for any of the hosts you requested...". Diz respeito às permissões de usuários que o sistema do nagios possui. Para desativar a autenticação vá em /usr/local/nagios/etc/cgi.cfg e mude a variável user_authentication=1 para user_authentication=0.
Essa ação deixará seu nagios vulnerável, qualquer pessoa poderá visualizar os dados e alterá-los.

[Definição de autenticação de usuários]
Para definir usuários e permissões de acesso ao nagios, proceda da seguinte forma:
execute o comando #htpasswd /usr/local/nagios/etc/htpasswd.users NOVO_USUARIO para criar um novo usuário para o sistema nagios.
edite o arquivo /usr/local/nagios/etc/cgi.cfg adicionando os novos usuários às variáveis authorized_for_all_service_commands e authorized_for_all_host_commands separados por vírgula. Lembrando que, para que a autenticação funcione, a variável user_authentication deve ser 1.

Abaixo segue um exemplo da criação de usuários:
#htpasswd /usr/local/nagios/etc/htpasswd.users andre
#nano /usr/local/nagios/etc/cgi.cfg
.
.
.
user_authentication=1
.
.
.
authorized_for_all_service_commands=nagiosadmin,andre
authorized_for_all_host_commands=nagiosadmin,andre
.
.
.

[Adicionar novo host no nagios]
Na pasta
/usr/local/nagios/etc/objects são colocados os objetos (hosts) que serão monitorados pelo nagios. Neste arquivo temos alguns exemplos, portanto, só irei mostrar o básico de configuração. Digamos que queiramos monitorar um host com nome sw_cisco e ip 192.168.1.2:

- primeiro, criaremos um arquivo de configuração:
touch /usr
/local/nagios/etc/objects/sw_cisco.cfg

- adicione as seguinte linhas ao arquivo (a chave de abertura deve ser colada com a palavra):
define host{
use linux-server
host_name sw_cisco
alias sw_cisco
address 192.168.1.2
}

define service{
use local-service
host_name sw_cisco
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

- após criado o objeto, informe ao nagios a existência do novo host a ser monitorado editando o arquivo
/usr/local/nagios/etc/nagios.cfg adicionando a seguinte linha:
cfg_file=/usr/local/nagios/etc/objects/sw_cisco.cfg

- reinicie o serviço do nagios:
#/etc/init.d/nagios restart

- verifique a existência de um novo host na página do nagios. Somente o serviço de teste de ping será realizado nesse novo host pois foi somente esse serviço que configuramos. Caso seja necessário outros, eles devem ser configurados em
/usr/local/nagios/etc/objects/sw_cisco.cfg

Instalando Cacti no Debian

Cacti é uma ferramenta para gerência de redes. Abaixo mostrarei um rápido passo a passo de como instalá-la em um servidor Debian que poderá monitorar equipamentos que servem o protocolo SNMP.

[Passos prévios]

- O sistema utilizado para a instalação foi debian-40r4a-i386-netinst baixado no site http://www.debian.org/distrib/netinst em 01/09/2008 no link http://cdimage.debian.org/debian-cd/4.0_r4a/i386/iso-cd/debian-40r4a-i386-netinst.iso
É necessário que seja i386 por causa das versões dos fontes que utilizaremos.

- Autentique-se como root no sistema para efetuar todos os passos desta explicação.

- Adicione a linha abaixo no arquivo /etc/apt/source.list para manter o apt-get atualizado:
deb http://ftp.br.debian.org/debian etch main contrib

- Após adicionada a linha, atualize o apt-get com o comando abaixo:
#apt-get update

- Instale um servidor LAMP antes da instalação do cacti. Veja em Instalando LAMP no Debian

- Se utilizar outro sistema, antes da instalação do cacti verifique se as ferramentas SNMP estão instaladas. Caso não estejam, devem ser instaladas.


[Instalação]

- Baixe e instale os pacotes do cacti e suas dependências com o comando abaixo. Nota: aceite todas as dependências.
#apt-get install cacti

- Acesso via browser o endereço http://localhost/cacti e efetue os passos de configuração do cacti, por padrão não é necessário alterar as configurações.

- Após efetuar as configurações, acesse novamente http://localhost/cacti e autentique-se com login: admin e senha: admin, será pedido a alteração da senha.

- Se tudo isso ocorreu certo, a sua instalação terminou com sucesso!

Instalando LAMP no Debian

LAMP é a abreviação dos serviços de rede para Linux: Apache, MySql e PHP. Abaixo mostro um pequeno passo a passo para instalação desses serviços no Debian.


[Passos prévios]

- O sistema utilizado para a instalação foi debian-40r4a-i386-netinst baixado no site http://www.debian.org/distrib/netinst em 01/09/2008 no link http://cdimage.debian.org/debian-cd/4.0_r4a/i386/iso-cd/debian-40r4a-i386-netinst.iso
É necessário que seja i386 por causa das versões dos fontes que utilizaremos.

- Autentique-se como root no sistema para efetuar todos os passos desta explicação.

- Adicione a linha abaixo no arquivo /etc/apt/source.list para manter o apt-get atualizado:
deb http://ftp.br.debian.org/debian etch main contrib

- Após adicionada a linha, atualize o apt-get com o comando abaixo:
#apt-get update


[Instalação]

- Baixe e instale os pacotes LAMP e suas dependências com o comando abaixo. Nota: aceite todas as dependências.
#apt-get install apache2 mysql-server php5 php5-mysql php5-cli

Sobre os pacotes:
apache2: servidor web
mysql-server: servidor de banco de dados
php5: linguagem de programação para web
php5-mysql: integração do php5 com mysql
php5-cli: possibilita executar php na linha de comando do linux. É necessário para muitos scripts funcionarem.

- Como instalação adicional sugiro o phpmyadmin para facilitar o gerenciamento do banco de dados mysql:
#apt-get install phpmyadmin


[Testes]

- Para verificar se a instalação ocorreu com sucesso,Verifique em um browser o endereço http://localhost, geralmento o apache retorna "It works!" para sinalizar que está funcionado
A pasta /var/www é o diretório padrão onde o apache mapeia as páginas web.

- Tente acessar a página http://localhost/phpmyadmin e criar bancos de dados.

- Estando tudo certo, a instalação terminou com sucesso!

terça-feira, 26 de agosto de 2008

Como instalar o Back Track 2 no hd


Uso o BackTrack como meu desktop linux. Só que no início apanhei para instalá-lo no hd pois não é tão fácil como o kurumin por exemplo. Deve-se particionar sua unidade, depois e formatá-la e aí sim instalar o sistema (os famosos passos de fdisk e format no windows)
Consegui o seguinte passo a passo (http://helpos.net78.net/showthread.php?p=5) só que segue abaixo algumas correções (passo 10.5):

Para Instalar o BackTrack 2 no hd siga os passos abaixo:

1. Primeiro logue no sistema com o login = root e senha = toor.
2. Entre no particionador cfdisk /dev/hda ou /dev/sda para hd's sata.
3. Crie uma partição primaria para o linux ,vá em type e coloque o n° 83 para o sistema de arquivos..
4. Crie uma partição para a swap pode ser de 512MB, vá em type e coloque o n° 82 para o sistema de arquivos.
5. Selecione a opção write para gravar no disco.
6. Use o comando mkfs.ext3 /dev/hda1 para formatar a partição hda1.
7. Digite startx para entrar no modo gráfico.
8. Clique no K, vá em system, BackTrack Installer.
9. Deixe o primeiro campo em branco, no segundo coloque /mnt/hda1 ou sda1 para hd's sata, no terceiro /dev/hda.
10. Em método de instalação selecione real, e clique em install.
10.5 Saia do BackTrack Installer e entre de novo e execute novamente os passos 9 e 10.
11. Após a instalação reinicie a maquina e remova o cd.

O passo 10.5 foi necessário pois, pelo menos na minha distribuição, ao executar pela primeira vez os passos 9 e 10 fez o programa somente instalar o lilo na partição. Após realizar novamente os passos 9 e 10 é que o programa realmente instalou os arquivos do BT2
Olá a todos!

Estou criando este blog para compartilhar todos os problemas de software e hardware que já enfrentei e resolvi e tive disposição de detalhar passo a passo.

Acho que a Internet está muito poluída com fóruns, blogs e outros tipos de sites sem soluções, só com dúvidas que acabam atrapalhando as nossas pesquisas!

Minha proposta é fazer um blog só com soluções, mesmo que as vezes muito específicas.

Obrigado pela atenção e boa diversão!!!