segunda-feira, 16 de março de 2009

Recuperando base Ldap do Zimbra

Após um pequeno crash de energia elétrica no servidor de E-Mails perdi a base ldap e ficou aparecendo a seguinte mensagem:

$ zmcontrol start
Host mail.exemplo.com.br
Starting ldap...Done.
FAILED
Failed to start slapd. Attempting debug start to determine error.
bdb(): PANIC: fatal region error detected; run recovery
bdb_db_close: txn_checkpoint failed: Invalid argument (22)
backend_startup_one: bi_db_open failed! (-30978)
bdb_db_close: alock_close failed

Recuperando a Base ldap:

acesse a base

$zmcontrol stop
$tar -cjvpf openldap-data-BACKUP.tar.bz2 /opt/zimbra/openldap-data/
$cd /opt/zimbra/openldap-data/
$/opt/zimbra/sleepycat/bin/db_recover

$cd /opt/zimbra/openldap-data/openldap-data/
$/opt/zimbra/sleepycat/bin/db_recover

$zmcontrol start

* A princípio tudo ficará ok com esses passos.

Caso o mta apresente algum problema, vá até a pasta
/opt/zimbra/postfix/spool e verifique se as permissões estão corretas (seus devidos donos "chown"):

$ ls -la
total 492
drwxr-xr-x 16 root root 4096 Jul 19 2008 .
drwxr-xr-x 7 root root 4096 Jul 19 2008 ..
drwx------ 2 postfix root 180224 Mar 16 17:07 active
drwx------ 2 postfix root 4096 Mar 16 17:06 bounce
drwx------ 2 postfix root 4096 Dec 2 2007 corrupt
drwx------ 18 postfix root 4096 Jul 19 2008 defer
drwx------ 18 postfix root 4096 Jul 19 2008 deferred
drwx------ 2 postfix root 4096 Dec 2 2007 flush
drwx------ 2 postfix root 4096 Dec 2 2007 hold
drwx------ 2 postfix root 90112 Mar 16 17:07 incoming
drwx-wx--- 2 postfix postdrop 167936 Jan 8 14:49 maildrop
drwxr-xr-x 2 root root 4096 Jan 27 08:50 pid
drwx------ 2 postfix root 4096 Mar 15 22:32 private
drwx--x--- 2 postfix postdrop 4096 Mar 15 22:32 public
drwx------ 2 postfix root 4096 Dec 2 2007 saved
drwx------ 2 postfix root 4096 Mar 16 16:16 trace

feito isso:
$zmcontrol restart

um abraço.

quinta-feira, 5 de março de 2009

Aumentando a Memória Java do Openfire no Opensolaris.

Com o crescimento dos usuários e a necessidade de gerar logs fui obrigado a correr atras de documentação para Opensolaris, como não achei, fiz uma mesclagem de chutômetro com parâmetros do FreeBSD e funcionou, no meu caso dentro de uma Zone:

Sun Microsystems Inc. SunOS 5.11 snv_101b November 2008
root@zoneopenfire:~# cd /opt/openfire/bin/
root@zoneopenfire:/opt/openfire/bin#
root@zoneopenfire:/opt/openfire/bin# vim openfire.sh

Adicione entre as "aspas" a quantidade de memória Java com o parâmetro "-Xmx256m" onde 256MB poderão ser alterados a quantidade de memória desejada ou disponível.

OPENFIRE_OPTS="${OPENFIRE_OPTS} -DopenfireHome=${OPENFIRE_HOME} -Xmx256m"

Feito isso, reinicie o Openfire

root@zoneopenfire:/opt/openfire/bin#sh openfire.sh &

Confira no Painel de Controle do Openfire:
Ambiente Versão e Fabricante da JVM: 1.6.0_12 Sun Microsystems Inc. -- Java HotSpot(TM) Server VM Servidor de Aplicação: jetty-6.1.x Host Name: zoneopenfire SO / Hardware: SunOS / x86 Idioma / Fuso Horário: pt_BR / Brasilia Time (-3 GMT) Memória do Java
65.50 MB of 253.19 MB (25.9%) used


um abraço...

quarta-feira, 4 de março de 2009

Criando uma lx-Zone Debian - Opensolaris 2008.11

Resolvi escrever a criação de uma lx-Zone Debian, por não achar uma documentação em português sobre o assunto. Sou usuário Debian em desktop e sinto falta de algumas aplicações Linux no ambiente Opensolaris.

Vamos ao que interessa...


Criando uma zone:

zonecfg -z zonedebian
zoneopenfire: No such zone configuredUse 'create' to begin configuring a new zone.
zonecfg:zonedebian> create -t SUNWlx
zonecfg:zonedebian> set zonepath=/export/home/zonedebian
zonecfg:zonedebian> set autoboot=true
zonecfg:zonedebian> add net
zonecfg:zonedebian:net> set address=10.1.1.9/24
zonecfg:zonedebian:net> set physical=rge0
zonecfg:zonedebian:net> set defrouter=10.1.1.254
zonecfg:zonedebian:net> end
zonecfg:zonezonedebian> commit
zonecfg:zonedebian> exit

Feito isso vamos ao debootstrap em um debian (no caso qualquer máquina já existente):

#apt-get update && apt-get install debootstrap -y

#mkdir /tmp/zonedebian
#debootstrap --arch i386 etch /tmp/zonedebian http://mirrors.acm.jhu.edu/debian/

O que essa joinha faz??? ele baixa a imagem inicial de um Debian.

#cd /tmp/zonedebian
#tar -cvpf lx-brandz-etch-root.tar.gz .

Copie a sua zone usando scp.

Instalando a lx-zone:


baixe o arquivo BASE de:
http://trisk.acm.jhu.edu/lx-brandz-base-20080413.tar

Há a necessidade de usar um arquivo Base com pastas "RPM" ex: /etc/sysconfig

#zoneadm -z lunix install -d /tmp/lx-brandz-base-20080413.tar
agora use sua imagem do debootstrap ou baixe uma de:
http://trisk.acm.jhu.edu/lx-brandz-etch-root.tar.gz

#cd /export/home/zonedebian/root
#tar -xvf /export/home/joaocep/lx-brandz-etch-root.tar.gz .
#perl -pi -e "s,tty1,console,; s,^([23456]),#\1," etc/inittab

O primeiro BOOT

#zoneadmin -z zonedebian boot
#zlogin -C debian

Se tudo der certo como no caso abaixo:

root@opensolaris1:~# zlogin -C debian
[Connected to zone 'debian' console]
.
ln: creating symbolic link `/dev/MAKEDEV' to `/sbin/MAKEDEV': Function not implemented
Not starting internet superserver: no services enabled.
Starting periodic command scheduler: crond.

Debian GNU/Linux 4.0 exia console

exia login: root
Linux exia 2.4.21 BrandZ fake linux i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
exia:~#


Configure naturalmente...
Um abraço:

OBS: eu preferi usar um debootstrap do meu notebook


Com base em:
http://trisk.acm.jhu.edu/etch-zone.html

Script para rodar Vbox OnBoot - Opensolaris

Houve a necessidade de subir máquinas onboot, garimpei em fóruns e fiz algumas alterações:

crie um arquivo em /etc/init.d/startVM

#!/bin/sh

LD_LIBRARY_PATH=/opt/VirtualBox:/opt/VirtualBox/qtgcc/lib:/lib:/opt/sfw/lib
LD_NODIRECT=1
PATH=$PATH:/opt/VirtualBox
export LD_LIBRARY_PATH LD_NODIRECT PATH

for VM in `VBoxManage list vms | grep "^Name:" | cut -f2 -d":" | tr -d ' '` ; do

#VBoxManage startvm XPteste -type vrdp >/tmp/XPteste.log 2>&1 (/opt/VirtualBox/VBoxHeadless --startvm $VM) &
#/opt/VirtualBox/VBoxManage startvm FreeBSD -type vrdp &

done

testar se for o caso

#VBoxSDL -vm "FreeBSD"

tudo ok, adicione a entrada

#cd /etc/rc3.d
#chmod +x startVM
#ln -s ../init.d/startVM S99startVM

um abraço.

VPN utilizando VIVO-3g em Clientes Debian + VTun

A um bom tempo havia a necessidade de acesso em um local de estrutura deficiente, operadoras não passavam "cabos" e ninguém operava nada com qualidade, até que insisti muito com meu chefe e ele aceitou o desafio de colocar uma vpn usando vtun em cima de um sinal VIVO-3g.

- Debian 5.0 (basic install) como Cliente
IP - 192.168.1.1

- FreeBSD 6.4 como Servidor Matriz
IP - 192.168.0.1

Adicionar apenas o source:
deb http://http.us.debian.org/debian stable main contrib

Em servidores debian:
#apt-get update && apt-get install openssh-server vtun vim squid -y

Em FreeBSD (minha Opção como servidor em um Link de verdade)
cd /usr/ports/net/vtun && make install clean

SERVIDOR

Adicione no final do arquivo /etc/rc.conf a entrada:

vtund_enable="YES"

Editando o vtund.conf no servidor

#####vtund.conf
# vtund.conf - servidor

options {
port 5000;
ifconfig /sbin/ifconfig;
route /sbin/route;
}

default {
type tun;
proto tcp;
compress lzo:9; #
encrypt yes; #por sua conta e risco :D
keepalive yes;
stat no;
speed 0;
multi killold;
}
joaocep {
passwd ;
up {
# configura interface ponto-a-ponto
ifconfig "%% 192.168.0.1 192.168.1.1 mtu 1450 netmask 255.255.0.0";
# adiciona rota para a rede da filial
route "add -net 192.168.1.0 192.168.1.1 255.255.255.0";
};
# se houver desconexao derruba rota e a interface tunX
down {
ifconfig "%% delete down";
route "delete 192.168.1.0";
};
}

#####EOF


CLIENTE

#####vtund.conf
#/etc/vtund.conf
riodejaneiro {
passwd ;
proto tcp;
compress yes;
type tun;
up {
ifconfig "%% 192.168.1.1 pointopoint 192.168.0.1 netmask 255.255.255.0";
route "add -net 192.168.0.0/24 gw 192.168.0.1";
};
down {
ifconfig "%% down";
route "del -net 192.168.0.0/24 gw 192.168.0.1";
};
}

####EOF

A vez do VIVO:

Configurado o vtun, passaremos a conexão com Vivo-3G.

No arquivo /etc/wvdial.com

####wvdial.com
[Dialer 3g]
Modem = /dev/ttyUSB0
Baud = 921600
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
Username = vivo
Password = vivo
Phone = *99#
Stupid mode = 1
Auto Reconnect = on
Auto DNS = on
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
ISDN = 0
Modem Type = Analog Modem
####EOF

adicione no final do arquivo /etc/ppp/options as 4 linhas abaixo:

####options
asyncmap 0xa0000
mru 1500
refuse-chap
ipcp-max-failure 30
####EOF

Feito isso teste se seu Vivo está OK.

#wvdial 3g

Com o vivo em perfeito funcionamento, vamos a conexão com a Matriz:

#vtund joaocep [IP-REAL-DA-MATRIZ]
*Sim, há a necessidade de um IP Válido! ou seu DNS (no-ip, cjb ou seja lá a gambiarra que você use)

Teste com um ping para o servidor Matriz

#ping 192.168.0.1


Se aceitou, trafegue pela sua rede - Belezura Meio caminho andado.

Basta acertar os Roteamentos se for o caso, isso não é necessário se for para uma única rede.

No servidor FreeBSD (adicione ao /etc/rc.local) :
#route add -net 192.168.1.0/24 192.168.1.1

No Cliente Linux
Adicione apenas as entradas no rc.local ou bootmisc.sh
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

Até ai, não há muito mistério...

Fazendo o VIVO subir no Boot

Crie um arquivo /etc/init.d/discador.sh

####matriz
#!/bin/bash
wvdial 3g &
####EOF

Crie outro arquivo /etc/init.d/vtun (remova o anterior se for o caso)

####vtun
sleep 30
vtund joaocep
[IP-REAL-DA-MATRIZ]
####EOF

OK, é uma Gambi! mas funciona, o sleep 30 faz o tempo da discagem para a Vivo e sem isso o vtund não conseguiria acessar o destino, pois daria uma bela mensagem de timeout no seu syslog.

Agora facilitando tudo no seu Cliente:

#cd /etc/rc2.d
#ln -s ../init.d/discador.sh S98discador
#ln -s ../init.d/vtun S99vtun

Teste com o reboot

um abraço.

Isso era para ser extremamente casual, mas o serviço é relativamente barato e dá para Rotear umas 12 máquinas em cima de um Vivo-3g, há inconvenientes certos com essa Gambiarra que eu não sugiro... mas quebra-se o maior galho para uma contingência.

Referência:
http://www.vivaolinux.com.br/artigo/Como-configurar-um-tunel-com-Vtun/?pagina=1