[u]Procedimiento[/u]:
[b]INSTALAR ZIMBRA[/b]
Para quienes no conzcan Zimbra, es un conjunto de aplicaciones que proveen un groupware muy completo. Zimbra envia y recibe emails, administra usuarios, administra dominios virtuales para email, tiene mensajería instantánea y una interfaz webmail en AJAX para los usuarios finales. Tiene además herramientas colaborativas como wiki, maletín, cliente de mensajería integrado en la interfaz de webmail, libreta de direcciones, buscador, filtros de mensajes, etc. Una de las funcionalidades que utilizaremos mas adelante es su servidor LDAP el cuál brindará autenticación a samba y squid.
Las especificaciones completas de la version Opensource las pueden encontrar en [url]http://www.zimbra.com/products/[/url].
En el equipo destinado para la instalación de Zimbra quitaremos e instalaremos algunas dependencias:
aptitude purge exim4 exim4-base exim4-config exim4-daemon-light apache2
aptitude install libc6-i686 libidn11 curl file fetchmail libpcre3 libexpat1 libgetopt-mixed-perl libxml2 libstdc++6 libstdc++5 openssl libltdl3 sudo libgmp3c2 ssh openssh-server libmail-spf-query-perl sysstat libossp-uuid-perl sqlite3
Modificamos el archivo /etc/hosts para que contenga la siguiente información:
127.0.0.1 localhost.localdomain localhost
200.200.200.100 mail.midominio.com mail
Ejecutamos en la consola:
echo mail.midominio.com > /etc/hostname
Si estan instalando zimbra en un servidor que no tiene configuradas las direcciones declaradas en el DNS es seguro que adelante vamos a tener problemas, para evitar esto utilizaremos dnsmas para que el instalado de zimbra utilize un dns local manejado a nuestro antojo:
aptitude install dnsmasq
Editamos /etc/dnsmasq.conf para que contenga (reemplazar X.X.X.X con la direccion ip del equipo):
address=/mail.midominio.com/X.X.X.X
mx-host=midominio.com,mail.midominio.com,10
mx-host=mail.midominio.com,mail.midominio.com,15
mx-target=mail.midominio.com
Editamos /etc/resolv.conf para que contenga lo siguiente:
nameserver 127.0.0.1
/etc/init.d/dnsmasq restart
[b]IMPORTANTE[/b]: Debemos percatarnos de que no exista algún otro servicio SMTP/POP3/Http activado ó podríamos tener problemas con la instalación.
Descargamos zimbra y lo instalamos:
cd /usr/src
wget http://files.zimbra.com/downloads/5.0.7_GA/zcs-5.0.7_GA_2444.DEBIAN4.0.20080626025055.tgz
tar zvxf zcs-5.0.7_GA_2444.DEBIAN4.0.20080626025055.tgz
cd zcs-5.0.7_GA_2444.DEBIAN4.0.20080626025055
sh install.sh
El instalador nos indicará si nos hace falta algún paquete, afortunadamente tenemos a nuestro amigo aptitude para hacer este trabajo :)
Una vez constatadas las dependencias el instalador nos hará una serie de preguntas relacionadas con el nombre de dominio que vamos autilizar (midominio.com) y las contraseñas de administrador, debemos recordar que contraseña se esta asignando al usuario admin, ya que luego la requeriremos para la tareas de administración.
Una vez que zimbra este instalado, instalado vermos que existe un nuevo usuario en /etc/passwd llamado zimbra y un archivo /etc/init.d/zimbra que nos servirá para iniciar/detener el servicio.
Podemos saber si los servicios que zimbra provee estan activos ejecutando:
su - zimbra
zmcontrol status
Podremos ingresar en la consola de administración desde [url]https://mail.midominio.com:7071[/url] utilizando como nombre de usuario admin y la contraseña ingresada al momento de instalar. La guía del administrador de zimbra contiene abundante información acerca de como utilizarla:
[url]http://files.zimbra.com/website/docs/Zimbra%20OS%20Admin%20Guide.pdf[/url]
[url]http://www.zimbra.com/community/documentation.html[/url]
Para nuestro caso deberemos crear desde la interfaz de administración de zimbra un nuevo dominio llamado midominio.com, luego podremos crear usuarios para ese dominio.
Los usuarios creados desde la interfaz de administración pueden ingresar a su cliente webmail en [url]http://mail.midominio.com[/url]
[b]Migrar usuarios desde el archivo /etc/passwd a Zimbra[/b]
Copiar a /usr/src el archivo /etc/passwd que contiene los usuarios a migrar y eliminar los usuarios del sistema (root, adm, tape, audio, etc).
Creamos un archivo llamado passwd2zmprov que contenga el siguiente código perl:
#!/usr/bin/perl
#
# $Id: passwd2zmprov,v 1.2 2008/03/05 05:01:29 phil Exp $
=head1 NAME
passwd2zmprov - create zmprov commands from a passwd file
=head1 SYNOPSIS
usage: passwd2zmprov [options] [[passwd_file] ...] > commands.zmp
-help show a brief help message
-man show the full documentation
-domain [REQUIRED]
-cosid [default "Default COS"]
-password [default ""]
Getting a COS id:
zimbra$ zmprov gc | grep ^zimbraId:
Example converting CSV to zmprov commands:
$ ./passwd2zmprov -domain example.moc /etc/passwd > commands.zmp
Example provisioning ZCS accounts as 'zimbra' user:
zimbra$ zmprov < commands.zmp
=head1 DESCRIPTION:
Tool to create commands suitable for zmprov from a UNIX passwd file.
We don't use getpwent etc., because we are likely working on a copy
and not running as root.
See Also:
http://wiki.zimbra.com/index.php?title=Bulk_Create
=cut
use strict;
use warnings;
use File::Basename qw(basename);
use Getopt::Long qw(GetOptions);
use Pod::Usage qw(pod2usage);
my $prog = basename($0);
my ( @err, %option );
GetOptions( \%option, 'help|?', 'man', 'domain=s', 'cosid=s', 'password=s' )
or pod2usage( -verbose => 0 );
pod2usage( -verbose => 1 ) if ( $option{help} );
pod2usage( -verbose => 2 ) if ( $option{man} );
push( @err, "-domain is required" )
unless ( $option{domain} );
pod2usage( -verbose => 0, -message => map( "$prog: $_\n", @err ) )
if (@err);
warn("$prog: using Default COS\n") unless ( $option{cos_id} );
warn("$prog: reading passwd like entries from STDIN\n") unless (@ARGV);
my $date = localtime();
my $cosid = $option{cosid};
my $domain = $option{domain};
my $password = defined $option{password} ? $option{password} : "";
my $MIN_UID = 500; # skip system accounts like httpd
my $MAX_UID = 60000; # skip other system accounts like nfsnobody
# sanitize password
$password =~ s/\"/\\\"/g;
while (<>) {
chomp;
next if (/^\s*$/); # skip empty lines
my ( $uname, $x, $uid, $gid, $gecos, $dir, $shell ) = split( /:/, $_, 7 );
if ( $uid < $MIN_UID or $uid > $MAX_UID ) {
warn("$prog: skip $uname: $uid not between $MIN_UID and $MAX_UID\n");
next;
}
# assuming gecos format is First [[MI] [Last]], sanitize a little
$gecos =~ s/\"/\\\"/g;
my ( $fullname, $description ) = split( /\s*,\s*/, $gecos, 2 );
my ( $fname, $mname, $lname ) = split( " ", $fullname, 3 );
unless ( defined($lname) ) {
$lname = $mname;
undef($mname);
}
my $displayname = $fname
. ( defined($mname) ? " $mname" : "" )
. ( defined($lname) ? " $lname" : "" );
print(
qq{ca "$uname\@$domain" "$password"},
( defined($cosid) ? qq{ zimbraCOSid "$cosid"} : () ),
( defined($fname) ? qq{ givenName "$fname"} : () ),
( defined($lname) ? qq{ sn "$lname"} : () ),
( defined($uname) ? qq{ cn "$uname"} : () ),
( defined($displayname) ? qq{ displayName "$displayname"} : () ),
( defined($description) ? qq{ description "$description"} : () ),
qq{ zimbraNotes "Migrated $date"},
qq{ zimbraPasswordMustChange TRUE},
qq{\n},
);
}
=head1 HISTORY
2007/01/23, Version 1.0/1.1 Dlbewley
2008/03/04, Version 1.2 Plobbes
=cut
Le damos privilegios:
chmod a+x passwd2zmprov
Exportamos los usuarios de el archivo passwd de la siguiente manera:
perl /usr/src/passwd2zmprov -domain midominio.com -password unpasswordparadotos < /usr/src/passwd > usuarios.zmp
Y los importamos como usuarios de zimbra de la siguiente manera:
cat /usr/src/usuarios.zmp | su - zimbra -c zmprov
Comentarios
Es correcta tu afirmación a
Es correcta tu afirmación a no ser que hayas estado usando IMAP, en cuyo caso tendrías todos los e-mails, incluso los encviados, pero en /var/mail estarán solo los e-mails recibidos...
bye
;)
Páginas