terça-feira, 21 de outubro de 2014

Erro no Grub com RAID no CentOS 6.5


Após efetuar a instalação do sistema operacional com discos em RAID por software, existe grande probabilidade de recebe a mensagem abaixo:





Para resolver, siga os passos seguintes:




Entendendo:

find /grub/stage1
     Mostra os HDs e partições disponíveis.

root (hd0,0)
     Define qual a partição possui o grub, normalmente é a /boot ou a /.

setup (hd0,0)
     Instala o grub na primeira partição do primeiro dispositivo.

quit
     Em alguns casos, nem funciona já que não foi iniciado a partir do prompt, então basta substituí-lo por um reboot.


   

quinta-feira, 18 de setembro de 2014

Converter máquina Física para Virtual no KVM

Um dos momentos mais importantes no trabalho com máquinas virtuais é a transformação das máquinas físicas para virtuais.
Normalmente encontramos na internet milhares de tutoriais de "como instalar KVM" e "criar máquinas virtuais novas". Porém, quando pouco se acha sobre administrar um servidor já em uso.
Nas instruções a seguir vou considerar que o servidor KVM já está em uso e queremos transferir uma máquina física para uma virtual nesse servidor.

Primeiramente observe se existe espaço em disco suficiente para essa operação pois o HD da máquina física será copiado integralmente.

Para essa ação utilizaremos os programas virt-v2v e virt-p2v no sistema operacional CentOS 6.5.
Nada será feito no Sistema Operacional da máquina física a ser virtualizada. A única ação nessa máquina será desligá-la e inicializar com cd-rom.


Então, vamos ao trabalho...

No Hospedeiro:
1- Instale os programas

# yum install virt-v2v   virt-p2v

A  instalação irá baixar o arquivo virt-p2v-09.1-2.20130730.1.el6.centos.iso na pasta /usr/share/virt-p2v. Claro que esse nome pode mudar conforme a versão do programa.
Grave um cd com essa imagem. 

Edite o arquivo /etc/virt-v2v.conf adicionando as seguintes linhas dentro da tag virt-v2v, ou seja, antes de "
":


      libvirt
     
            default
     

     
     
     

* Para agilizar esse tutorial, preenchi os campos nesse exemplo com dados sem nenhuma regra específica, mas se você pretende importar várias máquinas pode analisar os dados e preencher conforme sua necessidade, senão poderá alterar diretamente na máquina após a importação

Na máquina física:
1- Inicialize com o CD-Rom gravado no passo anterior;

2- Caso não haja servidor DHCP em sua rede, será mostrada uma tela para configuração de rede, configure a rede na mesma rede do Hospedeiro.

3- Será solicitado então:
---- Nome do host: Que você deve preencher com o IP do Hospedeiro;
---- Usuário:  Nesse caso o campo já vem preenchido com o "root". É o root do hospedeiro;
---- Senha: É a senha do usuário root no Hospedeiro;


Então é só escolher as informações inerentes a sua máquina física e iniciar a operação. 
Em um disco de 500GB o tempo da conversão foi de aproximadamente 5 horas, mas isso varia conforme a qualidade dos discos e das conexões de rede envolvidos.


Mudar status de interface de rede de máquina virtual no KVM

Para emular a desconexão do cabo de rede em uma máquina virtual no KVM devemos seguir os seguintes passos:

- Ligar a máquina virtual;

No hospedeiro:

# virsh

virsh # domiflist

Receberá a mensagem abaixo:

Interface  Type       Source     Model       MAC
------------------------------------------------------- 

vnet3      bridge     br0        -           50:e5:49:00:00:33

Observe o nome da interface da máquina em questão.

Então desative-a com o comando:

virsh # domif-setlink vnet3  down

Para reativar:

virsh # domif-setlink   vnet3 up



Observações:
As inscrições "virsh #" é o prompt de comando do virsh, não será digitado.

sexta-feira, 12 de setembro de 2014

Trabalhar com arquivo de imagem de dispositivo.

Quando copiamos o conteúdo de uma partição de disco em um arquivo através do comando dd, a montagem desse arquivo é bem simples, vejamos para exemplificar:

Tenho um disco com /dev/sda1 e /dev/sda2. Vou criar um arquivo com a imagem de cada partição com o seguinte comando:

# dd  if=/dev/sda1    of=arquivo_sda1.iso
# dd  if=/dev/sda2    of=arquivo_sda2.iso

Claro que o bom senso diz que devemos fazer isso com o dispositivo desmontado e, principalmente, não ser o disco em uso no momento.

Para montar o arquivo e ler seu conteúdo em outro computador:

# mkdir /mnt/sda1
# mount -t auto -o loop arquivo_sda1.iso /mnt/sda1


# mkdir /mnt/sda2
# mount -t auto -o loop arquivo_sda2.iso /mnt/sda2

* Não vou entrar em detalhes sobre isso aqui porque tem milhões de tutoriais e explicações detalhadas sobre isso na internet, não vou plantar mais do mesmo.

O problema é quando copiamos o conteúdo de um dispositivo inteiro que está particionado. Isso não tem muitos tutoriais por aí. Por exemplo:

Um disco de sistema de 500 GB particionado assim:

/dev/sda1
/dev/sda2
/dev/sda3

Executamos a cópia assim:

# dd if=/dev/sda  of=imagem_de_disco_sda.iso


Pronto, já temos a bomba!!!!! rsrsrs
Na hora de montar essas partições é que vem o problema pois é um único dispositivo.


Então vamos a solução tão simples que creio que por isso que tem tão pouco na internet.


# losetup -P /dev/loop0 imagem_de_disco_sda.iso 

Com a opção -P (maiúscula) o sistema criar tantos dispositivos quantas forem as partições do disco da seguinte forma, no nosso caso:

/dev/loop0p1
/dev/loop0p2
/dev/loop0p3

Então para montar as partições:

# mkdir /mnt/loop0p1
# mount -t auto /dev/loop0p1 /mnt/loop0p1

# mkdir /mnt/loop0p2
# mount -t auto /dev/loop0p2 /mnt/loop0p2

# mkdir /mnt/loop0p3
# mount -t auto /dev/loop0p3 /mnt/loop0p3
 

* a opção "-t auto" pode mudar dependendo do sistema de arquivo que existir na partição. Sugiro o uso do comando blkid para identificar os Sistemas de Arquivo de cada partição.
* A extensão ".iso" no arquivo de imagem é meramente ilustrativa, pode ser qualquer nome.


Um pouco mais...
Há casos que alguns sistemas operacionais não possuem o aplicativo losetup, em substituição vem o kpartx, como o CentOS 6.5. Então vou aproveitar e explicar como usar esse comando também:

# kpartx -av imagem_de_disco_sda.iso
Vai ser mostrada a seguinte saída:

add map loop0p1 (253:4): 0 16002 linear /dev/loop0 63
add map loop0p2 (253:5): 0 4415 linear /dev/loop0 16065

Diferente do losetup, ele não cria os atalhos /dev/loop0p1 e /dev/loop0p2. Mas observer uma sequência numérica na saída do comando, "253:4" e "253:5".
Se você listar o conteúdo de /dev/block, vai ver esses números lá apontando para dm-x que também tem links em /dev/mapper/loop0pX.
Tá, é uma confusão que não vem ao caso explicar agora.

A referência numéria no /dev/block é a que vai aparecer com mais frequência, então vamos utilizá-la para nosso exemplo:

Então, agora é só montar o dispositvo:

# mount -t auto /dev/block/253:4 /mnt/loop0p1
# mount -t auto /dev/block/253:5 /mnt/loop0p2


Pronto.
Já estão montados os dispositivos.









quarta-feira, 21 de maio de 2014

Chaves públicas e privadas para uso em aula.

Esse post é apenas para auxiliar alguns colegas da turma da faculdade de Redes de Computadores.

Uma questão sobre a utilização das chaves criptográficas que acho muito importante ser abordada é a respeito da utilização da "chave pública" de forma realmente pública.

Primeiramente compartilho uma nomenclatura que uso particularmente para que eu compreenda a utilização: 
A chave é uma só, porém ela é dividida em 2 partes e essas partes sim, são "privada" e "pública". Essa definição não se encontra em literatura, é só uma forma particular de organizar pensamentos.

Exemplo:
     A "chave do Cleber" é formada pela junção dos arquivos CleberIanes.privada.key e CleberIanes.publica.key. Eu só consigo abrir um arquivo criptografado por essa chave se eu tiver os 2 arquivos, mas eu consigo criptografar um aquivo tendo só a parte "CleberIanes.publica.key".

Então nesse link está o arquivo CleberIanes.publica.key:

                    http://goo.gl/gyb8P9

Digamos que queiram me enviar uma foto, mas é uma foto íntima (é só suposição, não precisam me enviar aquelas fotos. rsrsr
Baixem o arquivo no link acima e utilizem ele como "chave pública" para criptografar a foto e me mandar. Podem fazer isso respondendo o e-mail que mandei pra todo mundo, pois mesmo que qualquer um possa pegar a "chave pública", somente eu tenho a segunda parte da chave, a "chave privada". Vocês irão enviar o arquivo gerado pelo openssl, ou seja, o arquivo ArquivoCriptografadoASerEnviado.jpg. Não precisam me mandar qualquer chave pois eu tenho a chave privada pra abrir.

O comando no linux para isso é:
  openssl rsautl   -encryt    -in ArquivoOriginalASerEnviado.jpg    -out ArquivoCriptografadoASerEnviado.jpg  -pubin    -inkey CleberIanes.publica.key

* tudo na mesma linha, se estiver vendo em 2 ou mais  é só por causa da resolução de sua tela.

Importantíssimo compreender:
Se eu quero receber arquivos criptografados de qualquer pessoa então EU tenho que criar as chaves públicas e privadas que as pessoas usarão para me enviar arquivos. Então eu disponibilizo publicamente a chave que as pessoas podem me mandar arquivos criptografados. Dessa forma só eu conseguirei abrir os arquivos que são direcionados a mim, pois só eu tenho a segunda parte da chave.
Muita atenção nesse detalhe: Quem cria a chave não é a pessoa que vai enviar o arquivo, mas sim quem vai receber. Foi essa abordagem que senti falta na explanação dos 2 professores envolvidos. 

Dúvidas ou sugestões por e-mail. Inclusive, se encontrarem erros de digitação me avisem, estou fazendo isso  as pressas no meu horário de almoço.




sábado, 22 de março de 2014

Erro no grub em Debian Wheezy

Eu estava utilizando o computador quando de repente travou. Mudei de para o tty e não conseguia fazer nada pois dava erro de leitura de disco, reinicializei pelo "reset" e o sistema não subiu mais.
Ao inicializar chegava até a primeira tela do grub e travava antes mesmo de mostrar os boots disponíveis. Em cada tentativa de restauração as mensagens de erro mudava, dava erro de "partição não localizada", "erro de disco" ou "arquivos não encontrados"

A única forma eficiente de recuperar foi:
  1. Para evitar qualquer acidente, desconectar hds além do de S.Os.. Tenho um SSD para o S.O. e 2 HDs para os dados.
  2. Inicializar com o CD de instalação do Debian escolhendo "Advanced Options" e "Graphic Rescue Mode" depois definir idioma, teclado, sem rede, fuso horário...
  3. Escolher inicializar utilizando a partição raiz do disco com problema, no meu caso /dev/sda7;
  4. Escolher "Executar um shell em /dev/sda7";
  5. Montar as partições /boot e /var conforme sua distribuição de partições. Se essas já estiverem na raíz, é só pular esse passo.
  6. Executar o comando a seguir colocando o dispositivo em questão.
      1. # grub-install /dev/sda
      2. # update-grub
  7. Então é só reinicializar.
Ainda não sei o motivo do erro, mas durante os procedimentos de tentativa de restauração observei que minha partição /home estava lotada e apaguei alguns arquivos...






quarta-feira, 29 de janeiro de 2014

Amarrar IP ao MAC através da tabela ARP

MAC Address = Um número que está gravado no hardware da placa de rede. Teoricamente, não deveria ser possível burlar-lo e então teríamos certeza que uma máquina é ela mesma mas isso é outra história.
IP = Tá, se você chegou até aqui você sabe o que é IP, aliás deve saber o que é MAC também.

Existem dezenas de tutoriais explicando formas mirabolantes de "amarrar" IP ao MAC mas a mais simples que encontrei foi através do preenchimento do arquivo /etc/ethers.

Basta preencher o arquivo com os dados IP e MAC separados por espaço, um em cada linha.

Exemplo:

192.168.0.1 00:01:99:a9:5c:98

Dessa forma as máquinas só conseguirão acessar a sua se possuírem os 2 dados.