FTP Passive mode en windows 2008 IIS

Ayer me tocó configurar un servidor FTP en windows 2008, usando el IIS.

Instalamos el servicio, lo iniciamos y a probar…… al rato me llama el cliente y me dice que “no funciona”…. lo pruebo yo desde mi casa con el filezilla y entra a la primera….. ¿qué raro??. Hablo con la persona que lo está intentando y me comenta que “sí, funciona, pero necesitamos que esté en modo pasivo, ya que el AS400 nuestro va así”.

Como tengo poca confianza en los servidores windows, comencé a mirar alternativas free al IIS, pero googleando un poco, encontré la manera de colocar el FTP-IIS en modo pasivo.

Desde mi querida línea de comandos (console roolz), tecleamos:

> netsh advfirewall firewall add rule name=”FTP (no SSL)” action=allow protocol=TCP dir=in localport=21
> netsh advfirewall set global StatefulFtp enable

Explicamos:
1º) Como no quería desactivar el firewall en Windows ( se rompe), añadimos la regla

netsh advfirewall firewall add rule name=”FTP (no SSL)” action=allow protocol=TCP dir=in localport=21

2º) Lo ponemos en modo stateful o pasive para que abra puertos dinámicos en el fw de win

netsh advfirewall set global StatefulFtp enable

Reiniciamos el servicio y listo 😉

Error restaurando VM en eSXI con Backup Exec 2010 r2

Esta entrada es más bien un apunte.

Hace unos días, tuve la necesidad de restaurar una máquina virtual desde backup Exec. Hice unos cambios y me olvidé de realizar un snapshot antes de hacerlo, con lo que la “cagué” y tras intentar tirar de log’s para solucionar los errores, decidí restaurar la máquina completa de Vmware eSXI desde backup Exec.

Nunca lo había probado (error por mi parte), ya que con los snapshots siempre tenía bastante, pero esta vez no lo hice. Cargo la cinta en el ultrium, restaurar y ZASSS!!!!! error restaurando…….

Un sudor frío me recorría la espalda…. palpitaciones….. tanto trabajo de backup y ahora que lo necesito, casca…. vaya cagada!!!!. Siempre he tenido bastante confianza en el backup exec, pues me ha salvado de bastantes desastres, así que a googlear un rato a buscar algo de info.

Llevaba ya un rato y decidí meterme en la KB de symantec y veo un artículo tal que:

http://www.symantec.com/business/support/index?page=content&id=TECH128553&actp=search&viewlocale=en_US&searchid=1336600611652

Sin mucha credibilidad me voy a modificar la clave de registro:

HKEY_LOCAL_MACHINESOFTWARESymantecBackup Exec For WindowsBackup ExecEngineVMware Agent
DWORD (32bit): “Ignore devices with attached files”
VALUE: 1

Creé la entrada, con el valor, pruebo restaurar y ZASSSS!!!! éxito.

Backup Exec + Nagios; monitorizar las copias. Parte 2

Primero editamos el fichero donde tenemos todos los hosts, y definimos el nuevo:

define host {
use windows-server
host_name tertius_angel_copias
alias tertius_angel_copias
address ip.del.servidor.be
icon_image win40.gif
statusmap_image win40.gd2
hostgroups routers_angel

Y ahora, el service:

define service{
use generic-service
host_name tertius_angel_copias
service_description BackupExec Copia diaria
check_command check_nrpe!check_be
normal_check_interval 4
retry_check_interval 3
max_check_attempts 4
notification_interval 0
}

Reiniciamos el nagios…

# /etc/init.d/nagios force-reload

Y listo.

Ahora veremos si lo hemos hecho bien….

Y nos devuelve el estado del servicio:

Aquí nos “chiva” que la copia ha acabado con excepciones.

Backup Exec + Nagios; monitorizar las copias. Parte 1

Esta entrada explicará cómo tener monitorizadas las copias de backup exec desde nagios. En principio parece que no tenga mucha utilidad, pero si tenéis varios clientes a monitorizar (como es mi caso, más de 20), tener todo unificado en una sola consola / web es bastante ágil.

Para ello, necesitaremos:

1º) Nagios > 3.x
2º) NSClient++ instalado en el servidor a monitorizar.
2º) nagios_be
Instalaremos este ejecutable en el servidor a monitorizar, siendo los archivos:
check_be.exe
– La documentación de cómo hacerlo:Check_be

He seleccionado la versión 3.x del Nsclient; es la que he ido probando y funciona bastante bien. Descargamos y lo instalamos en c:nagios del servidor a monitorizar.

Una vez instalado (siguiente, siguiente), editaremos el fichero c:nagiosnsc.ini y modificaremos (en negrita):

[modules]
NRPEListener.dll
NSClientListener.dll
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
CheckEventLog.dll
CheckHelpers.dll
;# NSCLIENT++ MODULES
;# A list with DLLs to load at startup.
; You will need to enable some of these for NSClient++ to work.
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
; * *
; * N O T I C E ! ! ! – Y O U H A V E T O E D I T T H I S *
; * *
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
;FileLogger.dll
;CheckSystem.dll
;CheckDisk.dll
;NSClientListener.dll
;NRPEListener.dll
;SysTray.dll
;CheckEventLog.dll
;CheckHelpers.dll
;CheckWMI.dll
;
; Script to check external scripts and/or internal aliases.
;CheckExternalScripts.dll
;
; NSCA Agent if you enable this NSClient++ will talk to NSCA hosts repeatedly (so dont enable unless you want to use NSCA)
;NSCAAgent.dll
;
; LUA script module used to write your own “check deamon”.
;LUAScript.dll
;
; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!
;RemoteConfiguration.dll
; Check other hosts through NRPE extreme beta and probably a bit dangerous! 🙂
;NRPEClient.dll
; Extreamly early beta of a task-schedule checker
;CheckTaskSched.dll

[Settings]

use_file=1
allowed_hosts=ip.del.servidor.nagios
password=password

[log]

[NSClient]
;# ALLOWED HOST ADDRESSES
; This is a comma-delimited list of IP address of hosts that are allowed to talk to NSClient deamon.
; If you leave this blank the global version will be used instead.
allowed_hosts=ip.del.servidor.nagios
;
;# NSCLIENT PORT NUMBER
; This is the port the NSClientListener.dll will listen to.
port=12489
;
[NRPE]
;# NRPE PORT NUMBER
; This is the port the NRPEListener.dll will listen to.
port=5666
;
;# COMMAND TIMEOUT
; This specifies the maximum number of seconds that the NRPE daemon will allow plug-ins to finish executing before killing them off.
;command_timeout=60
;
;# COMMAND ARGUMENT PROCESSING
; This option determines whether or not the NRPE daemon will allow clients to specify arguments to commands that are executed.
;allow_arguments=0
;
;# COMMAND ALLOW NASTY META CHARS
; This option determines whether or not the NRPE daemon will allow clients to specify nasty (as in |`&><'"[]{}) characters in arguments. ;allow_nasty_meta_chars=0 ; ;# USE SSL SOCKET ; This option controls if SSL should be used on the socket. ;use_ssl=1 ; ;# BIND TO ADDRESS ;# ALLOWED HOST ADDRESSES ; This is a comma-delimited list of IP address of hosts that are allowed to talk to NRPE deamon. ; If you leave this blank the global version will be used instead. allowed_hosts=ip.del.servidor.nagios
;
;# SCRIPT DIRECTORY
; All files in this directory will become check commands.
; *WARNING* This is undoubtedly dangerous so use with care!
;script_dir=scripts
;
;# SOCKET TIMEOUT
; Timeout when reading packets on incoming sockets. If the data has not arrived withint this time we will bail out.
;socket_timeout=30

[Check System]
;# CPU BUFFER SIZE
; so don’t use a larger buffer then you need (ie. the longest check you do +1).
;CPUBufferSize=1h
;
;# CHECK RESOLUTION
; The resolution to check values (currently only CPU).
; The value is entered in 1/10:th of a second and the default is 10 (which means ones every second)
;CheckResolution=10
;
;# CHECK ALL SERVICES
; Configure how to check services when a CheckAll is performed.
; …=started means services in that class *has* to be running.
; …=stopped means services in that class has to be stopped.
; …=ignored means services in this class will be ignored.
;check_all_services[SERVICE_BOOT_START]=ignored
;check_all_services[SERVICE_SYSTEM_START]=ignored
;check_all_services[SERVICE_AUTO_START]=started
;check_all_services[SERVICE_DEMAND_START]=ignored
;check_all_services[SERVICE_DISABLED]=stopped

[External Script]
;# COMMAND TIMEOUT
; This specifies the maximum number of seconds that the NRPE daemon will allow plug-ins to finish executing before killing them off.
;command_timeout=60
;
;# COMMAND ARGUMENT PROCESSING
; This option determines whether or not the NRPE daemon will allow clients to specify arguments to commands that are executed.
;allow_arguments=0
;
;# COMMAND ALLOW NASTY META CHARS
; This option determines whether or not the NRPE daemon will allow clients to specify nasty (as in |`&><'"[]{}) characters in arguments. ;allow_nasty_meta_chars=0 ; ;# SCRIPT DIRECTORY ; All files in this directory will become check commands. ; *WARNING* This is undoubtedly dangerous so use with care! ;script_dir=c:myscriptdir [Script Wrappings] vbs=cscript.exe //T:30 //NoLogo scriptslibwrapper.vbs %SCRIPT% %ARGS% ps1=cmd /c echo scripts%SCRIPT% %ARGS%; exit($lastexitcode) | powershell.exe -command - bat=scripts%SCRIPT% %ARGS% [External Scripts] ;check_es_long=scriptslong.bat ;check_es_ok=scriptsok.bat ;check_es_nok=scriptsnok.bat ;check_vbs_sample=cscript.exe //T:30 //NoLogo scriptscheck_vb.vbs ;check_powershell_warn=cmd /c echo scriptspowershell.ps1 | powershell.exe -command - [External Alias] alias_cpu=checkCPU warn=80 crit=90 time=5m time=1m time=30s alias_cpu_ex=checkCPU warn=$ARG1$ crit=$ARG2$ time=5m time=1m time=30s alias_disk=CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED alias_service=checkServiceState CheckAll alias_process=checkProcState $ARG1$=started alias_mem=checkMem MaxWarn=80% MaxCrit=90% ShowAll type=physical alias_up=checkUpTime MinWarn=1d MinWarn=1h alias_file_age=checkFile2 filter=out "file=$ARG1$" filter-written=>1d MaxWarn=1 MaxCrit=1 “syntax=%filename% %write%”
alias_file_size=checkFile2 filter=out “file=$ARG1$” filter-size=>$ARG2$ MaxWarn=1 MaxCrit=1 “syntax=%filename% %size%”
alias_file_size_in_dir=checkFile2 filter=out pattern=*.txt “file=$ARG1$” filter-size=>$ARG2$ MaxWarn=1 MaxCrit=1 “syntax=%filename% %size%”
alias_event_log_old=CheckEventLog file=application file=system filter=new filter=out MaxWarn=1 MaxCrit=1 filter-generated=>2d filter-severity==success filter-severity==informational truncate=800 unique descriptions “syntax=%severity%: %source%: %message% (%count%)”
alias_event_log_new=CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 “filter=generated gt -2d AND severity NOT IN (‘success’, ‘informational’)” truncate=800 unique descriptions “syntax=%severity%: %source%: %message% (%count%)”
alias_event_log=alias_event_log_new

check_ok=CheckOK Everything is fine!

[Wrapped Scripts]
;check_test_vbs=check_test.vbs /arg1:1 /arg2:1 /variable:1
;check_test_ps1=check_test.ps1 arg1 arg2
;check_test_bat=check_test.bat arg1 arg2
;check_battery=check_battery.vbs
;check_printer=check_printer.vbs

; [includes]
;# The order when used is “reversed” thus the last included file will be “first”
;# Included files can include other files (be carefull only do basic recursive checking)
;
; myotherfile.ini
; real.ini

[NSCA Agent]
;# CHECK INTERVALL (in seconds)
; How often we should run the checks and submit the results.
;interval=5
;
;# ENCRYPTION METHOD
; This option determines the method by which the send_nsca client will encrypt the packets it sends
; to the nsca daemon. The encryption method you choose will be a balance between security and
; performance, as strong encryption methods consume more processor resources.
; You should evaluate your security needs when choosing an encryption method.
;
; Note: The encryption method you specify here must match the decryption method the nsca daemon uses
; (as specified in the nsca.cfg file)!!
; Values:
; 0 = None (Do NOT use this option)
; 1 = Simple XOR (No security, just obfuscation, but very fast)
; 2 = DES
; 3 = 3DES (Triple DES)
; 4 = CAST-128
; 6 = xTEA
; 8 = BLOWFISH
; 9 = TWOFISH
; 11 = RC2
; 14 = RIJNDAEL-128 (AES)
; 20 = SERPENT
;encryption_method=14
;
;# ENCRYPTION PASSWORD
; This is the password/passphrase that should be used to encrypt the sent packets.
;password=
;
;# BIND TO ADDRESS
; Allows you to bind server to a specific local address. This has to be a dotted ip adress not a hostname.
; Leaving this blank will bind to “one” local interface.
; — not supported as of now —
;bind_to_address=
;
;# LOCAL HOST NAME
; The name of this host (if empty “computername” will be used.
;hostname=
;
;# NAGIOS SERVER ADDRESS
; The address to the nagios server to submit results to.
;nsca_host=192.168.0.1
;
;# NAGIOS SERVER PORT
; The port to the nagios server to submit results to.
;nsca_port=5667
;

;# CHECK COMMAND LIST
; The checks to run everytime we submit results back to nagios
; Any command(alias/key) starting with a host_ is sent as HOST_COMMAND others are sent as SERVICE_COMMANDS
; where the alias/key is used as service name.
;
[NSCA Commands]
;my_cpu_check=checkCPU warn=80 crit=90 time=20m time=10s time=4
;my_mem_check=checkMem MaxWarn=80% MaxCrit=90% ShowAll type=page
;my_svc_check=checkServiceState CheckAll exclude=wampmysqld exclude=MpfService
;host_check=check_ok

[NRPE Handlers]
;# COMMAND DEFINITIONS
;# Command definitions that this daemon will run.
;# Can be either NRPE syntax:
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
;# Or simplified syntax:
;check_other=-H 192.168.0.1 -p 5666 -c remote_command -a arguments
check_cpu=inject checkCPU warn=80 crit=90 5 10 15
nrpe_cpu=inject checkCPU warn=80 crit=90 5 10 15
check_be=c:nagioscheck_be.exe “c:Program FilesSymantecBackup ExecData” “CopiaESXi”

;# REMOTE NRPE PROXY COMMANDS
; A list of commands that check other hosts.
; Used by the NRPECLient module
[NRPE Client Handlers]
;check_other=-H 192.168.0.1 -p 5666 -c remote_command -a arguments
check_cpu=inject checkCPU warn=80 crit=90 5 10 15
nrpe_cpu=inject checkCPU warn=80 crit=90 5 10 15
check_be=c:nagioscheck_be.exe “c:Program FilesSymantecBackup ExecData” “CopiaESXi”

;# LUA SCRIPT SECTION
; A list of all Lua scripts to load.
;[LUA Scripts]
;scriptstest.lua

Reiniciamos el servicio de windows. Ahora copiamos el fichero check_be.exe en la carpeta que nos ha creado el instalador (c:nagios)

Una vez copiado, desde el servidor windows, comprobamos si funciona, ejecutando desde el terminal:

C:nagios>check_be “c:Program FilesSymantecBackup ExecData” “CopiaESXi” -w1 -c3
Job: CopiaESXi, Status: Completed with exceptions, Date:5/4/2012
C:nagios>

Ahora explicamos…

c:nagioscheck_be –> el ejecutable

“c:Program FilesSymantecBackup ExecData” –> la ubicación de los catálogos de veritas, en mi caso, en la versión 2010.

“CopiaESXi” –> el nombre que le hemos dado a la tarea dentro del backup exec

“-w1 -c3” –> Según la ayuda
-c :
Return ‘critical’ state if the last occurrence of the job is older
than days. This can help to determine if a scheduled job is
disabled, locked, paused, or any other reason.

-w : Same, but for ‘warning’ state

Seguimos…. damos por hecho que la prueba de arriba ha salido bien… ahora vamos a la parte de los ficheros del nagios

Exchange 2010-Windows 2008 r2 versus Zarafa 7.0.x-Debian Squeeze

Es te artículo no es ninguna crítica a ninguno de los 2 sistemas, pero son mis impresiones después de 7 meses de haber migrado a zarafa mi servidor de correo.

Desde el 2001, tengo mi propio servidor de correo en casa, para mi dominio craem.net y ser un poco independiente de los isp’s. A lo largo de este tiempo he usado:

1º) SMTPBeamer, sobre windows NT4 / NT4 terminal server
2º) Exchange 5.5, Exchange 2000, 200e y 2010 (sobre windows NT4, 2000, 2003 y 2008 r2)
3º) Zarafa 7.0.x (sobre Debian 6.0)

Empecé con SMTPBeamer, que es un sencillo software para pop3 / smtp y un pequeño servidor web…. pero al cabo de una temporada, ví alguna limitación que otra…. si cambiaba de pc, tenía que ir copiando los ficheros, pst’s y demás gaitas para seguir teniéndolo igual.

Visto esto, me lancé a probar lotus Notes y exchange 5.5….. pero el lotus, se me hizo tan cuesta arriba que acabé dejándolo por imposible, aunque me pareció muy potente, pero me quedé con el sabor de boca de querer matar moscas a cañonazos, y me decidí por el Exchange 5.5.

Con el exchange 5.5 ya tenía solucionado el problema del repositorio del correo, pero me apetecía poder leer el correo vía web, cuando no estaba en casa, así que me lanzé a migrarlo a exchange 2000…. me exporté los buzones a pst’s, formatear, windows 2000 server y exchange 2000.

Esto me duró varios años, migraciones de máquina y, allá por el 2005, descubrí el exchange 2003, con un owa remodelado y era compatible con activesync… las primeras pda’s con windows mobile 2003. Migré sistema operativo a 2003 y exchange… todo perfecto, pero por entonces ya usaba algunas cosillas de linux y mi decepción era grande, pues salvo por pop3/smtp y webmail, no conseguí integrar el exchange con mis máquinas linux.

Esto me duró varios años y, en el 2008 intenté instalar el exchange 2007, pero sus requerimientos de máquina de 64 bits hicieron que no lo llegase a probar… no tenía ningún pc de esas características… así que lo alargué hasta el 2010, cuando salió la versión 14 (exchange 2010).

Durante estos años, había visto varios opensource, tipo zimbra, openXchange, zarafa, roundCube, postfix, squirrelmail…. A punto de migrar a otro sistema, me salió en un cliente una migración de 2003 a 2010, así que me lié la manta a la cabeza y migré el servidor de mi casa a windows 2008 r2 + exchange 2010.

La migració, que la hice en un pc nuevo (un ML 110 G5), fué una odisea…. cuando no era un error, era otro, cuando no eran las carpetas públicas, era los permisos del storage, pero tras 2 semanas de intentos, lo migré…. casi hubises preferido eliminar el dominio y volverlo a crear de nuevo, pero como lo tenía que hacer en un cliente, me lanzé.

El servidor no iba fino… 8 Gigas de ram y 2 Hd’s en raid para el correo…. máquina lenta, exceso de consumo de recursos, el active sync iba mal y el colmo fue que no pude pasarle el Sp1 por algo que seguramente hice mal durante la migración.

Harto de todo esto y de tener un solo equipo para el correo, decidí dar el salto de mi último servidor windows al opensource, así que probé de nuevo :

– Zarafa
– Zimbra
– OpenXchange
– RoundCube

Y probando, probando, probando, encontré el Zarafa, que acababa de sacar la versión 7.0. Sencillamente, me encantó y lo migré.

Tras conseguir instalarlo correctamente (o casi), migré los buzones y lo dejé listo, con el active sync.

Y ahora, tras 7 meses de uso, he aquí las ventajas y desventajas:

Exchange 2010
————-
PROS:
– Integración impecable con outlook / evolution
– Cliente MAPI
– Integración con activesync avanzada
– WebAccess impecable con MAC / Linux / Windows en unos navegadores determinados.
– Copias de seguridad perfectas con Backup Exec 2010; incluso se pueden restaurar emails concretos de buzones

CONTRAS:
– Elevado consumo de recursos
– Necesita S.O. de 64 bit’s
– Licencia de windows 2008 + Licencia de Exchange + Cal’s de windows + Cal’s de exchange
– Consola de administración lenta y confusa en máquinas modestas
– No trae integración con antispam de verdad.
– Funciona solo con windows

ZARAFA 7.0.X
————-
PROS:
– OpenSource (Licencia affero GPL).
– WebAccess muy bonito.
– Funciona con Linux ….(qué bueno).
– Metodología de buzones (al igual que exchange).
– BBDD de mysql con INNODB.
– Compatible con outlook (3 licencias incluidas con la versión open source y versión de pago ilimitada, bajo licencia).
– Bajo consumo de recursos y funciona muy bien en máquinas modestas.
– Muy estable y actualizaciones constantes
– ActiveSync remoto.

CONTRAS:
– Es más difícil de poner en marcha que el exchange, si quieres dejarlo todo muy pulido.
– Mala integración con las copias de seguridad, tanto en opensource como la versión de pago).
– Para los usuarios de linux, no trae un conector para evolution / thunderbird (lamentable).

Vamos a poner un ejemplo, para una empresa de 5 usuarios, los costes de cada solución:

Solución windows:
—————–
– Windows 2008 SMB: 485 Euros (aprox)
– Copias de seguridad: Windows Backup
– Antivirus Microsoft: 0 euros
– AntiSpam XWALL : 685 Euros
– Licencia de office Outlook: 189 € x 5 = 945 (opcional si solo usamos el owa)

Total: 2.115 €

Solución Linux:
—————-
– Debian Squeeze: 0 Euros
– Zarafa: 0 Euros (versión opensource)
– Copias de seguridad: Scripts y dumps de mysql
– Antispam : 0 Euros (integrando clamav, postfix, mailscanner, spamassassin)
– Evolution / Thunderbird: 0 Euros

Conclusiones:

Migrando de exchange a Zarafa he ganado:
—————————————-
– Software OpenSource y usar debian en mi servidor.
– Mejor rendimiento y menor consumo de recursos.
– Conservar sincronización remota de dispositivos.
– Web Access impecable.
– Tener todo el software legal.

Cosas que he perdido con zarafa:
——————————–
– Integración regular si el cliente es linux: con evolution tenemos, correo por imap4, calendario con CalDav y contactos en solo lectura con CardDav.

Sigo sin entender que no haya un conector para evolution / thunderbird para linux y sí lo haya para outlook. Espero que en un futuro se solucione.
Para extraer todo su potencial en Linux, deberás acceder por webaccess y en windows, comprar las licencias para el conector de outlook, que sigue siendo infinitamente más baratas que las cals de exchange.

– Consola centralizada.
– Copias granulares de los buzones.

Aún con la versión de pago, sólo puedes hacer copias de manera elegante con “SEP BACKUP” y no llega a ser tan granular como la opción de exchange 2010 + backup exec 2010

– Tener antivirus en la máquina host 🙂
– Reinicios por actualizaciones mensuales 🙂
– Tener que comprar licencias.:-)

En fin, me sigo quedando con zarafa.

Eliminar usuarios "huérfanos" en sql server 2008

Estos días, he tenido que migrar un aplicativo en un cliente y ello conlleva la migración del sql server 2000 a sql server 2008.

no cabe decir que, me he tenido que buscar la vida “bastante” para migrar el sql….. el proveedor me dá el CD de instalación y un “búscate la vida” para hacerlo….. y la expresión: ” si tienes problemas con el SQL, te enviamos un técnico”.

en fin, tenía que hacerlo sí o sí.

1º) Instalé el sql server en otro servidor
2º) Hice copia de seguridad de las BBDD de SQL 2000
3º) Recuperé las copias

Ahora llega el problema… tenía que crear los usuarios en el SQL server 2008 y problema…. los usuarios ya existían, por lo tanto, no los puedo volver a crear.

Primer problema…. cómo eliminar los usuarios huérfanos….. en sql server 2000 lo tenía bastante por la mano, pero en 2008 no… así que “googleando” bastante, encontré la solución aquí.

El proceso es sencillo….. abrimos el analizador de consultas y sobre las BBDD ejecutamos:

select u.name from master..syslogins l right join
sysusers u on l.sid = u.sid
where l.sid is null and issqlrole <> 1 and isapprole <> 1
and (u.name <> ‘INFORMATION_SCHEMA’ and u.name <> ‘guest’
and u.name <> ‘system_function_schema’)

Y ahora, para eliminar a los usuarios…. en la misma pantalla y por BBDD, ejecutamos:

exec sp_revokedbaccess ‘usuario_a_borrar’

Y con esto, ya tenemos solucionado el problema

Exchange 2010, Evolution, Ubuntu 11.04

Hace pocos días que ha salido la nueva release de Ubuntu, la 11.04, que aporta la nueva interfaz Unity. Visualmente es más cool, y agrupa las aplicaciones en iconos, en una barra lateral.

Estuve googleando, por si algún valiente ya lo había instalado en un macbook Pro 7,1…. así evito sorpresas de cosas que no van para tener que formatear mi Mac. Desde que uso linux, los formateos de mi pc de trabajo y personal (hace unos años), se han reducido drásticamente…. no virus, no lentitud al arrancar y, me aseguro que el puerto serie que uso para configurar los routers, me funciona a la primera, cosa que no siempre era así con windows (ni xp ni 7).

Mi servidor de correo, mientras no lo migre, sigue siendo un windows 2008 r2 con exchange 2010, ya que en una sola plataforma tengo el activesync para los moviles de casa (android y iOS) y un servidor centralizado para los buzones. Tengo en vista el Zimbra o Zarafa, pero hay que sopesar el precio de las licencias para soportar dispositivos móviles, mientras que de Microsoft, al trabajar en una empresa distribuidora y certificada, tenemos licencias para uso interno… tiempo al tiempo.

Exchange usa MAPI como protocolo principal para los buzones… aunque puedes usar SMTP / IMAP / POP3, no es lo mismo… para mi MAC con OS X, tengo solucionado el tema con el Outlook 2011, que funciona bastante bien, pero con Linux (lo que uso a diario), el tema está más difícil.

Desde que salió la release 10.04, el conector exchange-mapi ha dado un giro radical, al ser compatible con exchange 2003, 2007 y 2010 y lo usé con ubuntu 10.04 y 10.10, pero al migrar a la 11.04, dejó de funcionar.

Estuve googleando unos días y, en un foro encontré un grupo de usuarios con el mismo problema…. aqui.

Explican el problema y proponen unos cambios en las librerias exchange-mapi y libexchangemapi.

Paquete deb para 32 bits:

evolution-mapi_0.32.2-0ubuntu1_i386
libexchangemapi-1.0-0_0.32.2-0ubuntu1_i386

Cambiar las extensiones de *.tar a *.deb

Paquete deb para 64 bits:
evolution-mapi_0.32.2-0ubuntu1_amd64
libexchangemapi-1.0-0_0.32.2-0ubuntu1_amd64