Automatizando a instalação do Debian – caso Alienvault OSSIM

Preseeding é o recurso usado pelo Debian para automatização da instalação. Ele provê uma forma automizada para responder as questionamentos realizados durante o processo de instalação, facilitando assim a criação de versões customizadas.

O objetivo deste artigo é apresentar como o preeseding pode colaborar no processo de automatização da instalação do Debian e seus derivados.

O sistema de monitoramento de ameaças Alienvault OSSIM será utilizado como exemplo por ter como base a distribuição Debian.

Desta forma apresentarei como customizar o processo de particionamento usando o Logical Volume Management (LVM), pelo fato do OSSIM não utilizar esse recurso para particionamento de discos.

Esta é uma das caracterísiticas que pode ser alterada, existem diversas customizações que podem ser realizadas, tais como:

* Instalação ou remoção de pacotes
* Criação de usuários
* Separar banco de dados do framework 
* Particionamento

IMPORTANTE: O Alienvault OSSIM foi desenvolvido para ser implementado como um sistema OneBox, onde todos os recursos são executados em um único host, apenas o Sensor pode ser instalado em hosts separados. Dessa forma qualquer modificação poderá impactar no funcionamento do sistema.

Toda a customização é feita em arquivos .preseed que seguem uma estrutura definida em diversos parâmetros.

Exemplo de um arquivo preseed.

Execute o seguinte procedimento para fazer a customização do Alienvault OSSIM usando o Logical Volume Management (LVM).

Instalar pacotes

[[email protected] ~]$ sudo aptitude install rsync genisoimage 

Criar estrutura de diretório

[[email protected] ~]$ mkdir ossim
[[email protected] ~]$ cd ossim
[[email protected] ossim]$ mkdir iso loopdir isofiles workspace

Fazer download do Alienvault OSSIM

[[email protected] ossim]$ cd iso
[[email protected] iso]$ wget -c http://downloads.alienvault.com/c/download?version=av-ossim-5.1.0 -O ossim-5.1.0.iso
[[email protected] ossim]$ cd ..

Montar ISO e extrair arquivos

[[email protected] ossim]$ sudo mount -o loop iso/ossim-5.1.0.iso loopdir
[[email protected] ossim]$ rsync -v -a -H --exclude=TRANS.TBL loopdir/ isofiles/
[[email protected] ossim]$ sudo umount loopdir
[[email protected] ossim]$ chmod u+w isofiles

Editar preseed

O configuração de instalação automatizada do OSSIM é dividida em vários arquivos .preseed. O arquivo responsável pela customização do Server é o defaultA.preseed enquanto que o defaultB.preseed é referente ao Sensor.

Para fazer o particionamento estou usando como base um disco de 50 GB ficando:

1 GB para swap
19 GB para a partição raiz
E o restante do disco será alocado para o /var

Será apresentado abaixo somente os parâmetros para customização do particionamento, onde irei editar o .preseed responsável pela instalação do Server.

[[email protected] ossim]$ cd isofiles/simple-cdd/
[[email protected] simple-cdd]$ vim defaultA.preseed

Comente todas as linhas da seção referente ao particionamento

### Partitioning.
...

Adicione as seguintes linhas para ativar o Local Volume Manager (LVM)

d-i partman-auto/choose_recipe select boot-root
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string lvm

d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto-lvm/no_boot boolean true

d-i partman-auto-lvm/new_vg_name string vg_OSSIM

d-i partman-auto/expert_recipe string \
boot-root :: \
1024 1024 1024 linux-swap method{ swap } \
format{ } $lvmok{ } lv_name{ lv_swap } \
. \
# Particao raiz com 19 GB (19 * 1024)
19456 19456 19456 ext4 method{ lvm } \
$lvmok{ } mountpoint{ / } lv_name{ lv_root } \
format{ } use_filesystem{ } filesystem{ ext4 } \
. \
# Espaço livre restante sera alocado para o /var
1 10240 10000000000 ext4 method{ lvm } \
$lvmok{ } mountpoint{ /var } lv_name{ lv_var } \
format{ } use_filesystem{ } filesystem{ ext4 } \
.
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-lvm/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select Finish
d-i partman/confirm_nooverwrite boolean true
d-i partman/confirm boolean true

grub-pc grub-pc/install_devices multiselect /dev/sda
grub-pc grub2/linux_cmdline_default string quiet splash vga=792

Gerar nova ISO

[[email protected] simple-cdd]$ cd ..
[[email protected] isofiles]$$ sudo genisoimage -o OSSIM51_custom_alexos.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat .

Testar nova ISO

Para testar basta criar uma máquina virtual com 50 GB de disco e fazer a instalação do Alienvault OSSIM usando a ISO customizada.
Se estiver tudo correto as partições serão criadas sem nenhuma intervenção manual durante o processo de instalação.

Referências

Preseed – Documentação Oficial – https://wiki.debian.org/DebianInstaller/Preseed

Alienvault LVM Partitioning – http://www.toms-blog.com/alienvault-lvm-partitioning/

Automating the installation using preseeding – https://www.debian.org/releases/squeeze/ia64/apbs01.html.en

AlienVault OSSIM – https://www.alienvault.com/products/ossim

Lista de Plugins existentes no USM / OSSIM AlienVault – http://www.ibliss.com.br/blog/lista-de-plugins-existentes-no-usm-ossim-alienvault/

AlienVault USM / OSSIM – Coleta de logs Windows via WMI – http://www.ibliss.com.br/blog/alienvautl-usm-ossim-coleta-de-logs-windows-via-wmi/

LVM HOWTO – http://tldp.org/HOWTO/LVM-HOWTO/

Author: alexos