linux

Nasceu: Comunidade brasileira de Endian Firewall

Gostaria de anunciar à todos os visitantes deste blog, que hoje está sendo inaugurada a “Comunidade Brasileira de Endian Firewall.
O objetivo desta comunidade é oferecer um espaço aberto para debates, troca de experiências e também ajuda mutua na resolução de problemas relacionados ao efw.

Da mesma forma que eu estou presente nos comentários deste blog, também estarei presente nos forums da comunidade interagindo com os integrantes e ajudando na solução de problemas.

O endereço da comunidade é: http://endian.eth0.com.br

Vejo vocês por lá ;)

Tópico de Boas Vindas

HyperVM e Kloxo viram Open Source

Após a trágica morte de K. T. Ligesh (fundador da lxlabs e desenvolvedor do HyperVM e LxAdmin/Kloxo), formou-se o consórcio “LxCenter” para dar continuidade a estes produtos no formato Open Source.

Hoje a “LxCenter” finalmente liberou o código fonte dos dois produtos sob a licença AGPL3.0.

O post com a notícia completa do lançamento pode ser conferido aqui.

Sobre o HyperVM:
O HyperVM é um sistema completo de gerenciamento de máquinas virtuais(OpenVZ/Xen) e reais. Você pode ter controle total do seu datacenter em um painel centralizado.

Sobre o Kloxo:
Sistema de webhosting seguindo a mesma linha do ISPConfig, DirectAdmin e cPanel.
Observar que este ainda não deve ser utilizado em ambiente de produção pois possuí falhas na segurança.

Links Relacionados:
The Times Of India – Techie hangs himself in HSR Layout
Platonic – LxLabs Ligesh commits suicide
lowendbox – HyperVM and Kloxo Now Open Sourced, Hosted at LxCenter
The Register – Webhost hack wipes out data for 100,000 sites
Whatever Compliance – Hackers to VAServ: “it was ur own stupidity and excessive passwd reuse”
Forum LxCenter – Opensource Release Date

Lançado Endian Firewall 2.3

Hoje a equipe do Endian anunciou o lançamento da versão 2.3 dos Appliances e do Endian Firewall Community. Esta nova versão incluí vários recursos novos e recursos que antes estavam disponíveis apenas para usuários Enterprise.

Endian 2.3 Lançado

Endian 2.3 Lançado

Os principais recursos novos são:

* Dashboard
A página principal foi substituída por um dashboard com estatísticas sobre o sistema e serviços, também foram adicionados gráficos de tráfego em tempo real.
* HTTP proxy com controle de conteúdo por usuário ou grupo
O proxy HTTP agora tem uma nova interface que adiciona a possibilidade de criar controle de conteúdo por usuário ou grupo.
* Intrusion Prevention
As regras do snort agora podem ser configuradas, também é possível bloquear pacotes e logar tentativas de invasão.
* Remodelagem do “Port Forwarding”
Ná versão 2.3 agora é possível redirecionar portas a partir de qualquer zona.
Redirecionamento de portas sem NAT agora também é suportado
* Quality of Service
O módulo de Traffic Shapping foi substituído por um módulo completo de QoS.
* Notificações por email
É possível enviar notificações por email automaticamente para eventos pré-definidos.
* SNMP
Adicionado suporte ao protocolo SNMP.

Traduzido na integra de: http://blog.endian.com/2009/10/27/171/

Download em: http://www.endian.com/en/community/download/

Atualização do Zimbra para a versão 6

A alguns dias atrás, foi lançada a versão 6 do Zimbra, para atualizar da versão 5 para a 6, o processo é relativamente simples.
Dando continuidade ao howto que escrevi anteriormente, vou descrever os passos necessários para atualizar o zimbra.

Dependências:
O “Zimbra 6″ requer a instalação um pacote novo: sysstat
# yum install sysstat

Download:
Entre em http://www.zimbra.com/community/downloads.html e baixe versão mais atual do zimbra.

Atualização:
# tar xvfz zcs-6
# cd zcs-6
(No CentOS 5.x ou outra distro não listada)
# ./install --plataform-override
(Outra distro suportada oficialmente)
# ./install

Responda as perguntas que aparecem na tela, caso encontre algum erro, corrija-o antes de prosseguir.

HOWTO: ISPConfig 3.x no CentOS 5.x

O ISPConfig é uma ótima ferramenta Open Source para gerenciamento completo de um servidor de Web Hosting. Ele possui ferramentas que abrangem todos os itens indispensáveis para este tipo de serviço, como emails, web, ftp, dns, mysql, revendedores (reseller), painel administrativo para o usuário gerenciar o seu domínio, etc.. é sem dúvidas, uma ótima alternativa ao cPanel WHM.

Instale o repositório rpmforge de acordo com este guia: Adicionando o repositório rpmforge no CentOS 5.X

Pré ajustes

  • Desabilite o Selinux
  • Desabilite o firewall do CentOS
  • Ambos podem ser desabilitados através do menu “setup” – no item “firewall”.

    Preparando o servidor e instalando as dependências:
    # yum remove sendmail
    # yum update
    # yum install amavisd-new bzip2 clamav clamav-data clamav-server clamav-update clamd curl curl-devel cyrus-sasl-devel expect gamin-devel gcc gcc-c++ gdbm-devel getmail httpd imagemagick libtool libtool-ltdl-devel libxml2 libxml2-devel mysql-devel mysql-server ntp openldap-devel openldap-servers openssl-devel pam-devel pcre-devel perl-datetime-format-builder perl-datetime-format-http perl-dbd-mysql perl-libwww-perl php php-bcmath php-common php-devel php-eaccelerator php-gd php-imap php-ldap php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql phpmyadmin php-mysql php-odbc php-pear php-shout php-snmp php-soap php-tidy php-xml php-xmlrpc pkgconfig postfix postgresql-devel pure-ftpd quota redhat-rpm-config rpm-build spamassassin squirrelmail subversion unrar unzip webalizer zlib-devel -y

    Para facilitar a sua vida, reuni a instalação de todos os pacotes necessários em apenas um “yum install”, assim você pode ir tomar um café e fumar um cigarro tranquilamente enquanto o yum trabalha ;)

    Instalando serviços que não estão disponíveis nos repositórios:
    # cd /usr/src
    mydns:
    # wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
    # rpm -ivh mydns-mysql-1.1.0-1.i386.rpm

    vlogger:
    # wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
    # tar xvfz vlogger-1.3.tar.gz
    # mv vlogger-1.3/vlogger /usr/sbin/

    Courier
    Por uma exigência do courier-imap, este não pode ser compilado utilizando o usuário root, portanto, iremos criar um usuário apenas para criar os pacotes rpm, não esqueça de remove-lo no final.

    # useradd -m -s /bin/bash rpmbuilduser
    # passwd rpmbuilduser

    Edite o arquivo /etc/sudoers e adicione na última linha:
    rpmbuilduser ALL=(ALL) ALL

    Faça o download dos pacotes do courier:
    # wget http://sourceforge.net/projects/courier/files/courier-authlib/courier-authlib-0.62.4.tar.bz2
    # wget http://sourceforge.net/projects/courier/files/courier-imap/courier-imap-4.5.1.tar.bz2
    # wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2

    Alterne para o usuário “rpmbuilder” e prepare o ambiente para gerar os arquivos rpm
    # su rpmbuilduser

    # mkdir $HOME/rpm
    # mkdir $HOME/rpm/SOURCES
    # mkdir $HOME/rpm/SPECS
    # mkdir $HOME/rpm/BUILD
    # mkdir $HOME/rpm/SRPMS
    # mkdir $HOME/rpm/RPMS
    # mkdir $HOME/rpm/RPMS/i386
    # mkdir $HOME/rpm/RPMS/x86_64

    # echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros

    Crie os rpms do courier-authlib e instale os pacotes requeridos pelo ISPConfig
    # rpmbuild -ta courier-authlib-0.62.4.tar.bz2
    # sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-authlib-0.62.4-1.i386.rpm
    # sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-authlib-mysql-0.62.4-1.i386.rpm
    # sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-authlib-devel-0.62.4-1.i386.rpm

    Mesmo procedimento com o courier-imap
    # rpmbuild -ta courier-imap-4.5.1.tar.bz2
    # sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-imap-4.5.1-1.i386.rpm

    E finalmente o maildrop…
    # rpmbuild -ta maildrop-2.0.4.tar.bz2
    # sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/maildrop-2.0.4-1.i386.rpm

    Opcionalmente, volte para o usuário root, copie os rpms para /usr/src e delete o usuário rpmbuilder
    # exit
    # mv /home/rpmbuilduser/rpm/ /usr/src/
    # userdel -r rpmbuilduser

    Edite novamente o arquivo /etc/sudoers e remova a linha adicionada anteriormente.

    Atualize o clam
    /usr/bin/freshclam

    Ative o sistema de quotas
    Edite o arquivo /etc/fstab e na linha referente a partição em que as quotas devem ser acionadas, adicione as opções “,usrquota,grpquota“:
    Exemplo:
    /dev/sda3 / ext3 defaults,usrquota,grpquota 1 1
    Para ativar o sistema de quota (assumindo que você está utilizando quota na /)
    # touch /aquota.user /aquota.group
    # chmod 600 /aquota*
    # mount -o remount /
    # quotacheck -avugm
    # quotaon -avug

    Agora que todos os serviços estão instalados, inicialize eles e verifique se todos subiram corretamente.
    # service amavisd start
    # service clamd start
    # service courier-authlib start
    # service courier-imap restart
    # service httpd start
    # service mydns start
    # service mysqld start
    # service postfix start
    # service pure-ftpd start
    # service saslauthd start

    Altere o runlevel dos serviços utilizados para que estes inicializem durante o boot:
    # chkconfig --level 345 amavisd on
    # chkconfig --level 345 clamd on
    # chkconfig --level 345 courier-authlib on
    # chkconfig --level 345 courier-imap on
    # chkconfig --level 345 httpd on
    # chkconfig --level 345 mydns on
    # chkconfig --level 345 mysqld on
    # chkconfig --level 345 postfix on
    # chkconfig --level 345 pure-ftpd on
    # chkconfig --level 345 saslauthd on

    Defina uma senha de root para o banco mysql:
    # mysqladmin -u root password senhacomplexa (mas é complexa mesmo viu?)

    Nesta altura, todas as dependências e serviços que o ISPConfig estão instalados e rodando corretamente, então podemos inicializar a instalação.

    Download do ISPConfig
    # cd /usr/src
    # wget http://www.ispconfig.org/downloads/ISPConfig-3.0.1.x.tar.gz

    Descompacte e rode o script de instalação
    # tar xvfz ISPConfig-3.0.1.x.tar.gz
    # cd ispconfig3_install/install/
    # php -q install.php

    Quando você executar o install.php, você precisará responder algumas perguntas específicas do seu servidor, para a maioria delas, uma resposta satisfatória já vem definida.
    Durante a execução deste script, todos os serviços serão configurados automagicamente de acordo com as especificações do ISPConfig. Não será necessário editar nenhum arquivo manualmente.

    Após rodar o script de instalação, acesse o painel do ISPConfig em http://ipdoservidor:8080 e entre com o usuário admin senha admin (mude imediatamente esta senha)

    Observação: Durante o yum inicial, você realizou a instalação do squirrel e este encontra-se disponível em http://ipdoservidor/webmail ;)

    Pronto, seu ISPConfig deve estar completamente instalado, agora basta dedicar um pouco de tempo para configurar de acordo com as suas necessidades.

    Se você chegou neste post procurando uma alternativa para o cPanel e por algum motivo não gostou do ISPConfig, cito algumas outras opções que podem agradar:

    Domain Technologie Control
    ispCPOmega – (Fork do VHCS) – Demo – admin / admin123
    RavenCoreDemo – Login: admin / ravencore
    GNUPanel
    Virtualmin GPL

    Adicionando o repositório rpmforge no CentOS 5.X

    Muitos pacotes não estão disponíveis nos repositórios oficiais do CentOS, entretanto existem diversos repositórios de terceiros que cobrem esta lacuna, um dos repositórios mais famosos é o rpmforge. Neste post explico como realizar a instalação deste repositório no CentOS 5.x.

    Instale o pacote yum priorities com o comando:
    # yum install yum-priorities
    O objetivo do priorities é priorizar pacotes dos repositórios oficiais do CentOS, ou seja, se um pacote existir no rpmforge e no repositório oficial será instalada a versão do repositório com maior prioridade (normalmente os oficiais), desta forma minimizando problemas gerados por pacotes externos substituindo pacotes oficiais.
    Você pode instalar o rpmforge sem esta proteção, mas para a sua saúde e pela estabilidade do seu servidor, recomendo seriamente a instalação deste plugin.

    Instalando o rpmforge:
    # wget rpmforge-i386 ou rpmforge-x86_64
    # rpm -ivh rpmforge*
    # rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

    Configurando o priorities:
    Edite o arquivo /etc/yum/pluginconf.d/priorities.conf, e verifique se o plugin priorities está habilitado
    Agora edite os seus repositórios dentro de /etc/yum.repos.d/ e ajuste a prioridade de cada um deles.
    É recomendável utilizar:
    [base], [addons], [updates], [extras] -> priority=1
    [centosplus],[contrib] -> priority=2
    Outros repositórios (ex: rpmforge) -> priority=10 (ou maior)

    Rode o yum e verifique se o plugin “priorities” foi carregado corretamente. ex:
    # yum check-update
    Loaded plugins: fastestmirror, priorities
    Loading mirror speeds from cached hostfile
    * rpmforge: apt.sw.be
    * base: ftp.cica.es
    * updates: ftp.cica.es
    * contrib: ftp.cica.es
    * centosplus: ftp.cica.es
    * addons: ftp.cica.es
    * extras: ftp.cica.es
    540 packages excluded due to repository priority protections

    Fonte: http://wiki.centos.org

    Howto: Filtro de emails usando Spamassassin + Postfix + ClamAV + MailScanner + MailWatch

    O MailWatch é uma interface Web para o gerenciamento do MailScanner + ClamAV + SpamAssassin + Postfix, existem diversas formas de implementar uma solução para filtragem de emails, mas a minha preferência é configurar um servidor (virtual ou não) separado para esta função, principalmente devido ao fato do processo de filtragem consumir uma boa parte de recursos do hardware em servidores mais movimentados. Outra grande vantagem deste método, é que ele é compatível com qualquer serviço de email (zimbra, exchange, groupwise, etc….).

    Neste post vou explicar como montar um servidor para filtrar todo o seu tráfego de emails, realizando a remoção do “lixo eletrônico” antes de entregar as mensagens para o seu servidor principal de emails.

    Partindo de uma instalação mínima do CentOS 5.3, remova o “sendmail”
    # yum remove sendmail
    Instale o postfix + serviços necessários
    # yum install postfix mysql-server php-mysql php-gd  httpd gcc spamassassin patch rpm-build

    Instalando o clamAV:
    Baixe os pacotes RPM do clamav em: http://packages.sw.be/clamav/ e instale com o comando:
    # rpm -ivh clam*
    Preparing...       ############ [100%]
    1:clamav-db        ############ [100%]
    2:clamav           ############ [100%]
    3:clamav-devel     ############ [100%]
    4:clamd            ############ [100%]

    Instalando o Mailscanner:
    Faça o download do tar.gz contendo os pacotes RPM
    # wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.XX.XX-X.rpm.tar.gz
    # tar xvfz MailScanner-4.XX.XX-X.rpm.tar.gz
    # cd MailScanner-4.XX.XX-X
    # ./install.sh

    Agora edite o arquivo /etc/MailScanner/MailScanner.conf
    %org-name% = Nome da Empresa
    %org-long-name% = Nome completo da empresa
    Run As User = postfix
    Run As Group = postfix
    Incoming Queue Dir = /var/spool/postfix/hold
    Outgoing Queue Dir = /var/spool/postfix/incoming
    MTA = postfix
    Virus Scanners = clamd
    Clamd Socket = /tmp/clamd.socket
    Use SpamAssassin = yes
    SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

    Instalando o Mailwatch:
    Faça o download da última versão “stable” do mailwatch em http://mailwatch.sourceforge.net
    Descompacte o pacote de instalação e entre no diretório mailwatch-1.0.X
    # mysql -u root < create.sql

    Crie o usuário mailwatch no mysql com permissões completas na base mailscanner
    # mysql -u root
    > GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY 'minhasupersenha';
    > GRANT FILE ON *.* TO mailwatch@localhost IDENTIFIED BY 'minhasupersenha';

    Edite o arquivo MailWatch.pm e ajuste os parâmetros db_user e db_pass de acordo com o usuário e senha criados.
    my($db_user) = 'mailwatch';
    my($db_pass) = 'minhasupersenha';

    Agora copie o arquivo MailWatch.pm para o CustomFunctions do MailScanner
    # cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions

    Criando um usuário para o MailWatch (este é o usuário com permissões de administrador, após criar este usuário, os outros podem ser geridos através da interface Web):
    # mysql mailscanner -u mailwatch -p
    Enter password: ******
    > INSERT INTO users (username, password, fullname, type) VALUES ('admin',md5('senhasegura'),'Administrator','A');

    Movendo a interface web do Mailwatch para o root dir do apache:
    # mv mailscanner/ /var/www/html/

    Ajustando permissões:
    # cd /var/www/html/mailscanner/
    # chown root:apache images
    # chmod ug+rwx images
    # chown root:apache images/cache
    # chmod ug+rwx images/cache

    Crie o arquivo conf.php com base no conf.php.example
    # cp conf.php.example conf.php
    Agora edite o conf.php e ajuste os campos: DB_USER e DB_PASS.

    Integrando o MailScanner e o Mailwatch
    Pare o MailScanner
    # service MailScanner stop

    Edite o arquivo /etc/MailScanner/MailScanner.conf e verifique se estas opções estão ajustadas

    Always Looked Up Last = &MailWatchLogging
    Detailed Spam Report = yes
    Quarantine Whole Message = yes
    Quarantine Whole Message As Queue Files = no
    Include Scores In SpamAssassin Report = yes
    Quarantine User = root
    Quarantine Group = apache (this should be the same group as your web server)
    Quarantine Permissions = 0660

    Opcionalmente (para facilitar o debug)
    Always Include SpamAssassin Report = yes

    Para integrar Whitelist/Blacklist ao mailwatch:
    Edite o arquivo SQLBlackWhiteList.pm
    Procure pela função “CreateList” e nela defina as informações da sua base de dados.
    my($db_name) = 'mailscanner';
    my($db_host) = 'localhost';
    my($db_user) = 'mailwatch';
    my($db_pass) = 'minhasupersenha';

    # cp SQLBlackWhiteList.pm /usr/lib/MailScanner/MailScanner/CustomFunctions

    Agora vamos configurar o postfix para fazer relay das mensagens do domínio:

    Edite o arquivo /etc/postfix/main.cf
    relay_domains = exemplo.com.br

    Agora edite /etc/postfix/transport e insira
    exemplo.com.br       smtp:172.22.10.93
    Execute:
    # postmap /etc/postfix/transport

    Estas duas últimas configurações farão com que o postfix permita o relay de mensagens do domínio exemplo.com.br
    Já o Transport, irá informar para o postfix que as entregas para o domínio exemplo.com.br devem ser no ip 172.22.10.93

    Após realizar testes (muito importante para um ambiente de produção), edite a zona de DNS do seu domínio, e altere a sua entrada MX de forma que aponte para o filtro de emails (e não para o seu mailserver). Desta forma todas as mensagens enviadas para exemplo.com.br cairão no sistema de filtragem e se estiverem limpas serão encaminhadas para o seu servidor de emails.

    Para acessar o Mailwatch: http://ip_do_mailwatch/mailscanner

    Computação em Nuvem: OpenGoo – Web Office

    Os desenvolvedores do OpenGoo consideram este software, um “Web Office“, mas existem várias outras classificações que também se encaixariam, como por exemplo: Plataforma de colaboração Online, Ferramenta para gestão de projetos, Groupware, ou outras similares.

    Para melhor compreensão, podemos comparar o OpenGoo como um equivalente ao Google Apps. Um Office via Web com ferramentas para edição e gestão de documentos, gestão de projetos através de tasks e milestones, emails, calendário compartilhado, entre outros recursos.

    Para conhecer um pouco mais sobre o OpenGoo, assista o video abaixo.

    Ou visite o demo clicando aqui.

    Uma grande vantagem do OpenGoo é que ele pode ser instalado sem nenhuma complicação em praticamente qualquer servidor com php+mysql.
    Para maiores informações, visite o site do projeto http://www.opengoo.org

    Proxmox VE – Cluster OpenVZ/KVM em 30 minutos

    O Proxmox VE é uma distribuição linux baseada em debian focada exclusivamente em virtualização, utilizando OpenVZ (virtualização em container) e KVM (Virtualização completa).
    Ele oferece uma interface de gerenciamento via Web onde praticamente todas as ações de manutenção podem ser realizadas.
    O grande diferencial do Proxmox VE é o suporte a cluster nativo, as máquinas virtuais podem ser movidas de um servidor para outro com 2 ou 3 cliques do mouse e com um mínimo de downtime (apenas alguns segundos) e todo o gerenciamento dos servidores do cluster é realizado em um ponto central através da interface web.
    Confira no video abaixo uma máquina virtual sendo migrada online!

    Apesar do Proxmox VE ser um produto relativamente novo (primeira versão estável lançada em 29/10/2008) posso afirmar que por ser Open Source e com a sua maneira simplificada de gerenciar via web um cluster com 2 ambientes virtuais totalmente distintos, está rapidamente ganhando espaço no mercado.

    Links do Proxmox VE
    Proxmox VE Cluster
    Container and Full Virtualization
    Backup – Restore – Live Migration
    Proxmox Download

    Posts Relacionados:
    Introdução a Virtualização
    Howto OpenVZ no CentOS 5.x

    Observação: Importante lembrar que o Proxmox VE não possuí suporte a processadores de 32bits. Você pode instalar o Proxmox VE com suporte ao OpenVZ em qualquer computador de 64bits mas para utilizar o KVM, será necessário um CPU com suporte nativo a Virtualização (Intel VT ou AMD-V)

    Howto: OpenVZ no CentOS 5.x

    Este tutorial é dividido em 5 partes:
    1- Introdução ao OpenVZ
    2- Instalação do OpenVZ no CentOS 5.X
    3- Templates
    4- Operações básicas do OpenVZ
    5- Leitura recomendada
    Ao fim deste tutorial, você terá o OpenVZ instalado e rodando com pelo menos uma máquina virtual.

    1- Introdução ao OpenVZ

    OpenVZ utiliza virtualização em containers para Linux. OpenVZ cria múltiplos containers de forma segura e isolada (também conhecidos como VE ou VPS) no mesmo servidor físico, permitindo uma melhor utilização do servidor e assegurando-se que as aplicações não entrem em conflito. Cada container roda exatamente como um servidor individual; um container pode ser reiniciado, ter os seus próprio usuários, memória, processos, aplicativos, bibliotecas e arquivos de configuração.
    OpenVZ é um Software Livre, disponível na Licença GNU GPL
    OpenVZ é a base do Parallels Virtuozzo Containers, uma solução comercial de virtualização oferecida pela Parallels. O projeto OpenVZ é patrocinado por Parallels.
    Tradução Livre – OpenVZ Wiki

    Para maiores informações sobre esta e/ou outras formas de virtualização consulte os Links:
    Eduardo Silva – Introdução a Virtualização
    OpenVZ Wiki – Introduction to Virtualization
    OpenVZ – Virtualization in Linux
    Wikipedia – OpenVZ

    Video: A brief Introduction to OpenVZ – Scott Dowdle
    [video:google:3811575606473768400]

    2- Instalação do OpenVZ no CentOS 5.X
    Pré-requisitos:
    * Desabilitar o SELinux
    * Partição separada para /vz/private (Recomendável, caso contrário as Quotas não funcionarão para as máquinas virtuais)

    Instalando o repositório do OpenVZ

    # wget http://download.openvz.org/openvz.repo -P /etc/yum.repos.d/
    # rpm –import http://download.openvz.org/RPM-GPG-Key-OpenVZ

    Instalando o Kernel:

    # yum install ovzkernel

    Teoricamente, após instalar o ovzkernel pelo yum, o grub já estará configurado para carregar o novo kernel no próximo boot, mesmo assim, verifique o arquivo /boot/grub/menu.lst e verifique se o novo kernel está na lista como default. Caso não esteja, a configuração deve ficar mais ou menos assim:

    title CentOS (2.6.18-128.1.1.el5.028stab062.3)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-128.1.1.el5.028stab062.3 ro root=LABEL=/
    initrd /initrd-2.6.18-128.1.1.el5.028stab062.3.img

    Edite o arquivo /etc/sysctl.conf e edite os parâmetros das opções listadas abaixo

    net.ipv4.ip_forward = 1
    net.ipv4.conf.default.proxy_arp = 0
    net.ipv4.conf.all.rp_filter = 1
    kernel.sysrq = 1
    net.ipv4.conf.default.send_redirects = 1
    net.ipv4.conf.all.send_redirects = 0

    Reinicie o servidor, e verifique se o kernel que foi instalado anteriormente está rodando:

    # uname -a
    Linux ovztest.exemplo.com.br 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Tue May 5 17:31:34 MSD 2009 i686 i686 i386 GNU/Linux

    Agora instale as principais ferramentas de gerenciamento do OpenVZ utilizando o YUM:

    # yum install vzctl vzquota
    # yum install vzpkg vzyum vzrpm43-python vzrpm44-python vzctl-lib (Requer python 2.2, 2.3 ou 2.4. Não funciona com python 2.5 ou com o kernel de 64bits)

    Inicialize o serviço “vz” e observe se este carregou corretamente.

    # service vz start
    Starting OpenVZ: [ OK ]

    3- Templates
    O OpenVZ utiliza templates de sistemas operacionais para criar um novo container. Neste tutorial, iremos utilizar templates pré-criados disponíveis em: http://wiki.openvz.org/Download/template/precreated escolha a sua distribuição favorita e faça o download. Ex: centos-5-x86.tar.gz

    Caso queira criar o seu próprio template, visite a Wiki do OpenVZ e procure as intruções para criar um template da distribuição escolhida. Alguns exemplos:
    * Creating a CentOS 5.0 Template
    Gentoo template creation

    Observar que o OpenVZ permite rodar distribuições distintas de Linux no mesmo servidor.
    Coloque o(s) seu(s) template(s) escolhido(s) “SEM DESCOMPACTAR” em /vz/template/cache/

    4- Operações básicas do OpenVZ
    É importante observar que o OpenVZ utiliza números (CTID) para identificar as máquinas virtuais. A faixa de 0 a 100 é reservada para o OpenVZ e não deve ser utilizada (principalmente o ID 0). Uma recomendação para evitar conflitos na migração de VPSs entre servidores e facilitar a identificação (saber que o VPS XXXX está no servidor YY), seria utilizar “pre-fixos” para cada servidor. Exemplo
    Servidor 1 – CTID começa por 1. EX: 1101
    Servidor 2 – CTID começa por 2. EX: 2135

    Criando um VPS:

    # vzctl create 101 –ostemplate centos-5-x86 –hostname vps1.exemplo.com.br
    Unable to get full ostemplate name for centos-5-x86
    Creating container private area (centos-5-x86)
    Performing postcreate actions
    Container private area was created

    O Comando acima irá criar uma máquina virtual com o CTID 101 utilizando o template centos-5-x86 com o hostname vps1.exemplo.com.br

    Configurando a rede do container:

    # vzctl set 101 –ipadd 192.168.100.223 –save
    Saved parameters for CT 101
    # vzctl set 101 –nameserver 192.168.100.223 –save
    Saved parameters for CT 101

    Configurando o container para inicializar durante o boot

    # vzctl set 101 –onboot yes –save
    Saved parameters for VPS 101

    Inicializando o container:

    # vzctl start 101
    Starting container …
    Container is mounted
    Adding IP address(es): 192.168.100.223
    Setting CPU units: 1000
    Configure meminfo: 65536
    Set hostname: vps1.exemplo.com.br
    File resolv.conf was modified
    Container start in progress…

    Lista dos VPSs hospedados no servidor:

    # vzlist
    CTID NPROC STATUS IP_ADDR HOSTNAME
    101 12 running 192.168.100.223 vps1.exemplo.com.br

    Entrando no VPS:

    # vzctl enter 101
    entered into CT 101
    [root@vps1 /]# uname -a
    Linux vps1.exemplo.com.br 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Tue May 5 17:31:34 MSD 2009 i686 i686 i386 GNU/Linux
    [root@vps1 /]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/simfs 1.0G 492M 533M 48% /
    none 505M 4.0K 505M 1% /dev

    Executando um comando de fora do VPS:

    # vzctl exec 101 service sshd start
    Starting sshd: [ OK ]

    Realizando um backup (dump) completo de todas as máquinas virtuais hospedadas no servidor (sem interromper os serviços):

    # vzdump –snapshot –compress –dumpdir /backup –all

    Parando o VPS

    # vzctl stop 101
    Stopping container …
    Container was stopped
    Container is unmounted

    Destruindo um VPS (preciso avisar que todos os arquivos que estão contidos no container serão perdidos para sempre?) :P
    # vzctl destroy 101
    Destroying container private area: /vz/private/101
    Container private area was destroyed

    Restaurando um backup:

    vzdump –restore vzdump-101.tgz 101

    5- Leitura recomendada
    Abaixo alguns links com leitura recomendada
    OpenVZ User’s guide (Completo, mas principalmente a o capítulo Managing Resources)
    OpenVZ Wiki
    MediaWiki – OpenVZ

    Qualquer dúvida, problema, correção elogio ou xingamento, utilize o campo de comentários logo abaixo :)