Memnemonics fike’s Rotating Header Image

January, 2009:

PAM e senhas SHA

   É muito conhecido que a criptografia usando MD5 é relativamente fácil de quebrar com farta documentação na internet de como fazer. Na marioria das distribuições Linux, o padrão ainda é usar  MD5 como algoritmo de criptografia mas desde a versão 0.99.10.0 do PAM é possível usar o SHA como algoritimo de criptografia.

  No arquivo para alterar é "/etc/pam.d/common-passwd":

De:

    password   required   pam_unix.so nullok obscure md5

Para:

    password   required   pam_unix.so nullok obscure sha512

  No Red Hat o arquivo para alterar é "/etc/pam.d/system-auth":

De:

    password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok

Para:   

    password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok

Ajuda para incorporar novas funções de segurança no PostgreSQL 8.4

   O Bruce Momjiam que é um dos líderes do PostgreSQL está pedindo ajuda via lista e blog para comunidade para depurar duas novas funções (features) a serem incorporados a nova versão do PostgreSQL 8.4: Privilégios de acesso de/por linhas e SE-Linux dentro do PostgreSQL (Security-Enhanced PostgreSQL).

   A de privlégios por linha surgiu em um dos debates para incorporar o SE-Linux para dentro do PostgreSQL. A do SE-Linux dentro do PostgreSQL é incorporar o MAC (Mandatory Access Control) para os objetos dentro do banco de dados. A implantação do SE-PostgreSQL para dentro do 8.4 é bem trabalhosa, de acordo com um email para pg-hackers o trabalho é grande pois são: 110 arquivos modificados, quase dez mil linhas novas e mais mil linhas modificadas.

  O Bruce criou uma entrada do wiki do PostgreSQL sobre o SE-PostgreSQL, também pode acessar o site do SE-PostgreSQL para maiores informações. ;)

Radiohead: eu vou

    Semana passada chegou os ingressos para o show do Radiohead. Iniciado contagem regressiva. :)

 

Luis Nassif e o PostgreSQL

   No blog do Luis Nassif saiu uma nota bem inusitada para quem acompanha, tem uma pequena nota sobre PostgreSQL:
 


O PostgreSQL

 

Tenho ouvido falar muito no PostgreSQL. Dizem que tem um sistema de arquivar em memória as modificações, tornando o processo mais rápido. Mas que, às vezes, dá sobrecarga que resulta em tilt.

Alguém conhece vantagens e desvantagens desse banco de dados, em comparação com outros abertos e fechados?"


   O PostgreSQL não tem um sistema de arquivar em memórias em memória as modificações. Tem um log transacional que é armazenado em disco antes de ser efetivado no disco rígido, sendo esse mecanismo semelhante ao banco de dados Oracle.

   Como muitos elogiaram e para não ser redundante, citerei algumas coisas que o PostgreSQL está um pouco atrás.

- Interface de gerenciamento do PostgreSQL:

    O mais conhecido e de código aberto é o PgAdmin3 que tem uma boa interface e recursos mas ainda não tem os mesmo recursos das ferramentas "oficiais" de gerenciamento do Oracle e Microsoft SQL Server. Existem soluções proprietárias para gerenciamento do PostgreSQL que são similares aos de outros banco de dados.

- Alta-Disponibilidade/Cluster:

  O PostgreSQL ainda não tem uma solução de alta-disponibilidade/cluster como o Oracle RAC, existem ferramentas livres que possibilitam atingir o mesmo nível de qualidade de serviço mas com uma complexidade maior que o Oracle RAC.

- Privilégio por coluna:

  Está sendo incorporado no PostgreSQL 8.4/8.5 que deverá ser lançado no primeiro semestre de 2009. Por enquanto não é possível separar privilégios de usuários por coluna de uma tabela.

- Visões Materializadas:

  Apesar de ter algumas estratégias de como conseguir usar Visões Materializadas, ainda é uma função oficial do banco de dados.

- Proteção para Força Bruta:

  Hoje ainda não tem proteção nativa para ataque de força bruta. Apesar de ser possível atenuar com SE-PostgreSQL, Database Firewall (infelizmente ainda não tem um DF em Software Livre com suporte para PostgreSQL) ou ferramentas externas com firewall, IDS, etc.

- Auditoria: 

   Não tem uma função nativa, pode criar usando alguma das PL’s disponívels para criar funções e gatilhos para auditoria.

 

   Sem dúvida tem outros problemas/limitações que não estão citados smas nada que a comunidade possa contribuir para resolver. ;)

FISL 10 já tem um começa a ter URL

    Ok, o título não está grande coisa para essa nota mas o site do FISL (Fórum Internacional de Software Livre) já começa tomar forma e já tem URL (http://fisl.softwarelivre.org/10/www/). Uma imagem com uma pequena chamada para sua décima edição.  

   Já estou em contagem regressiva para participar comecei minha contagem regressiva para o evento e você? :)

 

Convertendo imagem de pendrive USB para disco no Virtualbox.

    Para testar a nota sobre syslinux, pendrive e instaladores usei um máquina virtual antes de ir testando em servidores reais. Estava usando o Virtualbox que está empacotado no repositório do Debian, um pequeno problema é que esta versão não tem suporte a dispositivos USB. Para contornar esse pequeno problema copiei o pendrive para uma imagem crua (raw) e convertir para um disco do Virtualbox. 

   Basicamente são dois comandos:

#dd if=/dev/sdb of=disco_pen.img
#vboxmanage convertfromraw -format VDI disco_pen.img disco_pen.vdi

 

   Agora é anexar numa máquina virtual do Virtuabox. :)

Syslinux e múltiplas distribuições no pendrive USB

    Depois de alguns meses do Ulisses (thebug) Castro me atormentar para publicar, segue um documento rápido para quem trabalha com muitas instalações de linux em ambiente corporativo.

    A instalação de distribuição linux usando CD ou DVD é um processo relativamente rápido hoje. Se estiver fazendo a instalação em poucos computadores é uma tarefa também tranquilo mas se estiver com um volume grande de instalação e sua infra-estrutura de rede não estiver preparada para instalação em massa de algumas centenas de servidores o processo de instalação será manual e tedioso.  Para alguns é um bem tedioso fazer esse tipo de operação. :P

   Uma das partes que realmente incomoda (ao menos para mim) é ter que carregar algumas mídias de CD/DVD com alguns sabores de distribuições Linux, então perguntando se era possível ter um pendrive USB (USB flashdrive) que tivesse esses instaladores.

    No vasto oceano de informações (internet) tem um excelente documento escrito por David Heller sobre instalação de Red Hat em USB flashdrive. Porém é possível usar esse documento para qualquer outra distribuição, e o programa chave para conseguir realizar a tarefa é o famoso Syslinux.

    No caso desta nota, foi preparado para duas distribuições: Debian e Red Hat (provavelmente funcionará no CentOS e Fedora) com seus respectivos instaladores. Presumindo que já tenha instalado o syslinux via pacote iremos e tenha um pendrive disponível para uso. Faça backup de seus dados, sem garantias de integridade de seus dados. ;)
 

    Supondo que o pendrive é reconhecido por seu linux como "/dev/sdb" e a partição dele é reconhecida como "/dev/sdb1". Segue:

1 – A imagem mbr está localizada em "/usr/lib/syslinux/" e usaremos o dd para copiar a imagem mbr para o pendrive.

#dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb


2 – Após copiar o imagem mbr, copie o syslinux para o pendrive na partição do mesmo.

#syslinux /dev/sdb1

 

3 – Montar o pendrive em "/mnt/pendrive".

#mount /dev/sdb1 /mnt/pendrive

 

4 – Copiar o menu.c32, localizado em "/usr/lib/syslinux" para o pendrive.

#cp /usr/lib/syslinux/menu.c32 /mnt/pendrive

 

5 – Criar os diretórios para os instaladores do Debian e Red Hat.

#mkdir /mnt/pendrive/debian64
#mkdir /mnt/pendrive/rh64

 

6 – Baixe o instalador do Debian para pendrive. Para esta nota, foi usado a versão do Lenny AMD64bits, também foi testado com o Lenny i386, Etch AMD64 e I386.

#wget http://ftp.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/boot.img.gz

 

7 – Descompactar a imagem do instalador Debian.

#gunzip boot.img.gz

 

8 – Anexar (falta de nome mais apropriado) num dispositivo loopback para ver o conteúdo da imagem.

#losetup /dev/loop0 boot.img

 

9 – Mountar o dispositivo loopback com a imagem do instalador Debian.

#mkdir /mnt/temp
#mount -o loop /dev/loop0 /mnt/temp

 

10 – Copiar o kernel e a imagem initrd do Debian.

#cp /mnt/temp/linux /mnt/pendrive/debian64
#cp /mnt/temp/initrd.gz /mnt/pendrive/debian64

 

11 – Desmontar o ponto de montagem /mnt/temp.

#umount /mnt/temp

 

12 – Liberar o dispositivo loopback usado para imagem Debian.

#losetup -d /dev/loop0

 

    No caso do Red Hat, será suposto para essa nota que já tenha a imagem do mesmo. Os procedimentos funcionaram para a série 4.X e 5.X do Red Hat Enterprise. 

13 – Mountar a imagem de instalação do Red Hat, no caso aqui, usamos uma imagem de DVD.

#mount -o loop rhel-5.2-server-x86_64-dvd.iso /mnt/temp

 

14 – Copiar o kernel Red Hat e o initrd para o diretório "/mnt/pendrive/rh64"

#cp /mnt/temp/isolinux/vmlinuz /mnt/pendrive/rh64
#cp /mnt/temp/isolinux/initrd.gz /mnt/pendrive/rh64

 

15 – Demontar a imagem do DVD Red Hat.

#umount /mnt/temp

 

16 – Para ter um menu com opções ao iniciar um servidor/computador com o pendrive com syslinux, precisará ter um menu com as opções de boot. O syslinux buscará o arquivo syslinux.cfg, usando o seu editor favorito, seguindo essa nota, ficará como abaixo:

#vi /mnt/pendrive/syslinux.cfg
DEFAULT menu.c32
 
MENU TITLE Instalação Automatizada por pendrive
 
LABEL Debian Lenny
    MENU LABEL Debian Lenny  AMD 64 bits
    KERNEL debian64/linux
    APPEND linux initrd=debian64/initrd.gz priority=low vga=normal quiet –
 
LABEL Red Hat 5 Update 2 AMD64
    MENU LABEL Red Hat 5 Update 2 AMD 64
    KERNEL rh64/vmlinuz
    APPEND linux load_ramdisk=1 initrd=rh64/initrd.img

 

    O "MENU TITLE" pode escrever o que for mais conveniente. O "MENU LABEL" é o descritivo de opção que aparecerá no momento do boot. O APPEND são as opções para iniciar de cada instalação, no caso do Debian está configurado para o debconf fazer todas as perguntas da instalação. Pode mudar para o padrão das imagens de CD/DVD que é o médio alterando de "priority=low" para "priority=medium". Também é possível automatizar a instalação do Debian e Redhat usando os recursos de Seed (Debian) ou  o Kickstart (Red Hat) mas isso ficar para outra nota.
 

17 – Por fim, copiar as imagens de instalação (Debian e Red Hat) para "/mnt/pendrive". Lembre-se que o tamanho do pendrive pode limitar a quantidade de imagens que pode usar ao mesmo tempo, como uso um pendrive de 4GB, foi copiado a instalação do Debian Lenny via Rede (netinstall) e o DVD completo da instalação do Red Hat 5.2.

#cp debian-testing-amd64-netinst.iso /mnt/pendrive
#cp rhel-5.2-server-x86_64-dvd.iso /mnt/pendrive

 

18 –  O fim com uma imagem de um exemplo de um pendrive preparado para múltiplos instaladores Linux. Outras distribuições Linux também permitem este tipo de instalação, teste aí e avise. :)

 

Linux Magazine 50: PostgreSQL e Alta-Disponibilidade

 

    Minha facilidade em esquecer coisas é absolutamente maior que aprender coisas. Fui na banca de jornal passar o folheando despretenciosamente algumas revistas e ao folhear a Linux Magazine de Janeiro/2009 – Edição 50, encontro um artigo de  Alta-Disponibilidade e PostgreSQL. Um pouco mais curioso, procuro o autor do artigo…

    … e o autor sou eu!!!

    Esqueci que tinha enviado ao Pablo Hess (Atual Editor da LM) algum tempo atrás. Obrigado por publicarem!!! :)

    Bom, neste artigo abordo um pouco sobre teoria para Alta-Disponibilidade em Banco de Dados e uma implantação na prática. Como base foi usado Debian e PostgreSQL com NFS, não é uma forma muito recomedável para este tipo de solução mas tem alguns locais que a infra-estrutura não permite uso de Storage com Fiber-Channel, ISCSI e outras estratégias de compartilhamento de áreas de armazenamento. As idéias básicas deste artigo devem ser úteis para muitos casos.

    Comprem e boa leitura para todos. :)