Configurar Zimbra 8.6 para control de usuarios en Centos 7

Configurar Zimbra para control de usuarios

“Este pequeño manual NO es una copia de alguna pagina de internet, es propiedad intelectual de Martín Lugo Palmadera, ud. es libre de usarlo y distribuirlo, pero con la condición de citar la fuente…. http://martinlugo.networksolutions-peru.com”

El escenario es el siguiente:

He instalado una versión fresca Zimbra (versión 8.6) y esta funcionando al 100%, todos los usuarios envian y reciben mensajes.

Se me ha solicitado que solo algunos usuarios puedan enviar correos al exterior sin restricciones y otros solo correo local y a algunos dominios conocidos.(Tambien es recomendable poner restricciones en el Header_Checks)

(Hacer esto es con la version de nativa de postfix es simple y rapida), pero con Zimbra todo cambia, pues agregar las sentencias sobre el archivo de configuracion (main.cf) se borrará al siguiente reinicio.

Para que no suceda esto, vamos a modificar el archivo /opt/zimbra/conf/zmconfigd.cf

 

Actualizacion: Zimbra 8.6 ya no incluye la indexacion de archivos hash, por lo que si migras de una version anterior tendras problemas y te saldran errores como esto:

error: unsupported dictionary type: hash

He revisado este error y se debe a que la version de postfix ahora trae una version actualizada de este popular indexador :

[zimbra@test-app ~]$ postconf -m
cidr
environ
fail
internal
ldap
lmdb
memcache
mysql
nis
pcre
proxy
regexp
socketmap
static
tcp
texthash
unix

Si se percatan ahora trae el modulo de “texthash”. por lo que a diferencia de la versión 8.03 en nuestras variables sustituimos el valor de hash por texthash.

Paso 1: Editar el archivo “zmconfigd.cf” como root

 

#nano /opt/zimbra/conf/zmconfigd.cf

Comentar la variable

#       POSTCONF smtpd_client_restrictions              VAR zimbraMtaSmtpdClientRestrictions

 

Agregar al final de la sección MTA lo siguiente (antes de “RESTART mta):

 

POSTCONF smtpd_restriction_classes inter, local
POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf
POSTCONF local FILE zmconfigd/postfix_restrict_local.cf
POSTCONF smtpd_client_restrictions   FILE  zmconfigd/postfix_smtpd_client_restrictions

Aqui estamos creamos 2 variable inter y local (los usuarios que tengan el valor inter podran enviar correos sin restricciones y los usuarios que posean el valor local, solo podran enviar correos a algunos dominios listados en otro archivo), ademas le decimos que sus valores lo lea de los archivos ubicado dentro de la carpeta “zmconfigd” “postfix_restrict_inter.cf” y “postfix_restrict_local.cf” respectivamente. Adicionalmente si se dan cuenta comenté la variable POSTCONF smtpd_client_restrictions y luego la reescribi abajo direccionanadola a un archivo en donde pueda meter variables y coamndos a mi antojo.

Paso 2:

Modificar el archivo “smtpd_sender_restrictions.cf” :

#nano /opt/zimbra/conf/zmconfigd/smtpd_sender_restrictions.cf

Agregar las siguientes lineas al inicio:

reject_authenticated_sender_login_mismatch
check_sender_access texthash:/opt/zimbra/conf/zmconfigd/usuarios
texthash:/opt/zimbra/conf/zmconfigd/access
check_sender_access texthash:/opt/zimbra/conf/zmconfigd/prohibido
reject_unknown_sender_domain
reject_invalid_hostname

Luego eliminar o comentar con un # la linea

%%exact VAR:zimbraMtaSmtpdSenderRestrictions reject_authenticated_sender_login_mismatch%%

si dean cuenta esa variable ya no nos sirve pues la estamos sustituyendo por un archivo.

A mi me quedaria asi:

 
reject_authenticated_sender_login_mismatch
check_sender_access texthash:/opt/zimbra/conf/zmconfigd/usuarios
texthash:/opt/zimbra/conf/zmconfigd/access
check_sender_access texthash:/opt/zimbra/conf/zmconfigd/prohibido
reject_unknown_sender_domain
reject_invalid_hostname


#%%exact VAR:zimbraMtaSmtpdSenderRestrictions reject_authenticated_sender_login_mismatch%%
%%contains VAR:zimbraServiceEnabled cbpolicyd^ check_policy_service inet:localhost:%%zimbraCBPolicydBindPort%%%%
%%contains VAR:zimbraServiceEnabled amavis^ check_sender_access regexp:/opt/zimbra/postfix/conf/tag_as_originating.re%%
permit_mynetworks
permit_sasl_authenticated
permit_tls_clientcerts
%%contains VAR:zimbraServiceEnabled amavis^ check_sender_access regexp:/opt/zimbra/postfix/conf/tag_as_foreign.re%%

En el archivo “smtpd_recipient_restrictions.cf” Agregar la siguiente linea debajo de “permit_mynetworks”

#nano /opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf
permit_mynetworks
check_sender_access texthash:/opt/zimbra/conf/zmconfigd/usuarios
check_sender_access texthash:/opt/zimbra/conf/zmconfigd/prohibido

Deberia quedar asi mas o menos:

%%contains VAR:zimbraMtaRestriction check_client_access lmdb:/opt/zimbra/conf/postfix_blacklist%%
%%contains VAR:zimbraServiceEnabled cbpolicyd^ check_policy_service inet:localhost:%%zimbraCBPolicydBindPort%%%%
reject_non_fqdn_recipient
permit_sasl_authenticated
permit_mynetworks

check_sender_access texthash:/opt/zimbra/conf/zmconfigd/usuarios
check_sender_access texthash:/opt/zimbra/conf/zmconfigd/prohibido

reject_unlisted_recipient
%%exact VAR:zimbraMtaRestriction reject_invalid_helo_hostname%%
%%exact VAR:zimbraMtaRestriction reject_non_fqdn_helo_hostname%%
%%exact VAR:zimbraMtaRestriction reject_non_fqdn_sender%%
%%exact VAR:zimbraMtaRestriction reject_unknown_client_hostname%%
%%exact VAR:zimbraMtaRestriction reject_unknown_reverse_client_hostname%%
%%exact VAR:zimbraMtaRestriction reject_unknown_helo_hostname%%
%%exact VAR:zimbraMtaRestriction reject_unknown_sender_domain%%
%%exact VAR:zimbraMtaRestriction reject_unverified_recipient%%
%%contains VAR:zimbraMtaRestriction check_recipient_access lmdb:/opt/zimbra/conf/postfix_recipient_access%%
%%contains VAR:zimbraMtaRestriction check_client_access lmdb:/opt/zimbra/conf/postfix_rbl_override%%
%%explode reject_rbl_client VAR:zimbraMtaRestrictionRBLs%%
%%explode reject_rhsbl_client VAR:zimbraMtaRestrictionRHSBLCs%%
%%explode reject_rhsbl_reverse_client VAR:zimbraMtaRestrictionRHSBLRCs%%
%%explode reject_rhsbl_sender VAR:zimbraMtaRestrictionRHSBLSs%%
%%contains VAR:zimbraMtaRestriction check_policy_service unix:private/policy%%
%%contains VAR:zimbraMtaRestriction check_recipient_access ldap:/opt/zimbra/conf/ldap-splitdomain.cf%%
%%exact VAR:zimbraMtaRestriction reject%%
permit

 

Paso 3.- Crear el archivo “usuarios” y “prohibido”:

Si nos percatamos, he ingresado también un archivo llamado “prohibido”, esto sirva para decirle a Zimbra que los dominios que coloque allí van a estar prohibidos de ser enviados

#nano /opt/zimbra/conf/zmconfigd/usuarios
pepito@mydomain.com inter
luchito@mydomain.com local
 ................

Ahora el archivo prohibido:

#nano /opt/zimbra/conf/zmconfigd/prohibido
yahoo.com.pe	reject

Paso 4.- Crear los archivos postfix_restrict_inter.cf , postfix_restrict_local.cf y postfix_smtpd_client_restrictions

#nano /opt/zimbra/conf/zmconfigd/postfix_restrict_inter.cf

y colocar esto dentro:

permit

Ahora creamos el segundo archivo:

#nano /opt/zimbra/conf/zmconfigd/postfix_restrict_local.cf

y colocar esto dentro:

check_recipient_access
texthash:/opt/zimbra/conf/zmconfigd/interno
reject

Finalmente crear el tercer archivo

#nano /opt/zimbra/conf/zmconfigd/postfix_smtpd_client_restrictions

y colocar esto dentro:

permit_mynetworks
reject_non_fqdn_recipient
texthash:/opt/zimbra/conf/zmconfigd/access
reject_rbl_client sbl.spamhaus.org

Paso 5.- Crear el archivo interno y access

Dentro de este archivo llamado “interno” vamos a colocar los dominios que queremos que envien lo usuarios restringidos

#nano /opt/zimbra/conf/zmconfigd/interno

y colocar alli los dominios que a los que solo podrá enviar mail

dominio1.com.pe      ok
dominio2.com.pe   ok

Ahora creamos el archivo Access:

#nano /opt/zimbra/conf/zmconfigd/access

colocar un espacio en blanco dentro de este archivo “access” y grabar

Paso 6.- indexar archivos “usuarios” “interno” “access”

Ingresar como usuario de Zimbra y aplicar los siguiente

#su - zimbra
Last login: Thu Feb 12 12:59:58 PET 2015 on pts/0

$ postmap conf/zmconfigd/usuarios
$ postmap conf/zmconfigd/interno
$ postmap conf/zmconfigd/access
$ postmap conf/zmconfigd/prohibido

Paso 7.- Modificar la variable mynetworks a 127.0.0.0/8 y la red interna de la empresa, esto hara que lo spammer no puedan utilizar nuestro servidor como relay, sino que el postifx solo aceptará conexiones de el mismo, previa validacion del usuario que se trata de conectar Para esto hacer lo siguiente:

#su - zimbra
$ zmprov modifyServer mail.dominio.com.pe zimbraMtaMyNetworks '127.0.0.0/8 192.168.0.0/24'
$ postfix reload

Paso 8.- Reiniciar servicios y listo!!!!!!!!!

#su - zimbra
$ zmmtactl restart

Te puede interesar Instalar Zimbra 8.6 en Centos 7 desde Cero

Instalar Zimbra 8.6 en Centos 7 desde Cero

He recibido muchos correos  de personas que tienen problemas al momento de instalar Zimbra 8.6, que aparte de ser una buena herramienta de mensajeris, sustituye con creces a muchos sistemas  como Exchange o el propio Gmail.

Para empezar, debo suponer que tienen ya instalado Centos 7 x64.

Paso 1.- Verificar que el cortafuegos este deshabilitado, el DNS funcione y no exista una version de PostFix instalada con el S.O.

Es importante verificar 3 cosas:

a) Deshabilitar el cortafuegos

# service iptables save
# service iptables stop
# chkconfig iptables off

Modificar la varialble SELINUX=disabled

# nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

b) La configuracion DNS debe de estar correctamente configurado:

Verificar si pueden resolver nombres como yahoo.com, etc.

c) verificar que no exista una instalacion previa de postfix, para esto ejecutar la siguiente consulta:

rpm -qa postfix

Si existe, desinstalarlo!

rpm -e postfix*

Paso 2.- Verificar la correcta configuracion del archivo Hosts

A veces he tenido problemas al momento de instalar Zimbra, me salia este mensaje

 ERROR: Installation can not proceeed.  Please fix your /etc/hosts file
  to contain:

  <ip> <FQHN> <HN>

  Where <IP> is the ip address of the host,
  <FQHN> is the FULLY QUALIFIED host name, and
  <HN> is the (optional) hostname-only portion

zimbra85-3

A pesar que he verificado que mi archivo /etc/hosts esta correctamente configurado, este mensaje persistia, por lo que hay que fijarse tambien en el archivo hostname para tenerlo adecuadamente configurado.

Por ejemplo, si en /etc/hosts tienes lo siguiente
192.168.0.17    test-app.midominio.com.pe      test-app
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Importante, antes de continuar, leer el siguiente post, hacerlo nos ayudara a arreglar un problema de funcionamiento de servicios zmconfigd Stopped Zimbra 8.5 – Instalacion fresca – Solucion!!

Tambien deberá de tener el mismo nombre de host en el archivo /etc/hostname

zimbra85-4

de la siguiente manera:
test-app.midominio.com.pe
Pues si NO modificas este archivo el error va a persistir y no vas a saber porque.

Paso 3.-  Descargamos e instalamos Zimbra 8.6.

En este caso estoy trabajando con la version zcs-8.6.0_GA_1153.RHEL7_64.20141215151110, descargada desde http://www.zimbra.com/downloads/zimbra-collaboration-open-source .

Una vez descargada, desempaquetamos e instalamos

#tar -xzvf zcs-8.6.0_GA_1153.RHEL7_64.20141215151110.tgz

#cd zcs-8.6.0_GA_1153.RHEL7_64.20141215151110/

# ./install.sh

Paso 4.- Errores por paquetes no instalados

Continuamos, ………como esta instalacion de Centos 7 es fresca, no tiene muchas librerias que necesita Zimbra, por lo que al momento de validar paquetes, me sale un error y se detiene la instalacion de Zimbra. segun la imagen, no poseo el paquete nmap-cat y perl-core (MISSING)

zimbra85-5

Bien, solo queda pedirle a YUM que haga este trabajo por nosotros para instalar dichos paquetes:
yum install nmap-ncat perl-core

Le damos YES a todo MENOS A  “zimbra-proxy”   este componente  marquenlo como “N” pues si no saben manejar el proxy de Zimbra no les va a levantar la pantalla principal…… proseguimos con la instalación

zimbra85-6

 Ojo, como este equipo es un tester, el nombre de pc y dominio no son validos para validarlos por DNS publicos, por lo que en medio de este proceso me lanzaran mensajes de que el nombre no es valido y nos pide cambiar de nombre de host o dominio, a esto darle NO, para que prosiga (Ojo, si estas pensando que tu equipo ya lo vas a poner en produccion, valida el nombre en tu DNS para que no te aparesca este mensaje de error).

Paso 5. -Configurando adecuadamente los parametros.

El proceso de instalación se detendrá en una lista de opciones que es RECOMENDABLE validar. A continuacion explico las opciones y su significado:

zimbra85-7-1

Opción 1.- Configurar “Time Zone” (Opción 7), en mi caso el valor 13, vivo en Perú y la zona horaria es “America/Bogota”

Opciones del 2 al 6.- Dejarlas tal cual, solo nos indica que esos modulos estan habilitados y se instalaron sin problemas.

Opción 7.- (Zimbra-store)

Aqui es donde esta el meollo del asunto, es donde debemos configurar correctamente, si no deseamos hacerlo a mano despues (de poder se puede, pero hay que saber comandos propios de Zimbra para hacerlo). Solo a modo de ejemplo voy a modificar lo básico y escencial, el resto de opciones que no lo mencione lo puedes dejar tal cual. Para escoger UNA OPCION,  digite el numero de la opción y se desplegará un submenu para ir a la opcion específica. Por ejemplo, presionar el numero 7 y se desplegará un submenu.

  • Admin user to create: Aqui nos indica cual es el usuario administrador, dejarlo asi, la proxima que deseas ingresar al Back-end, deberas utilizar esta cuenta.
  • Admin password: Aqui hay que especificar el password de l usuario de la opcion anterior, si se dan cuenta, el valor que aparece es UNSET, osea (No Seteado), Presionar la tecla 7 y escoger cambio de Password.

En este mismo submenu, deberenos cambiar lo siguiente

10) Web server HTTP port: 8080 .- Este puerto es el que se utiliza para acceder al web mail, por ejemplo un usuario tuyo deberá de digitar http://midominio.com:8080 para acceder a su correo.
11) Web server HTTPS port: 8443 .- Similar al anterior pero poniendo puerto seguro, ejemplo : un usuario tuyo deberá de digitar http://midominio.com:8443 para acceder a su correo.
12) Web server mode: https : aqui deberian de cambiarlo, pues esta opcion si lo dejan tal cual, le estan indicando que solo se pueda ver por https los correos, cambielo a “both”, esto permitira acceder a ver los correos, tanto por el puerto 8080 y 8443.

Eso es todo dentro de la configuracion, Graben esto y continuen …. aqui el sistema va a realizar todos los pasos necesarios y dejara listo la instalacion de zimbra.

Importante y/a tener en cuenta: He colocado la opcion 10 Web server HTTP port al puerto 8080, pues en este mismo servidor me funciona el apache con una web institucional distinta a zimbra, por lo que necesitaba el puerto 80 para publicar. Pero si ese no es su caso y este servidor solo lo destinan para correo, dejar los puertos tal cual lo sugiere Zimbra.

Paso 6.- Proseguir con la instalacion.

Si todo ha salido bien, entonces estos deberian ser los enlaces para poder acceder a nuestro Zimbra recien instalado.

Para el Back-End del administrador:    https://192.168.0.17:7071/zimbraAdmin/

Para el Front End en http:  http://192.168.0.17:8080

Para el Front End en https:  https://192.168.0.17:8443

 

Les puede Interesar tambien Configurar Zimbra 8.6 para control de usuarios en Centos 7

 

Zimbra – ERROR: Installation can not proceeed. Please fix your /etc/hosts file – Centos 7

A veces cuando no definimos correctamente nuestro hostname tenemos problemas al instalar zimbra. Me ha pasado una vez que instalando una version de ZIMBRA me salia este mensaje de error:

Do you agree with the terms of the software license agreement? [N] y

  ERROR: Installation can not proceeed.  Please fix your /etc/hosts file
  to contain:

  <ip> <FQHN> <HN>

  Where <IP> is the ip address of the host,
  <FQHN> is the FULLY QUALIFIED host name, and
  <HN> is the (optional) hostname-only portion

 

Para resolver este problema, tenemos que verificar 2 cosas:

1.- Como nos dice en el mensaje, deberemos verificar el archivo /etc/hosts y corroborar que este archivo tenga esta distribucion:

<Nro. IP>       mail.midominio.com.pe         mail

127.0.0.1        localhost.midominio.com.pe    localhost

192.168.0.253   test-zimbra.midominio.com       test-zimbra
127.0.0.1    localhost.midominio.com localhost4

Mi Archivo hosts esta asi:

hosts-zimbra

2.- Luego y lo mas importante es verificar el archivo “Hostname” dentro de la siguiente ruta:

/proc/sys/kernel/hostname coincida el hostname que pusimos dentro del archivo hosts. Asi:

test-zimbra.midominio.com

Eso es todo!!!

zmconfigd Stopped Zimbra 8.5 – Instalacion fresca – Solucion!! – Centos 7

Acabo de instalar una version fresca de Zimbra 8.5 y me doy cuenta que el servicio zmconfigd esta parado!! voy a ver los servicios corriendo y me sale esto.

#su - zimbra
$zmcontrol status
        amavis                  Running
        antispam                Running
        antivirus               Running
        dnscache                Running
        ldap                    Running
        logger                  Running
        mailbox                 Running
        memcached               Running
        mta                     Running
        opendkim                Running
        proxy                   Running
        service webapp          Running
        snmp                    Running
        spell                   Running
        stats                   Running
        zimbra webapp           Running
        zimbraAdmin webapp      Running
        zimlet webapp           Running
        zmconfigd               Stopped

 

Bien para solucionar hice esto.

Paso 1.– revisar los log de carga del zimbra (ubicalo aqui:  /opt/zimbra/log/) ubicar el log de este servicio (zmconfigd.log)

#tail -1000 /opt/zimbra/log/zmconfigd.log

Aqui me indica que existe un error al cargar el archivo de configuracion

failed.
Starting zmconfigd.../opt/zimbra/bin/zmconfigdctl: line 94: 11346 Killed                  /opt/zimbra/libexec/zmconfigd >> ${zimbra_log_directory}/zmconfigd.log 2>&1

Ok revisamos ese archivo (Linea 94) /opt/zimbra/bin/zmconfigdctl y no encontramos gran cosa, solo esto que nos llama la atencion:

# Bug 51682 wait for the pid file to be created, then wait 30 seconds for rewrites

Es una anotacion que hicieron los programadores de zimbra.

Buscando ese bug, me doy cuenta que es un error descrito para el archivo /etc/hosts

Paso 2.- En conclusion hay que modificar la parte correspondiente al IPv6 que empieza con doble 2 puntos (desactivarlo o quitarlo). Yo lo comete y reinicie el Zimbra. Y SOLUCIONADO!!

#nano /etc/hosts
192.168.0.17    test-app.midominio.com.pe      test-app
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Vean el detalle de ponerle “#” delante de ::1

#service network restart
#su - zimbra
$zmcontrol restart
$zmcontrol status
        amavis                  Running
        antispam                Running
        antivirus               Running
        dnscache                Running
        ldap                    Running
        logger                  Running
        mailbox                 Running
        memcached               Running
        mta                     Running
        opendkim                Running
        proxy                   Running
        service webapp          Running
        snmp                    Running
        spell                   Running
        stats                   Running
        zimbra webapp           Running
        zimbraAdmin webapp      Running
        zimlet webapp           Running
        zmconfigd               Running

Martín Lugo

Actualización 09/02/2015

Me sucedio en una instalacion que el  archivo hosts tiene la siguiente configuracion

127.0.0.1   localhost.mydomain localhost4 localhost4.localdomain4
192.168.0.115   zcspruebas.dominio.com zcspruebas

 

Si se percatan la primera linea tiene la como parte del fqdn mydomain, eso origino que el error descrito en el titulo aparesca. A pesar de haber eliminado la parte concerniente al IPv6, Me tomo 2 dias detectar que esa palabrita tenia que ser sacada. Por favor no pongan ningun nombre de dominio en la parte concerniente al localhost, en mi caso lo deje asi:

127.0.0.1   localhost localhost4 localhost4.localdomain4
192.168.0.115   zcspruebas.dominio.com zcsprueba

 

Eso es todo!!!

 

 

Migrar desde Centos 6.5 a 7.0

Importante: este artículo es muy técnico, abarca terminos propios de tecnología y procedimientos riesgosos, por lo que si no estas habituado te pido no ejecutar nada de lo que esta escrito aqui, pues podrias perder todos tus datos.

Actualizar Centos 6.5 a 7.0

a.- Instalar la herramienta preupg , para esto hay que crear un nuevo repositorio en la carpeta /etc/yum.repos.d/, por ejemplo creamos el archivo upgradetool.repo y dentro de este archivo colocamos lo siguiente:

[upg]
name=CentOS-$releasever - Upgrade Tool
baseurl=http://dev.centos.org/centos/6/upg/x86_64/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Luego en la ventana de comando ejecutamos lo siguiente:

yum install redhat-upgrade-tool preupgrade-assistant-contents

Terminado este proceso, ejecutamos la herramienta de Pre-Migración

[root@app-linux ~]# preupg
Preupg tool doesn't do the actual upgrade.
Please ensure you have backed up your system and/or data in the event of a failed upgrade
 that would require a full re-install of the system from installation media.
Do you want to continue? y/n

Presionamos “y” y listo! esperamos que ejecute el proceso de comprobación del sistema.

Por extraño que parezca, este proceso en particular no hace más que hacerle saber de los problemas que puedan surgir durante la actualización. No lleva a cabo la actualización ni tampoco ayuda a mitigar alguna de las cuestiones que encuentre. En realidad lo que hace este proceso es verificar si el sistema y/o paquetes instalados en su servidor actual va a tener problemas a la hora de la migración, les mostrara un resultado con los paquetes instalados y una observación como “pass”, “needs_inspection” ,”notapplicable “, etc. tener cuidado con eso.

Ahora asegúrese de comenzar con la importación de la llave CentOS 7 antes de ejecutarlo, o va a fracasar. Desde el símbolo del sistema hacemos lo siguiente:

 
rpm --import http://isoredirect.centos.org/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

Despues de esto, podemos ejecutar la herramienta real. A modo de ejemplo, el comando que utilice para actualizar correctamente mis CentOS 6.5 BASE a  CentOS 7 fue el siguiente:

/usr/bin/redhat-upgrade-tool-cli --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64</code>

centos7

Cuando acabe el proceso de actualización, le pedira reiniciar el Sistema Operativo. y Listo!!!

centos7-1

Despues de esto, se pide encarecidamente revisar todas las aplicaciones instaladas y que funcionen bien.

Martin Lugo

Creando Nuevos certificados en Zimbra

Si les aparece un mensaje indicándoles que el certificado de seguridad instalado en Zimbra va a caducar, aplicar lo siguiente (como root)

Primero hay que verificar la fecha de caducidad de nuestro certificado conel siguiente comando:

/opt/zimbra/bin/zmcertmgr viewdeployedcrt

1.- Apagar los servicios de Zimbra

2.- Ejecutar estos comandos de consola

/opt/zimbra/bin/zmcertmgr createca -new
/opt/zimbra/bin/zmcertmgr createcrt -new -days 3650
/opt/zimbra/bin/zmcertmgr deploycrt self
/opt/zimbra/bin/zmcertmgr deployca
/opt/zimbra/bin/zmcertmgr viewdeployedcrt
/etc/init.d/zimbra restart

3.-  Reiniciar los servicios y probrar (El valor 3650 significa 3650 dias o sea 10 años validos con el certificado)

Ver tambien: http://www.zimbra.com/forums/administrators/45833-solved-zimbra-certificates-have-expired-im-having-difficulty-regenerating-them.html

Actualizar Java – JDK (Java SE 7u65) de la version 6 a la 7 en Centos 5.5

Bien, Ultimamente algunos desarrollos que administro se han actualizado y he tenido que actualizar la version de Java JDK de la version 6 a la 7. Los pasos para actualizar son estos:

1.- Primero nos fijamos la version de java que tenemos instalada

jdk1Como veran tengo la version 6.0_24

2.- Descargamos la nueva versión  de aqui: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Aqui escogemos la version última que deseamos actualizar, en mi caso: Java SE 7u65

jdk2

3.- Bien, una vez descargado, copiamos a nuestro server el archivo jdk*.*.rpm , y como lo que necesitamos es solo actualizar corremos la actualizacion con el siguiente comando:

# rpm -Uvh jdk-7u65-linux-x64.rpm

jdk3

Si se percatan la actualizacion es muy transparente y ejecuto un segundo comando “java -version” para ver que version esta corriendo en mi server…Ahora estoy con la 7.0_65…. Exito!!

4.- Finalmente, hay que decirle a la variable de entorno JAVA_HOME que su valor nuevo es la ultima versión, por lo que hay que ir al archivo “/etc/profile” y cambiar el valor por el siguiente:

JAVA_HOME="/usr/java/latest"

Reiniciamos de preferencia el servidor y ya habremos actualizado.

Es todo!

Martin Lugo P.

kernel panic – not syncing: Attempted to kill inint ! – Centos 6.5

Muerto???? te salio este error:

kernel panic - not syncing: Attempted to kill inint !
PId: 1, comm: init not tainted 2.6.32.-279-5.2.e16.x86_64 #1
Call Trace:
[<ffffffff814fd39a>] ? panic+0xa0/0a0x168
[<ffffffff81070bd2>] ? do_exit+0x862/0x870
[<ffffffff8117ccf5>] ? fput+x25/0x30
[<ffffffff81070c38>] ? do_group_exit+0x58/0xd0
[<ffffffff81070cc7>] ? sys_exit_group+0x70/0x20
[<ffffffff8100b0f2>] ? system_call_fastpath+0x16/0x1b

 

Tranquilo…. no te desesperes

 

imagen1

Bien este error me salio en un nuevo servidor que estaba instalando. por lo que investigue, se debe a un error en el Security-Enhanced  de Linux (SELINUX), que yo recuerde esto la habia desabilitado inicialmente, pero al reiniciar salto este error.

Solución:
========

Reinicia el servidor , cuando aparece el menu de caraga automatica, te da  5 segundos para presionar una tecla y entrar a modo de edición en el kernel. Ya en el módulo presionar la tecla “a”

para entrar a editar los argumentos del kernel.

imagen4

Bien, lo unico que hay que hacer es agregar al final de la linea lo siguiente: “3 selinux=O”        (cero porsiacaso, no es la vocal o)

imagen5

Luego presionar “enter”, esto hará que el sistema cargue de nuevo la consola. Ingrese al sistema y logueese como root, pero OJO no es la solución al problema, pues al reiniciar el servidor el problema persistirá.

Una vez dentro del sistema, hay que decirle que el modulo de SELINUX se deshabilite permanentemente, para esto, hacer lo siguiente:

1.- Ingresar al archivo de configuración del SELINUX  (/etc/selinux/config)

2.- Colocar en disable la variable SELINUX, tal cual muestra la imagen. (la otra variable dejarlo tal cual)

imagen6

3.-  Reiniciar el servidor

Enjoy / Disfrutar!!

Instalación PHP en Windows 2003 con FastCGI Extension y con soporte a SQL 2008 R2

En realidad este post ya no debería de escribirlo, pues Windows 2003 ya esta fuera de soporte por parte de microsoft y ya va en via de desaparecer, pero aun muchos en el mundo utilizan Win 2003 y necesitan este tipo de configuración!!!

Mi necesidad se basa en que hay un aplicativo específico que uso y funciona muy bien en Windows 2003 R2 x64 y si no lo migro a Windows 2008/2012 este se pone muy pero muy lento, asi que para que hacerme problema, lo reinstalo de cero en un  servidor Win2003 que si anda muy bien.

Manos a la obra:

Suposiciones:

  • Ya tienes corriendo Windows 2003 R2 x64 con SP2
  • Tienes instalado el IIS 6.o

Ojo: antes de instalar aplicaciones x86 en servidores x64 hay que decirle a windows que pueda ejecutar programas de 32 bits, para esto y dependiendo de la version de windows tienen que ejecutar el siguiente comando dentro del command prompt (Inicio->Ejecutar->cmd) (a mi me funciono esto)

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Caso contrario les va a aparecer el siguiente mensaje: (“%1 is not a valid Win32 application.“)  aqui les dejo el KB de Microsoft que habla sobre este problema: http://support.microsoft.com/kb/894435

Instalación de PHP 5.3.27

Actualmente existe la versión 5.4 y 5.5 de php pero a pesar que he tratado de instalarlo no he podido hacerlo funcionar con el soporte para SQL 2008, pero si tu objetivo es solo instalar PHP 5.4 o 5.5 estas instrucciones son validas.

1.- Descargar de la web de php la version mencionada, para eso vamos al siguiente link: http://windows.php.net/download/#php-5.3 para nuestro caso y siempre los binarios y la version Non Thread Safe ojo es muy importante recordar esto, pues de esto dependerá las librerias que vamos a activar.

php-mssql-2003-1

2.- Desempaquetar el archivo y colocar todos los archivos dentro de la carpeta c:\php

php-mssql-2003-2

3.- Modificar el archivo “c:\php\php.ini-production”, este archivo primero hay que renombrarlo a “php.ini” y luego modificar los siguientes parametros para que sea ejecutado por “FastCGI Extension” . (La idea es: que cuando el servidor reciba peticiones de paginas con extencion .php, estan sean pasadas a la extención FastCGI y esta las procese, de esta manera descongestionamos el servidor con este tipo de solicitudes ver mas detalles aqui).

  • Descomentar (quitarle el punto y coma”;”) y establecer la llave  cgi.force_redirect = 0
  • Descomentar (quitarle el punto y coma”;”) y establecer la llave, fastcgi.impersonate = 1
  • Descomentar (quitarle el punto y coma”;”) y establecer la llave, extension_dir a la carpeta ‘ext’, en nuestro caso c:\php\ext
  • Descomentar (quitarle el punto y coma”;”) y establecer la llave, date.timezone a la zona horaria de tu pais.

4.- Copiar  el archivo php.ini modifcado a la carpeta de C:\Windows

php-mssql-2003-3

 

5.- Instalación de FastCGI extención en IIS6

php-mssql-2003-4

6.- Configuración de FastCGI extencion

la configuración es bastante simple, pero a veces por algun motivo no funciona solo modificando este archivo, por lo que les voy a dar 2 opciones para hacerlo:

  • Opcion 1.- Modificando el archivo C:\WINDOWS\system32\inetsrv\fcgiext.ini  .- Bien, aqui hay que modificar este archivo colocando al final lo siguiente:
[Types]
php=PHP
[PHP]
ExePath=C:\PHP\php-cgi.exe
InstanceMaxRequests=5000
EnvironmentVars=PHP_MAX_REQUESTS:5000

Bastaría con eso!!!!!, pero a mi me ha sucedido que colocando esto NO me funcionaba y me daba el siguiente error:

FastCGI Error
The FastCGI Handler was unable to process the request.
--------------------------------------------------------------------------------

Error Details:

Section [c:\php\php-cgi.exe] not found in config file.
Error Number: 1413 (0x80070585).
Error Description: Invalid index.
HTTP Error 500 - Server Error.
Internet Information Services (IIS)

Este error es muy comun y en la web encontras que la respuesta es modificar el archivo C:\WINDOWS\system32\inetsrv\fcgiext.ini  con los datos mencionado arriba!!!!… pero si ya lo hicimos!!! asi me paso 3 horas dandole vueltas hasta que por fin encontre algo que me saco del problema.

  • Opción 2.-  Si con la opcion 1 no pudiste hacer correr el FastCGI, la modificacion del archivo lo debes hacer con una linea de comandos. hacer lo siguiente:

a).-Inicio->Ejecutar->cmd

        cd c:\Windows\system32\inetsrv
        c:\Windows\system32\inetsrv>cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"c:\php\php-cgi.exe"

Por algún motivo que desconozco, muchas veces FastCGI no reconoce lo que escribimos directamente sobre el archivo fcgiext.ini, pero al hacerlo por script todo anda bien!!!!!

PD. el resultado lo probaremos despues de terminar de configurar PHP.

 

7.- Configuracion de  IIS6 para correr PHP via FastCGI

Ahora viene lo mas facil, que es decirle al IIS 6 que toda solicitud de paginas PHP lo traslade a FastCGI y todo estará corriendo.

  • Abrir la consola de IIS6 y dirigirse a la sección “Web Service Extencion” y habilitar “FastCGI Handler” y ponerlo como “allowed” o permitido en español.
    php-mssql-2003-5
  • Luego,….. ir a propiedades de la carpeta “Web sites”, luego ir a la lengüeta “home directory” y presionar el botón “configuration”php-mssql-2003-6php-mssql-2003-7
  • Buscar el archivo fcgiext.dll y ponerlo como executable,…. en extencion colocar “.php” .. ver imagen
    php-mssql-2003-8Luego, cerrar todas ventanas y reiniciar el IIS
  • Para reiniciar ya sabemos que tenemos que colocar IISRESET dentro del command prompt
    php-mssql-2003-9

Bien, si hemos colocado todo esto ya deberiamos de tener corriendo PHP sobre Windows….

8.- Probando……

Hasta aqui, solo hemos configurado PHP bajo Windows 2003 nada mas……. Para probar creamos un archivo con extención php (test.php) en la siguiente ruta:  C:\Inetpub\wwwroot     y colocamos lo siguiente:

<?php
phpinfo();
phpinfo(INFO_MODULES);
?>

php-mssql-2003-10

Luego vamos a un navegador y lo ejecutamos (http://ip-de-servidor/test.php)….. si todo ha salido bien, debería de mostrarnos la siguiente pantalla:

php-mssql-2003-11

 

Hasta aqui……. ya tenemos instalado PHP en Windows 2003 R2 x64 y corriendo bajo FastCGI….. Ahora nos queda configurar para que  PHP pueda soportarconsultas SQL 2008, para esto hay que seguir los siguientes pasos.

 

 Instalación de librerias MSSQL en PHP

Bien, hasta el punto anterior si seguiste los pasos, ya debes de poder hacer consultas a paginas php dentro de tu server, por defecto esta versión ya viene activado las librerias MySQL, por lo que si deseas instalar algún programa q utilice este motor de BD ya lo puedes hacer…. pero si lo que necesitas es hacer consultas a una BD MSSQL 2008 no podrás, pues falta instalar y habilitar las librerías de este motor.

1.- Descargar las librerias de este sitio de Microsoft:

http://www.microsoft.com/en-us/download/confirmation.aspx?id=20098

Para nuestro caso escoger la version 2 que es la que da soporte a Windows 2003

php-mssql-2003-12

 

En realidad al ejecutar este archivo, va a desempaquetar en una carpeta que le indiques las librerias necesarias, luego hay que copiarlas dentro de la carpeta de extenciones de php…

2.- Una vez descargado, ejecutamos el archivo SQLSRV20.EXE y mandamos los archivos a una carpeta de nuestra elección

php-mssql-2003-13

 

3.- En la carpeta a donde hemos descomprimido vamos a encontrar las librerias que nos va a permitir conectarnos a MSSQL, para esto hay que tener mucho cuidado en elegir que librería utilizar.

php-mssql-2003-14

 

4.- RECUERDAN que en el punto 1 de la seccion anterior (Instalación de PHP 5.3.27) les mencione que se fijen que verion estabamos bajando de PHP??? pues bien, bajamos la versión  “Non Thread Safe” por lo tanto la librería que deberíamos utilizar será la que mencione “nts” y compilado con la versión VC9 (significa Visual C++ 9).

Entonces copiamos a la carpeta “c:\php\ext” los siguientes archivos: php_sqlsrv_53_nts_vc9.dll y php_pdo_sqlsrv_53_nts_vc9.dll(opcional)

php-mssql-2003-15

 

5.- Solo nos falta verificar 2 cosas muy simples dentro del archivo c:\php\php.ini

  • Que la llave extension_dir tenga como valor a “C:\PHP\ext\”
extension_dir="C:\PHP\ext\"
  • Al final del archivo dentro de la seccion extenciones habilitar las librerias como extenciones colocando el siguiente valor
[PHP_SQLSRV]
extension=php_sqlsrv_53_nts_vc9.dll
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_nts_vc9.dll

6.- Probar que la librería haya cargado dentro del PHP.

Volver al navegador y ejecutamos el archivo test.php de nuevo (http://ip-de-servidor/test.php)….. si todo ha salido bien, debería de mostrarnos la siguiente pantalla:

php-mssql-2003-16

 

Bien, eso es todo por ahora, cualquier consulta me lo hacen saber….

Configurar Diccionario en español para el cliente de Zimbra Desktop

“Este pequeño manual NO es una copia de alguna pagina de internet, es propiedad intelectual de Martín Lugo Palmadera, ud. es libre de usarlo y distribuirlo, pero con la condición de citar la fuente…. http://martinlugo.networksolutions-peru.com”

Sucede que cuando instalamos ZIMBRA y deseamos utilizar como cliente de correo Zimbra desktop, esta viene configurado por defecto con el corrector ortográfico en Ingles, por lo que cuando escribimos un correo, todas las palabras quedan marcadas en rojo, pues el sistema no reconoce las palabras que digitamos.

Pues bien, para esto me he basado en unas instrucciones de la misma web de Zimbra (LINK)

Para los que les aburre leer en ingles y necesitan que los guie, aqui la versión en castellano y con imagenes:

Como Instalar el diccionario en Español-España

1.- Descargar el diccionario en Español a cualquier ubicación de nuestra PC de la siguiente dirección web:

2.- Descomprimir el archivo en la ubicación a donde descargamos el archivo ZIP. Al descomprimir este archivo nos mostrará 2 archivos:

diccionario_zimbra-1

3.- Copiar estos 2 archivos y dependiendo del SO a las siguientes carpetas (En mi caso Windos 7 – 64 bits)

diccionario_zimbra-2

Para otros SO aqui va las rutas:

Windows: <install>\win32\prism\xulrunner\dictionaries
MacOS: <install>/macos/prism/Prism.app/Contents/Frameworks/XUL.framework/dictionaries
Linux: <install>/linux/prism/xulrunner/dictionaries

4.- Editar el archivo user.js de las siguientes carpetas:

  • <install>/data/profile/user.js                   en mi caso es C:\Program Files (x86)\Zimbra\Zimbra Desktop\data\profile\user.js , y
  • X:/Users/***/AppData/Local/Zimbra/Zimbra Desktop/profile/user.js            en mi caso es C:\Users\mlugo\AppData\Local\Zimbra\Zimbra Desktop\profile\user.js

diccionario_zimbra-3

diccionario_zimbra-4

Se corrige la siguiente linea “spellchecker.dictionary” de la siguiente manera:

  • user_pref(“spellchecker.dictionary”, “es-ES”);

Ambos archivo deberían de quedar de la siguiente manera:

diccionario_zimbra-55.- Reiniciar Zimbra Desktop.

No basta con cerrar el programa, hay que cerrarlo desde el administrador de tareas y volver a abrirlo:

diccionario_zimbra-6

6.- Probamos el diccionario dentro del ZD.

diccionario_zimbra-7

Es todo!!!

Martín Lugo Palmadera