Archivo

Archivo del autor

TareasWindows7

Lunes, 26 de marzo de 2012

Tareas en Windows 7 desde la línea de comandos

Para gestionar las tareas en Windows 7, además del Programador de Tareas accesible desde el panel de control (en sistema y seguridad), disponemos del comando schtasks.exe. Este comando sustituye al comando at.exe (aunque todavía se encuentra presente).

Para ver las tareas que tenemos programadas podemos usar:

C:\>schtasks |more

En el listado que nos aparece se nos muestra el estado de cada tarea y podemos ver las que no se han iniciado (puede que por algún problema). Si queremos borrar alguna de estas tareas simplemente ejecutaremos:

C:\>schtasks /delete /TN "Nombre de la tarea"

El sistema nos solicitará confirmación y la tarea será borrada del sistema.

 

Windows ,

estadoMemcached

Jueves, 19 de enero de 2012

Información estado Memcached

Memcached es un sistema libre y open source, de gran rendimiento, distribuido y de propósito general para caché basado en memoria.

Para saber las opciones de configuración con las que ha sido arrancado podemos usar el siguiente comando:

# echo "stats" | nc localhost 11211

Para obtener información información sobre los valores que se están almacenando en la caché podemos utilizar los comandos memcat y memdump que vienen con la librería libmemcached.

El comando memdump nos permite obtener un listado de las claves que se están guardando actualmente en el servidor:

# memdump --servers=localhost

En las pruebas que yo he realizado, este comando devuelve un conjunto de claves y luego finaliza con error.

Si queremos conocer el contenido exacto de una de las claves guardadas en el servidor podemos usar el comando memcat:

# memcat --servers=localhost nombreclave

nombreclave puede ser uno de los valores obtenidos con el comando memdump o lo podemos obtener de las aplicaciones que usan memcached (por ejemplo puede ser el identificador de una sesión,…)

 

 

Sin clasificar , ,

LDAPSearchWrapLines

Viernes, 28 de octubre de 2011

Corte de líneas largas en LDAPSearch

Si en el LDIF que se devuelve como resultado de una consulta al LDAP con el comando ldapsearch hay líneas más largas de 76 caracteres, estas lineas son cortadas y los caracteres sobrantes se escriben en la línea siguiente (esta línea comienza por un espacio en blanco):

dn: cn=UN_NOMBRE_LARGO_MUY_LARGO,cn=portal.080827.121025.144000000,cn=groups,d
 c=username,dc=local

Para volver a concatenar estas líneas podemos usar el siguiente script escrito en Perl:

#!/usr/bin/perl

$cnt=0;
while ($line = <>) {
 chomp($line);
 if ( $line =~ /^authpassword/ ) {
 next;
 } elsif ( $line =~ /^\S+/) { ### this line is a "normal" or starting line
 $results[$cnt++] = $line;
 } elsif ( $line =~ /^$/ ) {  ### this line is blank
 $results[$cnt++] = "";
 } elsif ( $line =~ /^ \S+/ ) {  ### this line is a continuation
 $results[$cnt-1] = $results[$cnt-1] . substr($line,1);
 }
}

for $i (0 .. $cnt) {
 print "$results[$i]\n";
}

Este script se ha obtenido de la dirección: http://www.dannorris.com/2008/09/08/concatenating-lines-in-ldapsearch-results/

Linux , ,

CommitMonitor

Martes, 18 de octubre de 2011

CommitMonitor: utilidad sencilla para monitorizar repositorios SVN

CommitMonitor es una pequeña utilidad para Windows que permite monitorizar los commits que se realizan a repositorios Subversion.

Esta utilidad se queda residente en el system tray de Windows y periodicamente monitoriza los repositorios SVN que nos interesan y nos avisa con los últimos commits realizados en ellos. El intervalo de tiempo entre las comprobaciones es configurable para cada repositorio.

Windows

ApacheCaseInsensitive

Jueves, 9 de junio de 2011

Creación de alias y redirecciones en Apache sin distinguir entre mayúsculas y minúsculas

El servidor web Apache distingue entre mayúsculas y minúsculas a la hora de crear alias y redirecciones. Sin embargo, existe una forma de que no tenga en cuenta esto. En el caso de las redirecciones lo haríamos con la siguiente directiva de configuración:

RedirectMatch permanent (?i)^/alias http://otro-host/otro-alias

Para el caso de los alias sería de la siguiente forma:

AliasMatch  (?i)^/alias /some-dir

Apache , ,

RPMBinario

Lunes, 23 de mayo de 2011

Creación de RPMs binarios

El propósito de este documento es detallar los pasos que se han seguido para crearnos nuestro primer RPM. Como es el primero seguramente el proceso es notoriamente mejorable, pero por algo hay que empezar.

Necesitamos instalarlos la herramienta rpmbuild

# yum install rpm-build

Nos creamos un directorio donde crearemos los ficheros:

# mkdir /root/misrpms

Dentro de este directorio nos cremos otros: SPECS, BUILD, RPMS, SRPMS, SOURCES

# cd /root/misrpms
# mkdir SPECS BUILD RPMS SRPMS SOURCES

Nos cremos un fichero ~/.rpmmacros con el siguiente contenido:

%_topdir /root/misrpms
%_builddir %{_topdir}/BUILD
%_rpmdir %{_topdir}/RPMS
%_sourcedir %{_topdir}/SOURCES
%_specdir %{_topdir}/SPECS
%_srcrpmdir %{_topdir}/SRPMS

Ahora nos creamos el fichero spec del RPM a construir que contiene los datos necesarios para construir el RPM ~/misrpms/SPECS/aspell-eu.spec:

Name:           aspell-eu
Version:        20081029
Release:        1%{?dist}.el5
Summary:        Basque dictionary for aspell
Group:          Applications/Text
License:        GPL

%description
Basque dictionary for aspell 0.60. Files obtained from .deb package.

%prep

%build

%install

%clean

%files
%defattr(-,root,root,-)
/usr/lib/aspell-0.60/eu.multi
/usr/lib/aspell-0.60/eu.rws
/usr/lib/aspell-0.60/eu.dat
/usr/lib/aspell-0.60/euskera.alias
/usr/lib/aspell-0.60/eu_affix.dat

%doc

%changelog
* Mon Nov  8 2010  David Fernanez <david.fernandez@ehu.es>
- Initial version

Una vez creado este fichero ya procedemos a generar el RPM:

# rpmbuild -bb SPECS/aspell-eu.spec

En este comando podemos especificar la arquitectura para la que se crea el paquete con –target (pe. noarch, i386,…). Si no se específica se usará la del servidor donde se construye el paquete.

Y ya tenemos nuestro RPM en ~/misrpms/RPMS/noarch/aspell-eu-20081029-1.el5.noarch.rpm

Linux ,

SmartCardFirefox

Viernes, 20 de mayo de 2011

Uso de las Smart Card en Firefox y Thunderbird

Hace unas semanas procedí a instalarme en mi ordenador un lector de tarjetas Smart Card para poder utilizar una tarjeta personal con certificado.

La instalación fue bien y en Internet Explorer la podía utilizar sin problemas. Sin embargo, en Firefox y Thunderbird no conseguía acceder a la tarjeta.

Para solucionar este problema realice los siguientes pasos:

Herramientas / Opciones / Avanzado / Dispositivos de Seguridad / Cargar

Carga de dispositivos de seguridad adicionales

Como nombre del módulo se pone el texto que queramos y como archivo de modulo seleccionamos: %WINDOWS%/system32/aetpkss1.dll.

Una vez hecho esto ya tenemos disponible la tarjeta y la podemos utilizar para autenticarnos o para firmar mensajes de correo.

Sin clasificar , ,

Rsyslog5enRH5

Lunes, 14 de marzo de 2011

Instalar Rsyslog 5.6.x en Red Hat 5

Red Hat 5 a partir de la versión 5.2 incluye el software rsyslog. Rsyslog es un sustituto del syslog tradicional de los sistemas Unix que incorpora funcionalidad nueva (envio de logs mediante TCP, a una BBDD,…). Sin embargo, la versión que se incluye con la distribución (3.22.x) es bastante antigua y tiene limitaciones.

En mi caso concreto me encontré con un error en el módulo imfile (módulo de rsyslogpara la lectura de fichros de logs). Este error ocasionaba que bajo determinadas circunstancias, en ficheros grandes, rsyslog perdiera el punto donde se encontraba leyendo el fichero y volviera a empezar desde el principio, con la consiguiente duplicación de mensajes.

Por este motivo decidí proceder a la instalación de una versión más reciente de rsyslog (la rama estable a fecha de este documento 5.6.x). Dado que esto lo debía hacer en varios servidores, en lugar de compilar en software en cada uno de ellos, me decidí por la opción de generar un RPM binario para luego instalar el software en los diferentes servidores.

Generar un RPM binario con la nueva versión de RSYSLOG para RH5

En primer lugar nos descargamos el SourceRPM del paquete rsyslog del RawHide de Fedora (a fecha de este documento este source era para la versión 5.6.2 de rsyslog). También nos descargamos el código fuente de Rsyslog.

En principio a partir de un Source RPM es fácil generar los RPMS binarios, pero en este caso a partir de Fedora 11 se ha cambiado el algoritmo resumen a la hora de generar los RPMs por lo que no podemos usar directamente ese Source RPM, tenemos que volver a generarlo.

Para volver a generar el Source RPM en primer lugar extraemos los ficheros del mismo:

# rpm2cpio rsyslog-5.6.2-2.fc15.src.rpm | cpio -idmv
cpio: rsyslog-5.6.2.tar.gz not created: newer or same age version exists
rsyslog-5.6.2.tar.gz
rsyslog.conf
rsyslog.init
rsyslog.log
rsyslog.spec
rsyslog.sysconfig
4451 blocks

Además de regenerar el source RPM vamos a actualizar la versión del paquete RPM. Para eso copiamos los ficheros rsyslog.conf, rsyslog.init, rsyslog.log y rsyslog.sysconfig extraidos anteriormente a la carpeta ~/SOURCES del rpmbuild (ver creación de un RPM binario). También copiamos a esta carpeta el fichero con el código fuente de RSYSLOG que nos hemos descargado (rsyslog-5.6.4.tar.gz).

Modificamos el fichero ~/SOURCES/rsyslog.log y lo dejamos como sigue (si no hacemos esto, al instalar el RPM se producirá un conflicto en el fichero /etc/logrotate.d/syslog con el paquete sysklogd de la distribución de Red Hat y eso nos complicará – aunque no de forma insalvable – la instalación de la nueva versión de rsyslog):

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
 sharedscripts
 postrotate
 /bin/kill -HUP catvarrunsyslogd.πd2>devνll 2> /dev/null || true
 /bin/kill -HUP catvarrunrsyslogd.πd2>devνll 2> /dev/null || true
 endscript
}

A continuación editamos el fichero rsyslog.spec y cambiamos las líneas 8 y 9:

Version: 5.6.2
Release: 2%{?dist}

por

Version: 5.6.4
Release: 1%{?dist}

Para generar el RPM binario necesitamos instalar una serie de dependencias. Para ello instalamos los siguientes paquetes:

# yum install mysql-devel postgresql-devel krb5-devel librelp-devel gnutls-devel net-snmp-devel

El paquete librelp-devel lo encontraremos en el repositorio EPEL.

Ahora procedemos a reconstruir el source RPM con:

# rpmbuild -bs rsyslog.spec

Una vez regenerado el source RPM procedemos a compilarlo para generar los binarios (vamos a necesitar el gcc). Lo hacemos con:

# rpmbuild --rebuild ~/SRPMS/rsyslog-5.6.4-1.src.rpm

Si todo va bien se nos habrán creado los RPMs binarios en ~/RPMS. Estos binarios son dependientes de la arquitectura por lo que habrá que generarlos en un servidor de 32 bits para las maquinas de 32 bits y en un servidor de 64 bits para las maquinas de 64 bits.

Estos RPMs ya están listos para ser instalados. Para facilitar este proceso se han movido al repositorio EHURepo.

Linux , , , ,

ComprobarCertificadoSSL

Jueves, 24 de febrero de 2011

Comprobar que un certificado SSL es válido para nuestras autoridades de certificación reconocidas

En algunas situaciones necesitamos comprobar si un determinado certificado SSL ha sido firmado por una de nuestras autoridades de certificación reconocidas. Para hacer eso podemos usar la opción verify del comando openssl.

El comando que ejecutaríamos sería el siguiente:

# openssl verify -CAfile /etc/pki/tls/certs/autoridades.crt  \
      -purpose any /etc/pki/tls/certs/certificado.crt

siendo autoridades.crt el fichero que contiene en formato PEM las autoridades de certificación reconocidas y certificado.crt el certificado a verificar.

El comando nos permite hacer la verificación según el propósito para el que se va a usar el certificado (servidor ssl, cliente ssl,…) pero en el ejemplo le indicamos que cualquier uso nos es válido (-purpose any).
Si el resultado del comando es un OK entonces el certificado ha sido verificado. En caso contrario el certificado no habría sido firmado por una de esas autoridades.

Es importante tener en cuenta, que si el certificado ha sido firmado por una CA intermedia, en el fichero de las autoridades de certificación también deberá figurar esta CA, ya que en caso contrario la verificación fallará.

ssl ,

TimeoutComandoBash

Miércoles, 2 de febrero de 2011

Timeout para un comando en Bash

En algunas ocasiones nos puede interesar lanzar un comando con un timeout para acabar el comando en caso de que se demore más de un tiempo deseado.

Para hacer esto he encontrado un script que nos permite invocar un comando con un timeout. Si el timeout se supera, se termina la ejecución del comando, aunque éste no haya acabado.

La sintaxis es:

# ./timeout3 -t 5 comando parámetros-comando

Parece que en las últimas versiones del paquete coreutils (versión 7) ya se incluirá un comando timeout. Sin embargo, la versión que viene instalada en RH 5 es la 5.97.

Linux ,