Sei sulla pagina 1di 11

Manual de Zimbra Open Source edition v 6.

Laboratorio 6
Herramientas de Consola de Zimbra y Migracin
The table below lists the CLI commands in /opt/zimbra/bin.
Table 1 zimbra CLI Commands
CLI
Description
Start, stop, or find the status of zimbra LDAP
ldap
ldapsearch

Perform a search on an LDAP server

logmysqladmin

Send myslqadmin commands to the logger mysql

mailboxd

Start, stop, find the status of the mailboxd server

mysql

Enters interactive command-line MySQL session with the mailbox


mysql

mysql.server

Start, stop the SQL instance for the mailboxpackage

mysqladmin

Send admin commands to MySQL

postconf

Postfix command to view or modify the postfixconfiguration

postfix

Start, stop, reload, flush, check, upgrade-configuration of postfix

qshape

Examine postfix queue in relation to time andsender/recipient domain

zmaccts

Lists the accounts and gives the status ofaccounts on the domain

zmamavisdctl

Start, stop, restart, or find the status of theAmavis-D New

zmantispamctl

Start, stop, reload, status for anti-spam service

zmantivirusctl

Start, stop, reload, status for the anti-virus service

zmapachectl

Start, stop, reload, or check status of Apacheservice (for spell check)

zmarchive config

Command to view, modify, or configure archiving

zmarchivectl

Start, stop, reload, status for archiving

zmarchivesearch

Search archives on the account

zmauditswatchctl

Start, stop, restart, reload, status of theauditswatch

zmbackup

Performs full backups and incremental backupsfor a designated mail


host.

zmbackupabort

Stops a backup that is in process.

zmbackupquery

Find a specific full backup set

zmblobchk

Check consistency of the Zimbra blob store

zmcalchk

Check consistency of appointments andattendees in the Zimbra


calendar

zmcertmgr

Manage self-signed and commercial certificates

zmclamdctl

Start, stop, or find the status of Clam AV

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

zmcleaniplanetics

Clean iPlanet ICS calendar files

zmcontrol (Start/Stop
Service)

Start, stop, status of the Zimbra servers. Also can use to find the
Zimbra version installed.

zmconvertctl

Start, stop, the conversion server or find thestatus of the converted


attachments conversion/indexing

zmdumpenv

General information about the serverenvironment is displayed

zmgsautil

Create, delete the GAL sync account and initiate manual syncs.

zmhostname

Find the hostname of the Zimbra server

zmhsm

Start, stop and status of a HSM session.

zmitemdatafile

Extracts and packs tgz files that ZCS uses forREST import/export

zmjava

Execute Java with Zimbra-specific environmentsettings

zmldappasswd

Changes the LDAP password

zmlicense

View and install your Zimbra license

zmlmtpinject

Testing tool

zmlocalconfig

Used to set or get the local configuration of aZimbra server

zmloggerctl

Start, stop, reload, or find the status of the Zimbra logger service

zmloggerhostmap

Used to manually map a DNS hostname to azmhostname.

zmlogswatchctl

Start, stop, status of the swatch that is monitoring logging

zmmailbox

Performs mailbox management tasks

zmmailboxdctl

Start, stop, reload, or find the status of themailbox components


(mailboxd, MySQL, convert)

zmmailboxmove (Move
Mailbox)

Used to move selected mailboxes from oneZimbra server to another.

zmmboxsearch (Cross
Mailbox Search)

Search across mailboxes to find messages andattachments

zmmetadump

Support tool that dumps an items metadata in ahuman-readable form

zmmtaconfigctl

Start, stop, or find the status of the MTAconfiguration daemon

zmmtactl

Start, stop, or find the status of the MTA

zmmypasswd

Trace messages

zmmypasswd

Change MySQL passwords

zmmysqlstatus

Status of mailbox SQL instance

zmperditionctl

Start, stop, or find the status of the perdition IMAP proxy

zmplayredo

Performs data restore using backed upsnapshots taken periodically.


Users who use snapshots to backup and restore their information from
a standby site use this command.

zmprov (Provisioning)

Performs all provisioning tasks in Zimbra LDAP,including creating


accounts, domains, distribution lists and aliases

zmproxyconfgen

Generates configuration for the nginx proxy

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

zmproxyctl

Start, stop, restart, and find the status of the IMAP proxy service

zmproxypurge

Purges POP/IMAP routing information from oneor more memcached


servers

zmpython

Ability to write Python scripts that access Zimbra Java libraries. It sets
the ZCS class path and starts the Jython interpreter.

zmredodump

Support tool for dumping contents of a redologfile for debugging


purposes

zmrestore

Performs full restores and incremental restoresfor a designated mail


host

zmrestoreldap

Restore accounts from the LDAP backup

zmrestoreoffline (Offline Performs full restore when the Zimbra server (i.e., the mailboxd
process) is down
Restore)
zmsaslauthdctl

Start, stop, or find the status of saslauthd(authentication)

zmschedulebackup

Schedule backups and add the command to your cron table

zmshutil

Used for other zm scripts, do not use

zmskindeploy

Deploy skins for accounts from the command line

zmsoap

Print mail, account, and admin information in the SOAP format

zmspellctl

Start, stop, or find the status of the spell checkserver

zmsshkeygen

Generate Zimbras SSH encryption keys

zmstat-chart

Generate charts from zmstat data collected in adirectory

zmstat-chart-config

Generate an .xml file with data included from the account setup

zmstat-chart-config

Outputs an XML configuration that describes the current state of the


data gathered from zmstat-chart to generate charts on the
administration console.

zmstatctl

Start, stop, check status, or rotate logs of zmstat data collectors

zmstorectl

Start, stop, or find the status of Zimbra storeservices

zmswatchctl

Start, stop, or find the status of the Swatchprocess, which is used in


monitoring

zmsyslogsetup

Used to setup system log config file

zmthrdump

Initiate a thread dump and save the data to a filewith a timestamp

zmtlsctl

Set the Web server mode to the communication protocol options:


HTTP, HTTPS or mixed

zmtrainsa

Used to train the anti-spam filter to recognizewhat is spam or ham

zmtzupdate

Provides mechanism to process timezonechanges from the command


line

zmupdateauthkeys

Used to fetch the ssh encryption keys created by zmsshkeygen

zmvolume

Manage storage volumes on your Zimbra Mailbox server

zmzimletctl

Deploy and configure Zimlets

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

6.1. Ejemplos de Herramientas de consola


Loguearse primero como usuario zimbra
$> su - zimbra

6.11.- Comandos Generales


Dominios hospedados en el servidor
$> zmprov gad
Todas las cuentas del servidor
$> zmprov -l gaa
Cuentas de un dominio especfico
$> zmprov -l gaa dominio.com
Detalle de cuentas de un dominio especifico
$> zmprov -l gaa -v dominio.com
Detalle de cuentas de un dominio especifico con Cuenta y Nombre
$> zmprov gaa -v dominio.com | grep -e zimbraMailDeliveryAddress -e displayName | sed
's/zimbraMailDeliveryAddress/Cuenta/' | sed 's/displayName/Nombre/'

5.1.2.- Cuentas
Detalle de una cuenta
$> zmprov ga cuenta@dominio.com
Buscar parmetro en detalle de la cuenta
$> zmprov ga cuenta@dominio.com | grep -i Parametro
Modificar parmetro en cuenta
$> zmprov ma cuenta@dominio.com Parametro NuevoValor
Buscar todas las cuentas de Administradores
$> zmprov gaaa
Cambiar password de una cuenta
$> zmprov sp cuenta@dominio.com nuevopassword
Agregar/Quitar alias a una cuenta
$> zmprov aaa cuenta@dominio.com cuenta@otro.dominio.com
$> zmprov raa cuenta@dominio.com cuenta@otro.dominio.com

Buscar cuentas que coincidan por parmetro


$> zmprov sa parametro=cadena
Buscar en cuales listas se encuentra una cuenta

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

$> zmprov gam cuenta@dominio.com


Crear una cuenta (todo en una sola lnea)
$> zmprov ca cuenta@vera.net nnnnabcd cn 'Nombre(s) ApMaterno ApPaterno' company
idempresa displayName 'Nombre(s) ApMaterno ApPaterno' givenName 'Nombre(s)' zimbraCOSId
b67c3c57-f750-4726-9723-9b9dd1a3d86e zimbraMailQuota 52428800
nnnnabcd es el password y el COSId es el id del COS que se obtiene con el comando:
$> zmprov gac -v
Crear varios forwardings a la vez:
$> zmprov ma cuenta@dominio.com zimbraMailForwardingAddress cuentafwd1@dominio.com
zimbraMailForwardingAddress cuentafwd2@otrodominio.com
Cuenta con su quota en una sola linea
$> zmprov gaa -v dominio.com | grep -e zimbraMailQuota -e zimbraMailDeliveryAddress | sed
's/zimbraMailQuota: //' | sed 's/zimbraMailDeliveryAddress: //' | sed '$!N;s/\n/ /'
Cuentas con nombre y correo en una sola linea
$> zmprov -l gaa -v dominio.com | grep -i -e cn -e MailDeliveryAddress | egrep "^cn|^zimbra" | grep
-v "zimbraPrefMailSignatureHTM" | sed 'N;s/\n/ /' | sed -e 's/cn: //g' -e
's/zimbraMailDeliveryAddress//'
Borrar una cuenta
$> zmprov da cuenta@dominio.com

6.1.3.- Listas
Buscar todas las listas, y por dominio
$> zmprov gadl
$> zmprov gadl dominio.com
Crear una lista
$> zmprov cdl lista@dominio.com
Ver una lista especfica
$> zmprov gdl lista@dominio.com
Encontrar todas las listas de un dominio y sus miembros
$> for i in $( zmprov gadl dominio.com | grep -v abuse | grep -v postmaster | sort ) ; do echo
`zmprov gdl $i | grep -e 'mail: ' -e 'zimbraMailForwardingAddress: ' | sed 's/mail/Lista/' | sed
's/zimbraMailForwardingAddress: //'` ; done ;
agregar un miembro a la lista
$> zmprov adlm lista@dominio.com cuenta@dominio.com
Remover un miembro de la lista
$> zmprov rdlm lista@dominio.com cuenta@dominio.com
Borrar una lista
$ zmprov ddl lista@dominio.com

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

6.1.4.- Buzones
Ver tamao ocupado del buzn
$> zmmailbox -z -m cuenta@dominio.com gms
Revisar mensajes por carpetas en el buzn
$> zmmailbox -z -m cuenta@dominio.com gaf
Borrar una carpeta completa de un buzn
$> zmmailbox -z -m cuenta@dominio.com emptyFolder Junk

6.1.5.- Bsquedas
Buscar envio de usuario
$> grep 'from=<usuario@dominio.com' /var/log/zimbra.log
Buscar por ID de mensaje
$> grep 6EC0F1E1015F /var/log/zimbra.log
Buscar envo de usuario a otra cuenta
$> grep 'usuario@dominio.com> -> .*otro@dominio2.com' /var/log/zimbra.log
Buscar por destinatario
$> grep '> ->.*destinatario@dominio.com' /var/log/zimbra.log

6.1.6.- Bsquedas de Spam


Buscar dominio cuenta en whitelist y ver postfix headers
$> grep 'dominio.com' ~zimbra/conf/salocal.cf.in
$> grep 'cuenta@dominio.com' ~zimbra/conf/salocal.cf.in
$> cat ~zimbra/conf/postfix_header_checks.in
Revisar build de base de datos de antispam y postfix
$> ls -ltr ~zimbra/conf/salocal.cf*
$> ls -ltr ~zimbra/conf/postfix_header_checks*
Revisar bloqueos
$> grep -i -e blocked -e policy /var/log/zimbra.log
$> tail -1000f /var/log/zimbra.log | grep -i -e blocked -e policy

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

6.1.7.- Gestion de Colas de Correo


Ver la cola actual de Correos
$> mailq
Reenviar la cola actual
$> postsuper -r ALL
$> postqueue -f
Borrar todos los correos de la cola actual
$> postsuper -d ALL
Borrar correos especficos de la cola de correo
$> su $> vim /usr/bin/borracola
#!/usr/bin/perl
$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";
@data = qx</opt/zimbra/postfix/sbin/postqueue -p>;
for (@data) {
if (/^(\w+)(\*|\!)?\s/) {
$queue_id = $1;
}
if($queue_id) {
if (/$REGEXP/i) {
$Q{$queue_id} = 1;
$queue_id = "";
}
}
}
#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|/opt/zimbra/postfix/sbin/postsuper -d -") || die "couldn't open postsuper" ;
foreach (keys %Q) {
print POSTSUPER "$_\n";
};
close(POSTSUPER);
$> chmod 777 /usr/bin/borracola
$> su - zimbra
Borrar todos los correos de pepito que estn en la cola
$> borracola pepito
Borrar todos los correos del dominio spammers.info
$> borracola spammers.info
Borrar todos los correos que tienen estado Connection time out
$> borracola Connection time out

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

6.2. Migracin
Para migrar desde un servidor de correo existente se tener en cuenta las siguientes
recomendaciones.

Instalar Zimbra en un nuevo servidor (fsico o virtual), de esta forma no se afecta el servicio
y si la migracin es muy pesada, puede seguir en produccin el servidor antiguo hasta que
se termine de migrar y pase a produccin el nuevo servidor.
Crear primero los COS y luego crear los usuarios con sus respectivos COS.
Usar para la migracin de usuarios scripts que permitan la creacin masiva de usuarios.
Si el servidor antiguo tena contraseas shadow, se pueden preservar estas contraseas,
si no habr que crear nuevas claves.
En la creacin de nuevas claves NO USAR contraseas dbiles porque se exponen a ser
crakeadas por bots.
Migrar las capetas de correo del servidor y de las estaciones que tienen los correos
descargados.
Migrar los contactos exportando a archivos texto e importndolos con curl.

6.3.- Migracin de Cuentas de Usuario


para crear usuarios en forma efectiva necesitamos un script que lea los valores de cuenta de
usuario (usuario@dominio), contrasea nica (no debe ser dbil), nombre comn (Nombre y
Apellido) y COS
$> su $> mkdir /scripts
$> cd /scripts
$> vim cuentas.txt
pepito@dominio.com,alumno,Pepito Linuxero,default
linuxero@dominio.com,alumno,Linuxero Destroyer,gerentes
$> vim crear_cuentas
#!/usr/bin/php
<?php
// Obteniendo los COS del sistema y sus Ids
exec("/opt/zimbra/bin/zmprov gac",$arrcos);
$cos = array();
foreach($arrcos as $cos_name){
$cos_name = chop ($cos_name);
$cosid=`/opt/zimbra/bin/zmprov gc $cos_name | grep ^zimbraId:`;
$cosid = trim(str_replace("zimbraId: ","",$cosid));
$cos[$cos_name]=$cosid;
}
//print_r($cos);
// Leyendo los archivos de Usuarios
$userfile=file("cuentas.txt");
// Recorriendo array de usuarios y creando las cuentas
foreach($userfile as $userline){
$userline=trim(chop($userline));
if(!empty($userline){
$user = explode(",",$userline);
Av Canad 3925 Telfono: 6155900 Anexo: 101
capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

echo("/opt/zimbra/bin/zmprov ca $user[0] $user[1] cn '$user[2]' zimbraCOSId ".


$cos[$user[3]]."\n");
system("/opt/zimbra/bin/zmprov ca $user[0] $user[1] cn '$user[2]' zimbraCOSId ".
$cos[$user[3]]);
}
//print_r($user);
}
?>
$> chmod 755 crear_cuentas
$> ./crear_cuentas

6.4.- Cambio de Contraseas con un archivo shadow


(Hacer esto cuando ya se migraron los correos y contactos)
$> vim cambiar_password.pl
#!/usr/bin/perl
# Usage: as root # ./cambiar_password.pl /etc/shadow > shadow.zm
#

as zimbra # zmprov < shadow.zm

$domain="domain.com";
while(<>) {
chomp;
my ($uname,$pass) = split(/:/);
print qq{zmprov ma $uname\@$domain userPassword '{crypt}$pass'\n};
print qq{\n};
}
$> chmod 755 cambiar_password.pl
$> ./cambiar_password.pl /etc/shadow > shadow.zm
$> /opt/zimbra/bin/zmprov < shadow.zm

6.5.- Migracin de Mailbox


Para migrar las cuentas de correo, todas las claves de usuario deben ser conocidas, si esto no es
as cambiar las claves de todos los usuarios con una contrasea comn y luego restaurar las
contraseas; si stas se encuentran almacenadas en shadow, caso contrario asignar nuevas
contraseas a los usuarios.
Usaremos imapsync para la migracin de servidor a servidor
Para la migracin de clientes se crea la cuenta en el zimbra, luego se va mquina por mquina y
desde el programa cliente del usuario se copian los correos va protocolo Imap al servidor Zimbra.

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

10

$> vim usuarios.txt


pepito;alumno
linuxero;alumno
$> vim migra_correos
#!/bin/bash
logfile="usuarios.txt"
host1=192.168.10.X
#host1 es el servidor de correos antiguo
host2=192.168.10.Y
#host2 es el zimbra punche
domain=dominio.com
#domain is where email account is
#everything after @ symbol
###### Do not modify past here
#######################################
date=`date +%X_-_%x`
echo "" >> $logfile
echo "------------------------------------" >> $logfile
echo "IMAPSync started.. $date" >> $logfile
echo "" >> $logfile
{ while IFS=';' read u1 p1; do
user=$u1"@"$domain
echo "Syncing User $user"
date=`date +%X_-_%x`
echo "Start Syncing User $u1"
echo "Starting $u1 $date" >> $logfile
imapsync --buffersize 8192000 --noauthmd5 --nosyncacls --subscribe --syncinternaldates
--host1 192.168.1.1 --user1 "$user" --password1 "$p1" --host2 192.168.1.10 --user2 "$user"
--password2 "$p1"
date=`date +%X_-_%x`
echo "User $user done"
echo "Finished $user $date" >> $logfile
echo "" >> $logfile
done ; } < userlist.txt
date=`date +%X_-_%x`
echo "" >> $logfile
echo "IMAPSync Finished.. $date" >> $logfile
echo "------------------------------------" >> $logfile
$> chmod 755 migra_correos
$> ./migra_correos

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Manual de Zimbra Open Source edition v 6.0

11

6.6.- Migracin de Contactos


Para migrar los contactos de correos estos deben subirse al servidor por medio de curl.
Veremos un ejemplo de migracin de contactos de un servidor Zimbra a otro Zimbra
$> vim contactos.txt
tuxito,tuxito
windozero,windozero
$> vim migra_contatos
#!/usr/bin/php
<?php
$file = file("contactos.txt");
$server1 = 192.168.10.5;
$server2 = 192.168.10.168;
foreach ( $file as $lineuser ) {
$lineuser = trim(chop($lineuser));
$userdata = explode(",",$lineuser);
if(!empty($userdata)){
echo ("wget --user $userdata[0] --password $userdata[1] http://$server1/zimbra/user/
$userdata[0]/Emailed%20Contacts.csv --no-check-certificate \n" );
exec ("wget --user $userdata[0] --password $userdata[1] http://$server1/zimbra/user/
$userdata[0]/Emailed%20Contacts.csv --no-check-certificate " );
echo ("curl -u $userdata[0]:$userdata[1] --upload-file /opt/zimbra/scripts/Emailed\
Contacts.csv http://$server2/home/$userdata[0]/Emailed%20Contacts?fmt=csv \n" );
exec ("curl -u $userdata[0]:$userdata[1] --upload-file /opt/zimbra/scripts/Emailed\
Contacts.csv http://$server2/home/$userdata[0]/Emailed%20Contacts?fmt=csv " );
exec ("rm -fr Emailed\ Contacts.csv");
}
}
?>

Av Canad 3925 Telfono: 6155900 Anexo: 101


capacitacin@perulinux.com.pe
http://www.perulinux.com.pe

Potrebbero piacerti anche