Esta entrada es otro apunte.
Desde la versión 7.0.6 de zarafa, tenemos el complemento Zarafa WebApp, que añade más flexibilidad a la hora de modificar y personalizar el webaccess de zarafa.
Personalmente, aunque me gusta, el webaccess estándard es muy intuitivo y “like” outlook, cosa que me desagrada un poco, ya que yo, al menos, no busco ese parecido, sinó una alternativa.
El nuevo interfaz, es muy bonito, visual y != de owa (por fin!!!!), así que tras descargar la versión 7.0.7, veo que está disponible este complemento como paquete de instalación:
root@zeus:/usr/src/zcp-7.0.7-34256-debian-6.0-x86_64# ls
helpers.inc
install.sh
libical0_0.44-3_amd64.deb
libical-dev_0.44-3_amd64.deb
libvmime0_0.9.2+svn603-3_amd64.deb
libvmime-dev_0.9.2+svn603-3_amd64.deb
php5-mapi_7.0.7-34256_amd64.deb
python-mapi_7.0.7-34256_amd64.deb
uninstall.sh
zarafa_7.0.7-34256_all.deb
zarafa-client_7.0.7-34256_amd64.deb
zarafa-common_7.0.7-34256_amd64.deb
zarafa-contacts_7.0.7-34256_amd64.deb
zarafa-dagent_7.0.7-34256_amd64.deb
zarafa-dev_7.0.7-34256_amd64.deb
zarafa-gateway_7.0.7-34256_amd64.deb
zarafa-ical_7.0.7-34256_amd64.deb
zarafa-indexer_7.0.7-34256_amd64.deb
zarafa-libarchiver_7.0.7-34256_amd64.deb
zarafa-libs_7.0.7-34256_amd64.deb
zarafa-licensed_7.0.7-34256_amd64.deb
zarafa-monitor_7.0.7-34256_amd64.deb
zrafa-server_7.0.7-34256_amd64.deb
zarafa-spooler_7.0.7-34256_amd64.deb
zarafa-utils_7.0.7-34256_amd64.deb
zarafa-webaccess_7.0.7-34256_all.deb
zarafa-webapp_1.0-34265_all.deb
#
Una vez instalamos todos los paquetes, hemos de cambiar los permisos:
# chown www-data:www-data /var/lib/zarafa-webapp/tmp/
Y nos aseguramos de que tenemos instaladas todas las dependencias para poder usarlo correctamente:
# apt-get install php5-curl
Y reiniciamos el apache
# /etc/init.d/apache2 restart
tecleamos en el navegador:
https://ip.del.servidor/webapp

y ahora vemos la nueva interfaz:

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_MACHINE\SOFTWARE\Symantec\Backup Exec For Windows\Backup Exec\Engine\VMware Agent
DWORD (32bit): “Ignore devices with attached files”
VALUE: 1
Creé la entrada, con el valor, pruebo restaurar y ZASSSS!!!! éxito.
Otra entrada que es más un apunte.
Una vez instalado del debian en nuestro vmware eSXI, instalaremos las tools.
Primero, desde la máquina, en el vmware, le damos a “install vmware tools”.
Montamos el cd:
# mount /dev/cdrom
Instalamos unos paquetes básicos…
apt-get install gcc make
apt-get install linux-headers-$(uname -r)
y luego …
# ./vmware-install.pl
Tenía pendiente instalar el bigBlueButton sobre Debian…. aquí está la guia.
Primero, hemos de añadir los repositorios de ubuntu:
# wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -O- | apt-key add -
# wget http://archive.bigbluebutton.org/bigbluebutton.asc
# sudo apt-key add bigbluebutton.asc
# echo “deb http://ubuntu.bigbluebutton.org/lucid/ bigbluebutton-lucid main”
| sudo tee /etc/apt/sources.list.d/bigbluebutton.list
# echo “deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse”
| sudo tee -a /etc/apt/sources.list
# apt-get update
Añadimos la gestión de usuarios:
aptitude install sudo
Y más cosillas
#aptitude install libgmp3c2
# cd /usr/src
# wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/main/m/mpfr/libmpfr1ldbl_2.4.2-3ubuntu1_amd64.deb
# dpkg -i libmpfr1ldbl_2.4.2-3ubuntu1_amd64.deb
y preparamos para nginx:
mkdir -p /var/www/nginx-default/
touch /var/www/nginx-default/50x.html
Ahora instalamos BigBlueButton con asterisk:
aptitude install bbb-voice-conference bbb-client bigbluebutton
Esperamos un rato y acabamos…
bbb-conf –clean
bbb-conf –check
bbb-conf –setip tu.ip.bbb.es
Enjoy your BBB
Esta entrada es más un apunte…. me ha costado varias pruebas conseguirlo.
OwnCloud es un producto magnífico para tener una “nube” personal, que tan de moda está ahora. Hice una máquina virtual para probarla y tras varios días jugando con ella, decidí tener la auth. de usuarios vía openLdap… así sigo teniendo con el mismo user/pass: Zarafa, Radius 802.1x, validación vpn ipsec, openFire, openMeetings y ahora, OwnCloud…. todo ello openSource y sin tener que depender de micro$oft.
Para hacer la autenticación de openLdap, en la pestaña ajustes / Administrador y colocamos los siguientes ajustes:

Los campos / valores:
Host: IP.DEL.SERVIDOR.OPENLDAP
Port: 389
Name: cn=adminLDAP,dc=dominio,dc=ldap // usuario con derecho de lectura
Password: passwordLDAP //el password
base: dc=dominio,dc=ldap // raíz del openLDAP
User Login Filter: uid=%uid
Display Name Field:uid
Enjoy your OwnCloud with openLDAP
Estos días he tenido que aprovechar unos servidores debian para añadir más servicios…… de los primeros debian 5.x (lenny).
Mi sorpresa fue al intentar hacer un apt-get install “paquete” y darme cuenta que los repos que veían por defecto me daban errores.
Googleando un poco, encontré la solución, aqui
Nos vamos al fichero /etc/apt/sources.list y los dejamos con éstos:
## Debian – stable
deb http://ftp.us.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.us.debian.org/debian/ stable main contrib non-free
## Actualizaciones de seguridad
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
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.
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:\nagios\nsc.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:\my\script\dir
[Script Wrappings]
vbs=cscript.exe //T:30 //NoLogo scripts\lib\wrapper.vbs %SCRIPT% %ARGS%
ps1=cmd /c echo scripts\%SCRIPT% %ARGS%; exit($lastexitcode) | powershell.exe -command -
bat=scripts\%SCRIPT% %ARGS%
[External Scripts]
;check_es_long=scripts\long.bat
;check_es_ok=scripts\ok.bat
;check_es_nok=scripts\nok.bat
;check_vbs_sample=cscript.exe //T:30 //NoLogo scripts\check_vb.vbs
;check_powershell_warn=cmd /c echo scripts\powershell.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:\nagios\check_be.exe “c:\Program Files\Symantec\Backup Exec\Data” “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:\nagios\check_be.exe “c:\Program Files\Symantec\Backup Exec\Data” “CopiaESXi”
;# LUA SCRIPT SECTION
; A list of all Lua scripts to load.
;[LUA Scripts]
;scripts\test.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 Files\Symantec\Backup Exec\Data” “CopiaESXi” -w1 -c3
Job: CopiaESXi, Status: Completed with exceptions, Date:5/4/2012
C:\nagios>
Ahora explicamos…
c:\nagios\check_be –> el ejecutable
“c:\Program Files\Symantec\Backup Exec\Data” –> 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
Esta entrada es más bien un apunte.
Netflow, es un protocolo diseñado por Cisco, que es usado para recolectar información sobre el tráfico IP que pasa por nuestro dispositivo; bastante útil para si tenemos nuestras sedes por vpn y queremos ver en detalle en qué nos gastamos el ancho de banda.
No entraremos en detalle sobre los programas para recolectar, ya que hay varios, tanto para windows como linux y libres / comerciales.
Para empezar, entraremos en nuestro router y en el interfaz público o más cerca del recolector de netlow, ingresaremos los siguientes comandos…. (suponemos que el interfaz público es el FA0/0).
router#conf t
router(config)#interface fa0/0
router(config-if)#ip route-cache flow
Ahora vamos a configurar el destino y versión:
ip flow-export source FastEthernet0/0
ip flow-export version 9
ip flow-export destination ip.del.netflow.x 9996
Y ahora a recolectar y analizar el tráfico.
Ahora toca protegernos un poco de los spammers.
Primero de todo, instalaremos el postgrey….. recordemos… recibimos un correo y la primera vez, devolvemos un 4.x.x y el servidor remoto, si cumple las RFC, deberá volver a intentar la entrega de correo pasados unos minutos.
Instalamos postgrey:
apt-get install postgrey
Editamos el fichero /etc/default/postgrey veremos donde está escuchando…
# nano /etc/default/postgrey
y tendremos algo tal que:
postgrey startup options, created for Debian
# you may want to set
# –delay=N how long to greylist, seconds (default: 300)
# –max-age=N delete old entries after N days (default: 35)
# see also the postgrey(8) manpage
POSTGREY_OPTS=”–inet=60000″
# the –greylist-text commandline argument can not be easily passed through
# POSTGREY_OPTS when it contains spaces. So, insert your text here:
#POSTGREY_TEXT=”Your customized rejection message here”
Cambiamos el puerto al que sea de nuestro gusto (en mi caso al 60000) y reiniciamos postgrey.
Para ver si lo hemos hecho correctamente….
root@antispam:/etc/default# netstat -anp | grep 60000
tcp 0 0 127.0.0.1:60000 0.0.0.0:* LISTEN 3955/postgrey.pid -
root@antispam:/etc/default#
Editamos el fichero /etc/postfix/main.cf y añadimos en la sección:
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:60000,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client dnsbl.sorbs.net,permit
Reiniciamos postfix y a probar….
Por último, instalaremos el openSPF, para verificar la identidad de los correos en el caso de tener configurado bien los dns.
Instalamos los paquetes:
apt-get install postfix-policyd-spf-perl
Volvemos a editar el main.cf y ponemos:
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:60000,
check_policy_service unix:private/policy,
Editamos el /etc/postfix/master.cf y añadimos la final:
policy unix – n n – – spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl
Ahora instalaremos la parte en PERL… en la consola, tecleamos
perl -MCPAN -e shell
En la consola del perl, tecleamos:
install Mail::SPF
Descargará paquetes…. una vez acabe, tecleamos en la consola:
q
Instalamos el postfix-policy-spf-perl
cd /usr/src
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.001.tar.gz
tar xvfz postfix-policyd-spf-perl-2.001.tar.gz
cd postfix-policyd-spf-perl-2.001
cp postfix-policyd-spf-perl /usr/lib/postfix/policyd-spf-perl
Por último, editamos el fichero /etc/postfix/master.cf y añadimos al final:
policy unix – n n – – spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl
Reiniciamos postfix y a parar los spammers !!!!!
Mirar los diversos ficheros que se han tocado y podréis ver más opciones que tienen todos los paquetes que hemos instalado.