Criando um super computador com Raspberry PI

Tava demorando….

O pessoal da Universidade Southampton (Inglaterra) disponibilizou um tutorial (passo-a-passo) ensinando a criar um supercomputador com o diminuto Raspberry PI.

O tutorial pode ser conferido no link pi supercomputer southampton.

Fontes:

BR-Linux

University of Southampton

Anúncios

Melhorias no controle de SPAM & VIRUS no Zimbra

Integradando SPF, Razor & Pyzor ao SpamAssassin do Zimbra

Instalando spf query

SPF (Sender Policy Framework) é um sistema que tenta prevenir o envio de mensagens forjadas, faz isto através de configurações em seu DNS, quando um e-mail for enviado, o servidor checará as entradas TXT/SPF no seu servidor de DNS, e através dela saberá qual servidor pode entregar mensagens com origem em seu domínio, caso alguém esteja enviando mensagens @seudominio sem ser os servidores citados no registro TXT/SPF o servidor MTA pode ser configurado para recusá-la. É uma maneira bem eficiente de evitar problemas com seu dominio.

Instale a biblioteca para checagem spf

#Debian like

apt-get install libmail-spf-query-perl 

#RedHat like

yum install perl-Mail-SPF perl-Mail-SPF-Query

Instalando o razor2

O Razor2 é um sistema colaborativo, distribuido de filtro para deteccao e controle de spam.

Instale o razor2

#Debian like

apt-get install razor

#RedHat like

yum install perl-Razor-Agent razor-agents

Crie o diretorio do razor

mkdir /opt/zimbra/amavisd/.razor; chown -Rf zimbra:zimbra /opt/zimbra/amavisd/.razor

Agora torne-se zimbra (su zimbra) e crie a conta no razor

razor-admin -home=/opt/zimbra/amavisd/.razor -create
razor-admin -home=/opt/zimbra/amavisd/.razor -discover
razor-admin -home=/opt/zimbra/amavisd/.razor -register

Agora edite o arquivo /opt/zimbra/conf/spamassassin/v310.pre e descomente a linha referente ao razor

loadplugin Mail::SpamAssassin::Plugin::Razor2

Instalando o pyzor

O pyzor é uma rede de sistemas distríbuidos para controle de spam, este utiliza digest de mensagens para fazer análise e identificar o SPAM.

#Debina like

apt-get install pyzor

#RedHat like

wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh

yum install pyzor

Crie o diretorio do pyzor

mkdir /opt/zimbra/amavisd/.pyzor; chown zimbra:zimbra /opt/zimbra/amavisd/.pyzor

Agora como usuario zimbra (su zimbra)

zimbra@zcs:~/amavisd$ pyzor --homedir /opt/zimbra/amavisd/.pyzor discover
downloading servers from http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x
Traceback (most recent call last):
  File "/usr/bin/pyzor", line 8, in <module>
    pyzor.client.run()
  File "/var/lib/python-support/python2.5/pyzor/client.py", line 1005, in run
    ExecCall().run()
  File "/var/lib/python-support/python2.5/pyzor/client.py", line 184, in run
    self.servers  = self.get_servers(servers_fn)
  File "/var/lib/python-support/python2.5/pyzor/client.py", line 411, in get_servers
    servers.read(open(servers_fn))
  File "/var/lib/python-support/python2.5/pyzor/client.py", line 117, in read
    self.append(pyzor.Address.from_str(line))
  File "/var/lib/python-support/python2.5/pyzor/__init__.py", line 458, in from_str
    fields[1] = int(fields[1])
IndexError: list index out of range

Esse erro é normal, o pyzor tenta baixar o arquivo servers atualizado em http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x porém ele o arquivo não está disponível e retorna o erro.

Para resolver este problema, coloque a linha abaixo no arquivo servers dentro do diretório /opt/zimbra/amavisd/.pyzor, pois ele vai funcionar.

zimbra@zcs:/opt/zimbra$ echo "82.94.255.100:24441" > /opt/zimbra/amavisd/.pyzor/servers

Agora vamos fazer um teste para ver se nosso pyzor consegue se conectar no servidor.

zimbra@zcs:/opt/zimbra/amavisd/.pyzor$ pyzor --homedir /opt/zimbra/amavisd/.pyzor ping
82.94.255.100:24441     (200, 'OK')

Ajustando o spamassassin para trabalhar com razor2 e pyzor

Edite o arquivo /opt/zimbra/conf/spamassassin/local.cf

ok_languages en es
ok_locales en es
trusted_networks 127. 10.70. 192.168.
use_bayes 1
skip_rbl_checks 0
use_razor2 1
dns_available yes 

## Optional Score Increases
## Choose your preferred values...
score SPF_FAIL 10.000
score SPF_HELO_FAIL 10.000
score RAZOR2_CHECK 2.500
score PYZOR_CHECK 2.500
score BAYES_99 4.300
score BAYES_90 3.500
score BAYES_80 3.000
bayes_ignore_header Received: from mail3.example.com
bayes_ignore_header Received: from localhost
bayes_ignore_header Received: from mail1.example.com
bayes_ignore_header Received: from mail2.example.com

Ajustando configurações do amavisd-new

Edite o arquivo /opt/zimbra/conf/amavisd.conf

$sa_tag_level_deflt  = -10.0;  # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.6; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 15; # triggers spam evasive actions
$sa_dsn_cutoff_level = 15;    # spam level beyond which a DSN is not sent
$sa_quarantine_cutoff_level = 15;  # spam level beyond which quarantine is off

$sa_mail_body_size_limit = 512*1024; # don't waste time on SA if mail is larger
$sa_local_tests_only = 0;    # only tests which do not require internet access?

Integrando postgrey ao zimbra

O postgrey é uma implementação do conceito “greylist”. Muito eficiente no combate ao SPAM a greylist consiste em uma fila especial para entrega de mensagens, ele funciona da seguinte forma, quando um MTA tentar entregar uma mensagem para o seu servidor MTA o postgrey recusar a mensagem, dando um reject com codigo 550 (ou seja, tente mais tarde), se for um servidor real, configurado de acordo com as RFC’s de SMTP, ele tentará entregar a mensagem novamente depois de algum tempo, na segunda tentativa o postgrey libera o envio. Se for um sistema de SPAM ele simplesmente passa para a próxima mensagem de sua lista e não tenta entregar aquela mensagem que foi rejeitada. O postgrey é um sistema simples, com um conceito simples, porém extremamente funcional e diminui muito SPAM e VIRUS, seu fluxo de mensagens e sua fila vão diminuir bastante.

Veja neste gráfico como diminuiu a quantidade de spam e virus do servidor, analise o antes e depois.

Mailgraph greylisting.png

#Debina like

apt-get install postgrey

#RedHat like

yum install postgrey

Agora vamos configurar o postfix do zimbra para ususá-lo, edite o arquivo

vi /opt/zimbra/conf/postfix_recipient_restrictions.cf

E coloque a linha baixo antes da linha que contem a diretiva permite

check_policy_service inet:127.0.0.1:60000

Parametros de inicializacao do postgrey

Agora vamos ajustar os parametros de incializacao do postgrey, edite o arquivo /etc/defaults/postgrey e substitua

POSTGREY_OPTS="--inet=127.0.0.1:60000"

por

POSTGREY_OPTS="--inet=127.0.0.1:60000 --delay=60 --max-age=30"

Vamos entender o que é o que!

--delay especifica o tempo que um MTA ficara na greylist (por quanto tempo ele vai recusar msgs do mta).
--max-age significa por quanto tempo o postgrey vai manter essas informações em cache

whitelist do postgrey

O postgrey possue 2 tipos de whitelist, uma para clients e outra para recipients, vamos ajustar a whitelist de clients, edite o arquivo /etc/postgrey/whitelist_clients e caso queria colocar parte da esplanada dos ministérios lá, ficaria assim…

# ministerios do brasil 

planejamento.gov.br
comunicacoes.gov.br
mc.gov.br
mct.gov.br
mec.gov.br
desenvolvimento.gov.br
mds.gov.br
cultura.gov.br
cidades.gov.br
agricultura.gov.br
incra.gov.br
in.gov.br
mma.gov.br
mme.gov.br
mpas.gov.br
mre.gov.br
saude.gov.br
turismo.gov.br
presidencia.gov.br
brasil.gov.br
defesa.org.br
fazenda.gov.br
esporte.gov.br
integracao.gov.br
mj.gov.br
mte.gov.br
transportes.gov.br

# entidades com status de ministerio

agu.gov.br
cgu.gov.br
bcb.gov.br
nae.gov.br

# autarquias, agencias e programas ligados a ministerios

iti.gov.br
radiobras.gov.br
ebc.tv.br
onid.org.br
tvbrasil.org.br
serpro.gov.br
dataprev.gov.br

Salve a lista, reinicie o postgrey

/etc/init.d/postgrey restart

ou

invoke-rc.d postgrey restart

pronto, postgrey instalado, configurado e integrado!

referências

Instalando Xen 4.0 no Debian 6 Squeeze – 64 bits

1. Instalação

  •  Instalar o sistema debian 6 64 bits
  •  Atualizar o sistema

apt-get dist-upgrade

  •  Instalar os pacotes necessários

 apt-get install xen-hypervisor-4.0-amd64 linux-image-xen-amd64 xen-tools xen-qemu-dm vncviewer vnc4server xinetd xterm rsync

  • Após instalar o xen, é necessário corrigir a inicialização do mesmo no grub2

mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux && update-grub2

2. Configuração do Xen

  • Criar backup do arquivo de configuração padrão do xen

cp -a /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.bkp

  • Editar o arquivo /etc/xen/xend-config.sxp como exemplo entre abixo:

(logfile /var/log/xen/xend.log)
#(loglevel DEBUG)

(xend-http-server yes)
(xend-port 8000)
(xend-address localhost)

(xend-unix-server yes)

(network-script ‘network-bridge antispoof=yes’)

(vif-script vif-bridge)

(dom0-min-mem 196)

(enable-dom0-ballooning yes)

(total_available_memory 0)

(dom0-cpus 0)

(vnc-listen ‘0.0.0.0’)
(vncpasswd ‘senha_vnc’)

(keymap ‘pt-br’)

  • Editar o arquivo /etc/xen-tools/xen-tools.conf e verificar se as linhas abaixo estão descomentadas, caso contrário, descomentar:

serial_device = hvc0
serial_device = tty1
disk_device = xvda
pygrub=1

3. Configuração das DomUs Para-Virtualizados (Máquinas Virtuais)

  •  Criar diretório onde ficarão as servidores virtualizados

mkdir -p /nome_do_diretorio/domains

3.1 Configuração de DomU de Servidor existente via rsync

  •  Criar diretórios de virtualização do servidor

mkdir -p /nome_do_diretorio/domains/nome_do_servidor/tmp

  • Criar HD virtual do servidor

cd /nome_do_diretorio/domains/nome_do_servidor

qemu-img create -f raw hd_root.img 50G

mkfs.ext3 -F hd_root.img

qemu-img create -f raw hd_swap.img 2G

mkswap -f hd_swap.img

  •  Criar arquivo de configuração da servidor
  • use o editor de texto de sua preferência
  • cd /nome_do_diretorio/domains/nome_do_servidor
  • vim nome_do_servidor.cfg

import commands
krn_vers = commands.getoutput(‘uname -r’)

name = ‘nome_do_servidor’
builder = ‘linux’
ostype = ‘squeeze’ (Em distribuições debian-like, usar o nome da versão. Em distribuições centos, usar centos-{3,4,5 ou 6}, para demais, consulte tabela)
disk = [
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_root.img,xvda1,w’,
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_swap.img,xvda2,w’
]
memory = 1024 (Quantidade de memória)
vcpus = 1 (Quantidade de processadores)
arch = ‘amd64’ (Arquiterura do servidor: i386 ou amd64)
vif = [ ‘bridge=xenbr0’ ]
kernel = ‘/boot/vmlinuz-‘ + krn_vers
ramdisk = ‘/boot/initrd.img-‘ + krn_vers
root = ‘/dev/xvda1 ro’
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’
extra = ‘xencons=xvc console=xvc0 video=tty’
vfb = [ ‘type=vnc,vncdisplay=X,vnclisten=0.0.0.0,vncpasswd=senha_vnc’ ] (vncdisplay=X é o mesmo que: 590X, ou seja, vncdisplay=1 significa 5901)

  •  Liberar acesso ao servidor xen (Dom0) via rsync para o servidor que esta sendo virtualizado
  • use o editor de texto de sua preferência
  • vim /etc/rsyncd.conf

# arquivo de log
log file = /var/log/rsyncd.log

# host
[nome_do_servidor](modulo_do_servidor)
path = /nome_do_diretorio/domains/nome_do_servidor/tmp
read only = false
uid = root
hosts allow = ip_do_servidor
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.

  • Montar imagem do HD virtual no diretório tmp

cd /nome_do_diretorio/domains/nome_do_servidor

mount -o loop hd_root.img tmp

  • Rsync do servidor para o HD virtual
  • Logar no servidor que esta sendo virtualizado e começar o rsync

rsync -vaH –numeric-ids –stats –progress –exclude “/mnt/*” –exclude “/proc/*” –exclude “/sys/*” –exclude “/tmp/*” –exclude “/var/tmp/*” / ip_do_servidor::modulo_do_servidor

  • Finalizar instalação
  • cd /nome_do_diretorio/domains/nome_do_servidor/tmp
  • use o editor de texto de sua preferência
  • FSTAB – Debian/Ubuntu

vim etc/fstab —  (NÃO COLOCAR “/” ANTES DO ETC

/dev/xvda1       /               ext3    defaults,errors=remount-ro 0       1
/dev/xvda2       none            swap    sw              0       0
proc            /proc           proc    nodev,noexec,nosuid     0       0

  • INITTAB – Debian / CentOS

vim etc/inittab

–Incluir linha–

#Xen
co:2345:respawn:/sbin/agetty 38400 xvc0

  •  EVENT.D – Ubuntu

mkdir etc/event.d

vim etc/event.d/xvc0

# xvc0 Xen Console
# This service maintains a getty on xvc0 from the point the system is
# started until it is shut down again.
start on runlevel 2
start on runlevel 3
stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6
respawn
exec /sbin/agetty 38400 xvc0

  • Configurar rede, se necessário:

vim etc/network/interfaces

  • Configurar securetty

vim etc/securetty

–Incluir no final do arquivo–

# Xen console
xvc0

  •  Copiar arquivos do kernel

cp -a /lib/modules/$(uname -r) lib/modules

  • Desmontar imagem do HD virtual

cd /nome_do_diretorio/domains/nome_do_servidor

umount tmp

  • Inicializar máquina virtual

xm create -c /nome_do_diretorio/domains/nome_do_servidor

Se a rede foi configurada, o servidor pode ser acessado via ssh

Acesso via VNC, ip_do_servidor:X, onde X faz referência ao vncdisplay informado no arquivo de cfg da máquina virtual

3.2 Configuração de DomU de Servidor novo via debootstrap

  •  Criar diretórios de virtualização do servidor

mkdir -p /nome_do_diretorio/domains/nome_do_servidor/tmp

  •  Criar HD virtual do servidor

cd /nome_do_diretorio/domains/nome_do_servidor

qemu-img create -f raw hd_root.img 50G

mkfs.ext3 -F hd_root.img

qemu-img create -f raw hd_swap.img 2G

mkswap -f hd_swap.img

  • Criar arquivo de configuração da servidor
  • use o editor de texto de sua preferência
  • cd /nome_do_diretorio/domains/nome_do_servidor
  • vim nome_do_servidor.cfg

import commands
krn_vers = commands.getoutput(‘uname -r’)

name = ‘nome_do_servidor’
builder = ‘linux’
ostype = ‘squeeze’ (Em distribuições debian-like, usar o nome da versão. Em distribuições centos, usar centos-{3,4,5 ou 6}, para demais, consulte tabela)
disk = [
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_root.img,xvda1,w’,
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_swap.img,xvda2,w’
]
memory = 1024 (Quantidade de memória)
vcpus = 1 (Quantidade de processadores)
arch = ‘amd64’ (Arquiterura do servidor: i386 ou amd64)
vif = [ ‘bridge=xenbr0’ ]
kernel = ‘/boot/vmlinuz-‘ + krn_vers
ramdisk = ‘/boot/initrd.img-‘ + krn_vers
root = ‘/dev/xvda1 ro’
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’
extra = ‘xencons=xvc console=xvc0 video=tty’
vfb = [ ‘type=vnc,vncdisplay=X,vnclisten=0.0.0.0,vncpasswd=senha_vnc’ ] (vncdisplay=X é o mesmo que: 590X, ou seja, vncdisplay=1 significa 5901)

  •  Inicializar instalação do sistema básico

cd /nome_do_diretorio/domains/nome_do_servidor/tmp
debootstrap –arch amd64 squeeze . http://ftp.debian.org/debian
debootstrap –arch amd64 lucid . http://archive.ubuntu.com/ubuntu

  •  Finalizar instalação
  • cd /nome_do_diretorio/domains/nome_do_servidor/tmp
  • use o editor de texto de sua preferência
  • INITTAB – Debian / CentOS

vim etc/inittab

–Incluir linha–

#Xen
co:2345:respawn:/sbin/agetty 38400 xvc0

  •  EVENT.D – Ubuntu

mkdir etc/event.d

vim etc/event.d/xvc0

# xvc0 Xen Console
# This service maintains a getty on xvc0 from the point the system is
# started until it is shut down again.
start on runlevel 2
start on runlevel 3
stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6
respawn
exec /sbin/agetty 38400 xvc0

  • Configurar rede, se necessário:

vim etc/network/interfaces

  • Configurar securetty

vim etc/securetty

–Incluir no final do arquivo–

# Xen console
xvc0

  •  Copiar arquivos do kernel

cp -a /lib/modules/$(uname -r) lib/modules

  •  HOSTS

vim etc/hosts

127.0.0.1 localhost.localdomain localhost
ip_do_servidor nome_do_servidor.dominio_do_servidor nome_do_servidor

  •  HOSTNAME

vim etc/hostname

nome_do_servidor

  •  Configurar rede, se necessário

vim etc/network/interfaces

  •  Configurar securetty

vim etc/securetty

–Incluir no final do arquivo–

# Xen console
xvc0

  •  Copiar arquivos do kernel:

cp -a /lib/modules/$(uname -r) lib/modules

Se o sistema de destino não for 64bit, efetuar a cópia dos módulos 64bits

mkdir -p lib64/modules

cp -a /lib64/modules/$(uname -r) lib64/modules

  •  Desmontar imagem do HD virtual

cd /nome_do_diretorio/domains/nome_do_servidor

umount tmp

  •  Inicializar máquina virtual

xm create -c /nome_do_diretorio/domains/nome_do_servidor

Se a rede foi configurada, o servidor pode ser acessado via ssh

Acesso via VNC, ip_do_servidor:X, onde X faz referência ao vncdisplay informado no arquivo de cfg da máquina virtual

4. Bibliografia

Twitter de comandos Unix

O twitter @UnixCommandstem a proposta de reunir dicas de comandos que cabem em uma linha, bem como a de linkar páginas com conteúdo relevante para aumentar a eficiência do trabalho com a shell *nix.

Se você tem mais idéias de comandos ou de posts que possam ser úteis para os usuários de shell Unix e similares, estamos procurando por mais colaboradores. Para contribuir basta twittar para nós um comando. Nós iremos retwittar! Agradecemos antecipadamente aos colaboradores.

[referência: twitter.com]

[referência: facebook.com]

[fonte: br-linux.org]

Instalação do Arch Linux Sem Dor

De acordo com seu Guia de Instalação Oficial, o Arch Linux é uma Distribuição GNU/Linux otimizada e desenvolvida para arquiteturas i686 e x86_64 de forma independente. Para quem não sabe, a ideia inicial para a criação do Arch Linux veio da distribuição Linux chamada CRUX.

O CRUX é uma distribuição GNU/Linux bastante leve, otimizada para arquiteturas i686 e voltada para usuários mais experientes no mundo Linux. O foco principal desta distribuição é “keep it simple”, que reflete em um sistema de pacotes simples baseado em arquivos tar.gz, enquanto seu objetivo secundário é a utilização de novos recursos do Linux, ferramentas inovadoras e bibliotecas. O CRUX utiliza apenas pacotes estáveis na sua instalação, podendo requerer a compilação de alguns aplicativos.

O desenvolvimento do Arch é focado no equilíbrio entre simplicidade, elegância, retidão de código e programas “bleeding edge” (extremamente recentes). Sua leveza e simplicidade o torna fácil de estender e/ou moldar para qualquer tipo de sistema que você esteja construindo.

O Arch Linux é considerado por muitos como um Linux difícil de usar e, principalmente, de instalar. Mas vou provar neste post que isso é uma inverdade, e uma injustiça com essa poderosa distribuição Linux. Por isso, deixe seu medo de lado e saiba que qualquer usuário Linux, independente de seu conhecimento sobre o sistema, pode usar essa poderosa distribuição no seu dia-à-dia, seja no trabalho, em casa, ou mesmo em seus estudos (escola, faculdade).

Fonte: Mind Bending

Navegando anonimamente com TorK

“Todos que navegam na Internet são rastreáveis”.

Pacotes de dados de internet incluem não só os dados reais a serem enviados, mas também os cabeçalhos com informações de roteamento que são usados para orientar os pacotes para seus destinos. Mesmo se você usar criptografia como segurança extra, as informações de roteamento – que não podem ser criptografadas – podem revelar detalhes sobre o que você está fazendo, com quem você está falando, em quais serviços você está conectando, e os dados que você esta acessando. Intermediários (autorizados ou não) podem ver esses os dados e aprender mais sobre você.

Se você quer um nível mais elevado de anonimato, TorK pode fazer o trabalho. Ele usa a rede Tor (The Onion Router)  para oferecer uma maneira mais segura de navegar.

Artigo na íntegra no Linux.com (em Inglês).

Liberada versão 0.7.105 do Distribuição StressLinux

Carsten Schöme anunciou a liberação da release 0.7.105 do StressLinux, uma distribuição linux baseado no openSUSE e dedicada aos usuários que precisam, ou gostam, de testar e monitorar seus sistemas.

Texto do site oficial:

“A nova versão do StressLinux (0.7.105) está pronta para download. O sistema básico é agora o openSUSE 11.4 com drivers de rede atualizados para placas r8101, r8168 e r8169. Os pacotes específicos StressLinux também foram atualizados, bem como, incluidos BusyBox, iperf, lm_sensors, lshw, Memtest86, Memtest86 +, mprime, smartmontools (SVN r3314), x86info e cruncher-y. Há um problema conhecido, Memtest86 + não está funcionando a partir das imagens ISO. Este parece ser um problema entre o novo pacote e o SUSE Studio Build System e será corrigido em uma próxima versão…”

Changelog completo pode ser visto na página do projeto StressLinux.org.

Download:

StressLinux 32bits 0.7.105 (226MB)

StressLinux 64bits 0.7.105 (194MB)