sábado, diciembre 30, 2006

RIP for free

Existen en los kioskos algunas revistas de "seguridad". Muchas de ellas me parecen de auténticos lamers[1].

Hay una revista que murió, que me gustaba, ante todo, la orientación práctica que tenía. Había algunas cosas que, literalmente, apestaban (como un curso de Visual Basic) pero había otras cosas realmente interesantes. Tras su muerte han sacado los PDF (no escaneado, sino el original) para descarga pública gratuita. Os dejo el script para bajaros las revistas:

for i in `seq 1 30` ; do 
wget http://trucosdebian.info/HXC/hxc${i}.pdf
done


Aviso: la nº 6 está incompleta

[1]De la wikipedia: Una persona que alardean de pirata informático, crackers o hackers y solo intenta utilizar programas de fácil manejo realizados por auténticos hackers, sin obtener los resultados que pretendía; incluso llegando a perjudicarse a el mismo.

La chica nueva

Como ya comentaba en el post anterior, han reestructurado el servicio para poder ajustar al presupuesto mi sueldo. Describo el servicio y después la solución: "dos personas por turno que cubrirán las 365 tardes del año". ¡¡¡Genial!!! ¡¡¡Podré tener 6 meses de vacaciones para estar en la playa!!!

Pues eso acabó en trabajar las tardes de lunes a viernes, y los fines de semana y festivos turnarnos las guardias entre todos. Bueno, ahora somos 3 pero tenían que buscar a mi compañero. Yo dije que si iba a ser su responsable quería seleccionarlo yo. Al final las prisas han hecho estragos. Sólo puede entrevistarla una vez ya seleccionada para conocer su nivel. Vamos a obviar su CV, que no lo hubiese cojido pues lo más destacado es que impartió un curso de GNU/Linux ¡¡¡con Mandrake!!!

Éstas fueron mis preguntas:
XiR- ¿Has configurado Apache 2?
Nueva- Sí
X-¿con hosts virtuales?
N-No
X-¿Bases de datos?
N-Oracle
X-¿Has tocado Postgres?
N-No
X-¿Debian?
N-Me la he instalado en casa pero no me funciona
"¿que no te funciona? ¿qué significa no me funciona?"-pensé. Supongo que no podía evitar poner caras.
X-¿Cisco?
N-No
X-¿Postfix?
N-No
Bueno, parece que voy a tener trabajo... sigo con las preguntas:
X-¿Tienes ordenador en casa?
N-Sí
X-¿Cuantos?
Me miró extrañada como pensando: ¿alguien puede tener más de uno?
N-Uno
X-¿Con qué sistema operativo?
N-Está particionado con Windows y Debian (la que no me funciona) y en un vmware tengo una Mandrake
X-¿Tienes PDA?
N-No, pero sí la quiero
X-¿La reflashearías con otro sistema operativo?
N-No
X-¿Tienes consola: Xbox, PS1, PS2?
N-No
X-¿Sabrías cómo se "hackea" alguna de ellas?
N-No.
X-¿Sabes quién Larry Wall?
N-No, ¿quién?
X-Quién desarrollo Perl. ¿Y Alan Cox?
N-No
X-¿Richard Stallman?
N-No
X-¿la Free Software Foundation?
N-No
X-Bien, no tengo más preguntas. Gracias por venir.
N-No te preocupes. Aprendo rápido.

Lo que me preocupaba, realmente, no es que aprenda rápido o lento ya que parecía tener muy buena actitud al respecto. Lo que realmente me preocupaba es que ¡¡¡no le gusta la informática!!!

La empresa y tú

Como ya comentaba en un post anterior, se acabó mi etapa laboral después de 3 años a cargo de la Intranet, DMZ y seguridad de un ministerio. Ha sido un gran paso en mi carrera y llegó el momento de buscar trabajo. Es cuando te replanteas si el CV que tenías te seguirá valiendo y sólo tendrás que añadir esa entrada.

Utilicé Infojobs principalmente, porque ya tenía el CV introducido de hacía unos años. Cuando me dí de alta en otros portales de búsqueda de trabajo y ¡¡¡ví lo pesado que es rellenar todos esos campos!!! Así que me dejé llevar por lo fácil. Aún así estuve de entrevistas durante 15 días con una media de 1,10 entrevistas al día.

El caso es que quería salir de Madrid e irme a vivir a la playa, al sur. Buscando mi tipo de trabajo en Málaga me dí cuenta que por cada uno que encontraba y en el que requerían mucha menos experiencia que la mía (a demás de un sueldo bastante inferior), encontraba 20 para mí (en principio) en Madrid.

Al final seguí en mi compañía aunque en otro cliente y descarté otra empresa que, aunque su proyecto me gustaba mucho, el salario ofrecido era menor. "Si en mi empresa estoy bien y quieres que me vaya contigo, no me dés lo que ya tengo sino que motivame de alguna manera a cambiar", pensé. Así que, si me cambiaba y no era a Málaga, tendrían que "pagarme" una buena razón. Además, parece que no sepan lo de "más vale malo conocido..." (aunque en mi caso no era malo).

Descarté la oferta pero siempre dejando claro que la pega era económica y que lo demás me había gustado. Y así, a los 15 días de haber empezado el nuevo proyecto, me volvieron a llamar contándome que habían reestructurado el servicio para poder pagar lo que pedía.

Así que tras intentar dejar zanjado todos los "miniproyectos" que había empezado, salí de allí con varios amigos hechos y el buen recuerdo de la compañía. De hecho me quedé la tarjeta de acceso al edificio como recuerdo (con permiso suyo) que desactivarán. XD

He descubierto que tratar con profesionales es un placer. Cuando les dices que te ofrecen más en otro sitio y lo entienden como una regla del mercado (que ellos mismos han creado) y no como una ofensa personal... realmente debería ser siempre así, aunque no lo es.

Me duele dejar la compañía porque estaba contento de estar en ella pero trabajamos para vivir (no vivimos para trabajar, Sergio) y necesitamos motivaciones y dinero para alcanzar nuestros sueños (nuestras motivaciones privadas).

Todo esto viene a cuento de un email que he recibido de Miguel en el que me decía que este post en Josep on technology le había recordado a mí.

El día que encuentre una oferta del tipo: "buscamos a ingeniero informático que sepa de Linux, redes y Futurama" me va a faltar tiempo para enviar el CV.

martes, diciembre 19, 2006

Criptionando

Tras comunicar que había implantado una política de copia remota de un export de Oracle los domingos, mi compañero Jorge d.l.C. (que te vaya bien en tu nuevo proyecto) me respondió esto:
Create or replace procedure Buenos_dias
Declare
Saludo:=’Hola Ivan’;
Begin
Dbms_output.put_line(‘lo de copiarlo sólo los domingos ¿es por algo?’);
Exception
when no_data_found
Dbms_output.put_line(‘el remitente pasa de mi cara y no responde’);
when others
Dbms_output.put_line(‘SORRY NEN, yo que sabía’);
End;

Así que, ante su pregunta, tuve que responderle:
6f50 7172 6575 4c20 7561 6172 7020 6569
736e 2061 7571 2065 6e75 2061 6c61 6420
6169 7620 2061 2061 6573 2072 756d 6863
206f 7563 6e61 6f64 7320 2065 6168 6167
6520 7473 206f 6f63 206e 616c 2073 6564
616d 2073 4242 4444 0a2e


Y, el muy "colgado" volvió al ataque:
JUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Pero ya me lo sabía ….

...y es que algunos no tienen solución

domingo, diciembre 03, 2006

Seguro, pero con cabeza

No me parece curioso que en mi nuevo trabajo le den mucha importancia a la seguridad. Es parte de nuestra labor. Llega hasta tal punto que no permiten permitían a los servidores enviar correos. Esto que a algunos os parecerá correcto no es lo ideal, ya que puedes aprovechar la circunstancia para permitir que el servidor os envíe información sobre las tareas automatizadas o, como ya indiqué en el anterior post hay herramientas que utilizan el correo para realizar su labor.

Pero una vez superada la pega, me sigue dando vueltas por la cabeza que segurizan los servicios, pero NO utilizan iptables. Me parece un gran error, ya que configurar TODOS los servicios correctamente supone muchísima concentración y casi más conocimiento ya que cada servicio es un mundo. Además hay servicios que abren puertos para comunicarse consigo mismo y que no se pueden cerrar pues el programa deja de funcionar. Con iptables no existe ese problema porque tu decides cuáles son las máquinas de origen y destino entre otra muchísimas cosas.

Como diría el anuncio: "Empty your mind. Be formless, shapeless. Like iptables. You put iptables into a bottle and it takes care of the bottle hole. You put in a teapot, it becomes the teapot handle. Iptables lets packets flow, or it can crash 'em. Be iptables, my friend!"

domingo, noviembre 26, 2006

Bitacorea o cuenta

Logwatch: analizador de logs modular que se ejecuta cada noche y envía por correo los resultados.

Me gustaría haber podido contar antes cuánto me reí cuando pensaba que en mi anterior trabajo, aunque no estaban realmente cualificados, al menos podrían mantener lo que había: el día a día.

Recibí uno de los últimos días allí un mail de mi ahora ex-jefe diciendo a sus chicos: "Hay que revisar todos los días los logwatch".

Pensé: "creía que el único que los ojeaba era yo. Me alegra ver que han aprendido algo". Plantar una semillita de conociemiento siempre te hacer sentir orgulloso. Seguía el mail: "Hay que asegurarse que llegan 53. Si hay menos, es que alguna máquina tiene problemas. No hace falta leerlos, aunque eso sería la ostia".

Para eso ponte un cron que te envíe un correo diciendo como cuando iban nuestros padres al colegio: "Presente para servirle a Ud. a Dios y a España" y no pierdas horas y horas de proceso en sacar unas estadísticas que ni siquiera piensas mirar.

Por cierto, el orgullo me desapareció de un garrulazo*.

*Acción realizada por un garrulo.

lunes, octubre 30, 2006

Resurrección

Por fín llega a su fín otra etapa laboral de mi vida y ¡¡me vuelve a parecer tan difícil hacer tu trabajo lo mejor posible cuando tiene una fecha de caducidad tu responsabilidad!! Además, aunque lo intentes hacer bien, los fallos que has tenido durante 3 años no son comparables con los que tienes los últimos días, pero no porque sean peores o más graves, sino porque la gente piensa que "pasas".

Da igual si haces oidos sordos al pequeño demonio (daemon) que te recuerda que "sólo te quedan un par de semanas" y luchas agarrando al angelito y atándotelo a la oreja para que te repita constantemente que "debes ser profesional". Cualquier fallo será mal visto.

En cualquier caso sé que lo estoy haciendo tan bien (o tan mal) como antes, pero ahora como ven que se acerca el día en que no puedan pedirme que les solucione X o Y...

Así que estamos de entrevista en entrevista a ver quién me encandila para seguir viviendo en Madrid (puajjjjj). ¡¡¡Maldito$ din€ro$!!!

miércoles, septiembre 27, 2006

Un BOFH aburrido

Aburrido estoy de mis usuarios y programadores, así que, harto de tener que inventarme excusas he encontrado quien las invente por mi. Excusas del tipo:

-Melting hard drives
-BNC (brain not connected)
-no "any" key on keyboard
-NOTICE: alloc: /dev/null: filesystem full
-We already sent around a notice about that.
-had to use hammer to free stuck disk drive heads.
-techtonic stress
-Interference between the keyboard and the chair.
-Suspicious pointer corrupted virtual machine
-pseudo-user on a pseudo-terminal
-Feature not yet implemented
-Maintenance window broken
-Recursive traversal of loopback mount points
-Internet shut down due to maintenance

Y es que toparte con gente que no sabe todo lo que debería te da cierta ventaja a la hora de inventarte excusas. ¿Necesitas un BOFH-excusador? No tienes más que instalar los paquetes fortunes y fortunes-bofh-excuses.

Esto me recuerda a una vez que se había colgado un PC. El típo estaba dado la vuelta hablando por el móvil y yo reinicié a "botonazo" el PC. Arrancó perfectamente. Cuando me preguntó qué le ocurría le dije que "es que había un conflicto con los punteros a IPs, pero que ya lo he arreglado. Quizás vuelva a pasar".

viernes, septiembre 08, 2006

Mayusculeador/Minusculeador

Para pasar todos los nombres de ficheros de un directorio de mayúsculas a minúsculas o viceversa.
Admite 2 tipos de parámetros:
-por defecto pasa de mayúsuclas a minúsculas; para pasar de minúsculas a mayúsculas: -r
-el directorio sobre el que actuar (directorio actual si no se indica nada).

#!/bin/bash
###################################
#
# Copyleft Ivan Eguiguren
# September the 8th, 2006
#
###################################

[ -d "$1" ] && cd $1
[ -d "$2" ] && cd $2
[ "$1" == "-r" ] && MAY=1
[ "$2" == "-r" ] && MAY=1
ls > /tmp/listado1
if [ $MAY ] ; then
tr 'a-z' 'A-Z' < /tmp/listado1 > /tmp/listado2
else
tr 'A-Z' 'a-z' < /tmp/listado1 > /tmp/listado2
fi
join -i -a1 -a2 -o 1.1 2.1 /tmp/listado1 /tmp/listado2 > /tmp/listado3
sed -e 's/^/mv /' /tmp/listado3 > /tmp/listado4
chmod 755 /tmp/listado4
/tmp/listado4
sleep 4
rm /tmp/listado[1-4]

viernes, julio 21, 2006

Sin palabras

From: "Usuario lelo"
To: "Avisos aplicaciones Java"

Asunto: Avería en la impresora de Color del Vicesecretario general técnico.

Ruego toméis nota para llamar al departamento técnico por avería en la impresora de color del Vicesecretario General Técnico despacho nº 123. Muchas gracias


Mensaje directo, escueto y a ¿una dirección aleatoria? Pero ¿cómo se puede ser tan memo?

jueves, junio 15, 2006

Casualidades

Ruiz wrote:

>> Nos comentan una incidencia que se produce en la Aplicación de Consulta
>> de Centros Universitarios (http://tproperez/centrosweb/). Al parecer no
>> se puede acceder desde la calle aunque el acceso desde Vitruvio o desde
>> el CCU no da ningún problema.

Hola:

Pues no sabes qué alegría me das, porque si pudiesen acceder con esa URL
estaría algo mal configurado. Aquí tienes la URL correcta:


Si es que se inventan las cosas y encima ¡¡¡quieren que les funcione!!!

viernes, abril 07, 2006

Integración de SPF en Spamassassin

Introducción.
Spamassassin es un filtro de correo escrito en Perl para identificar spam utilizando multitud de tests heurísticos en las cabeceras de un correo y en el cuerpo del mensaje. Es software libre.

Cómo funciona Spamassassin.
Cuando nuestro servidor de correo recibe un mensaje, se lo envía al demonio de Spamassassin, quien procede a ejecutar una serie de tests sobre él. Cada uno de ellos añade o quita unas pocas milésimas de puntuación a dicho correo. Si la puntuación que asigna un test es positiva, es que tiene cierto parecido con el spam; por contra, si esa puntuación es negativa, es que tiene parecido con correo válido. Así, una vez pasados todos los tests se suman todas las puntuaciones para hallar la puntuación total de dicho correo. Si esa puntuación está por encima de un margen, el mensaje podrá ser marcado como spam, si pasa por encima de un segundo límite, será directamente descartado.

Tanto las puntuaciones como los límites más arriba citados pueden ser configurados y modificados a nuestro antojo.

Cómo funciona SPF
SPF nos permite comprobar mediante una consulta DNS si un servidor está autorizado para enviar correo de un dominio determinado. Para ello el administrador del DNS del dominio remitente debe haber configurado la/s entrada/s correspondiente/s en el servidor DNS de ese dominio. Igualmente el receptor debe haber configurado el servidor que recibe el correo para hacer la consulta DNS. SPF no evita el Spam, sólo asegura que un correo viene de donde dice venir.

Porqué integrar SPF dentro de Spamassassin
Una buena razón es que en lugar de recibir un correo y aceptarlo o directamente descartarlo por su razón SPF, le asignemos una puntuación más y lo tratemos como un test más dentro de SPF.

Cómo integrar SPF dentro de Spamassassin

A partir de la versión 3.0 de Spamassassin es bastante sencillo, ya que viene integrado dentro de Spamassassin. Aún así, habrá que activarlo e instalar el módulo Perl que nos dará la funcionalidad SPF. Para ello instalamos el módulo Perl Mail::SPF::Query. Procedemos a activar el SPF en el Spamassassin, para ello descomentamos en el fichero
/etc/mail/spamassassin/init.pre (path válido para RedHat) la línea:

loadplugin Mail::SpamAssassin::Plugin::SPF

Ahora reiniciando el Spamassassin tendríamos ya el SPF incrustado en el Spamassassin. Sólo nos queda ajustarlo a nuestro gusto. Para ello modificamos las puntuaciones de los tests SPF en
/etc/mail/spamassassin/local.cf añadiendo una línea del tipo:
score SPF_FAIL 5


Reiniciamos de nuevo Spamassassin para que coja los cambios y ya lo tenemos activado.

viernes, marzo 24, 2006

Adivina adivinanza

Programador:

>
> Hola, podeis actualizar las páginas que tenemos en el ftp de producción.
>
> Son las siguientes paginas:
> -Grundtvig2D2b.jsp
> -Grundtvig2D2bm.jsp
> -ariona.jsp
>
> Muchas gracias
> Un saludo

Impresionante. Yo entendí tanto como vosotros:
Hola.

No están sueltas en el ftp de preproducción. Decídme si están en alguna
carpeta en cual. Tampoco sé a qué servidor de producción (y aplicación) hay que subirlo. Por favor, seguid el procedimiento establecido.

Procedimiento que detallamos en una web para deleite de los programadores y tranquilidad nuestra y que no haya listos que manden este tipo de correos. Continúo:
Concluyendo, si lo de arriba es una pregunta a pesar de no tener
interrogantes (vienen de serie en los teclados), la respuesta sería "No".

Final:
Hola,

Las páginas están en el servidor de preproduccionweb.intranet.local, dentro de la carpeta "aplices", para ello hemos utilizado el usuario despliegue. ¿Puedes subir dichas páginas a aplices.moc.com para actualizarlas?

Un saludo


¡¡¡Qué paciencia!!! Pero da sus frutos...

lunes, marzo 13, 2006

Documental sobre el inicio del SPAM

http://atdp.de/spam.avi

Pringao-not HOWTO

Esto es lo que se puede leer en el departamento de bases de datos de mi centro de trabajo.

Lista de precios de servicios (sujetos a modificación, ganas y momento)

Matar algo.................................................................................2€
Crear algo..................................................................................3€
Paquete completo de creación de algo.................................10€
Consultas de “Solo un momentito, de 5 minutos, etc.”........3€
Consultas de “me puedes mirar esto” ...................................5€
Consultas de “me podrías mirar ” ..........................................5€
Consultas de “bueno, ya que estoy aquí” ..............................5€
Consultas de “chicas me podéis mirar esto” .........................3€

Se añadirán suplementos específicos de 2€ a aquellas coletillas como:
"Pues yo no he hecho nada"
"Pues ayer estaba igual"
"Habéis cambiado la versión"
"Pues me da un error de BD"

Todos estos precios en monetario también pueden ser cambiados por emolumentos en especias.
Las más apreciadas en este grupo son:
Cajas de: bombones, pastas y cualquier dulce
Tampoco hacemos asco a cualquier tipo de producto de nuestro país que tenga que ver con el cerdo ibérico de pata negra, tanto sea jamón, lomo embuchado o chorizo.
Los quesos nos gustan todos.
En cuestión de bebidas rogamos que antes nos pregunten porque según que día y hora nuestros cuerpos necesitan diferentes tipos de caldos.

Firmado: El grupo de SBA.

P.D.
Se ruega no regateen ni nos pidan cambio, quedarán mucho mejor si directamente introducen los precios redondeados al alza en nuestra hucha(el servicio se prestará antes y mucho mejor además de la consiguiente sonrisa con la que serán obsequiados nuestros clientes).
Se hacen ofertas a grupos y por temporada.


Amén.

miércoles, marzo 08, 2006

Organización de archivos

Ahí va un script para eliminar de un directorio los archivos más antiguos de X dias y rotar los demás en función de si un fichero o directorio ocupa más de Y megas

#!/bin/bash

#Variables

# Dias que conservamos los ficheros
DAZE=15
# Longitud del fichero
LONG=30
DIR=/logs/
FILE=fichero
SERV=/etc/init.d/servicio

FICH=${DIR}$FILE

#Comprobamos si FICHERO ocupa mas de LONG MB
if [ `du -cms $FICH | tail -1 | cut -f1` -ge $LONG ] ; then

#Paramos el servicio SERV

$SERV stop

#Esperamos 2 minutos (pura precaucion para que el servidor pare)
sleep 120;

# Movemos el fichero

mv $FICH ${FICH}$(date +%d%m%y)

cat /dev/null > $FICH

$SERV start

#Eliminamos los ficheros más antiguos de DAZE dias
rm -f $(find $DIR -ctime +$DAZE)

fi

I+D

Seres sedentarios. Eso es lo que produce esta sociedad. Seres que se pasan el día delante del ordenador o la televsión. Ahora un ratito a un juego, ahora un ratito una serie, ahora un ratito organizando las fotos, otro ratito leyendo el correo...

He tenido "LA IDEA". Utilizar una alfombra de esas de baile para maneja el ordenador, para leer el correo, para organizar las fotos...

Ups...creo que debe estar hasta patentada... no he dicho nada, no he dicho nada.

http://research.microsoft.com/vibe/projects/stepUI.aspx

martes, febrero 21, 2006

Instalar crontab dentro de un chroot

Después de pegarme con el chroot me he topado con un problema: que el usuario chrooteado pueda programar su cron. La solución es bastante simple. Al crear el chroot, debemos meter el comando crontab y un editor de texto (en mi caso el vi).

Desde la raiz del chroot-jail ponemos como root:


# mkdir tmp
# chmod 4777 tmp
# mkdir -p var/spool/cron/
# touch var/spool/cron/nombreusuario
# chgrp nombreusuario var/spool/cron/nombreusuario
# touch etc/cron.deny
# ln -s /var/chroot/nombreusuario/var/spool/cron/nombreusuario /var/spool/nombreusuario



El usuario tendrá que crear un fichero, por ejemplo cron-usuario, y pasárselo de parámetro al comando crontab:


$ crontab cron-usuario



Así, con crontab -l podrá comprobar como esos trabajos quedan listos para que los ejecute cron a la hora prevista.

jueves, febrero 16, 2006

Configuración de una máquina para chroot de usuarios

Creamos una shell:


[root@potito ~]# cd /bin

[root@potito bin]# vi chrootbash

#!/bin/bash

/usr/bin/sudo /usr/sbin/chroot /var/chroot/$USER /bin/bash


Y le damos permisos de ejecución:


[root@potito bin]# chmod +x /bin/chrootbash


Nos aseguramos de que existe el directorio donde vamos a crear los “homes” de los usuarios:


[root@potito bin]# ls -ld /var/chroot

ls: /var/chroot: No existe el fichero o el directorio


Así que lo creamos:


[root@potito bin]# mkdir /var/chroot/


Creamos los usuarios con:


[root@potito bin]# useradd -s /bin/chrootbash -d /var/chroot/usuario usuario


y le asignamos un password:


[root@potito bin]# passwd usuario

Changing password for user usuario.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.


Creamos el árbol de directorios que va a ver:


[root@potito bin]# cd /var/chroot/usuario

[root@potito usuario]# mkdir bin etc dev home lib usr usr/bin

[root@potito usuario]# cd ..

[root@potito chroot]# chown -R usuario:usuario usuario


Y copiamos la línea del fichero passwd del usuario:


[root@potito chroot]# grep usuario /etc/passwd > usuario/etc/passwd

[root@potito chroot]# grep usuario /etc/group > /etc/group


Instalamos los programas a los que queremos que tenga acceso en la cuenta de usuario y las librerías que utilicen:


[root@potito chroot]# cp /bin/bash /var/chroot/usuario/bin/

[root@potito chroot]# ldd /bin/bash

libtermcap.so.2 => /lib/libtermcap.so.2 (0x00689000)

libdl.so.2 => /lib/libdl.so.2 (0x005f8000)

libc.so.6 => /lib/tls/libc.so.6 (0x004cd000)

/lib/ld-linux.so.2 (0x004b4000)

[root@potito chroot]# mkdir usuario/lib/tls

[root@potito chroot]# cp /lib/libtermcap.so.2 /lib/libdl.so.2 /lib/ld-linux.so.2 usuario/lib/

[root@potito chroot]# cp /lib/tls/libc.so.6 usuario/lib/tls/libc.so.6

[root@potito chroot]# cd usuario

[root@potito usuario]# cp /lib/libnsl.so.1 /lib/libnss_nisplus.so.2 /lib/libnss_nis.so.2 /var/chroot/usuario/lib/

[root@potito usuario]# mkdir lib/security

[root@potito usuario]# cp /lib/security/pam_rootok.so /lib/security/pam_warn.so /lib/security/pam_unix.so lib/security/

[root@potito usuario]# mkdir usr/lib

[root@potito usuario]# cp /usr/lib/libcrack.so.2 usr/lib/

[root@potito usuario]# mkdir etc/pam.d

[root@potito usuario]# cp /etc/pam.d/su /etc/pam.d/other etc/pam.d/

[root@potito usuario]# cp /bin/ls /bin/cp /bin/rm /bin/mkdir /bin/rmdir bin/

[root@potito usuario]# ldd /bin/ls /bin/cp /bin/rm /bin/mkdir /bin/rmdir | grep -v ':' | cut -f1 -d'(' | grep -v '=>' | sort | uniq > /tmp/libs

[root@potito usuario]# ldd /bin/ls /bin/cp /bin/rm /bin/mkdir /bin/rmdir | grep -v ':' | cut -f1 -d'(' | grep '=>' | cut -f2 -d'>' | sort | uniq >> /tmp/libs

[root@potito usuario]# for i in `cat /tmp/libs`; do cp $i .$i ; done


Copiamos 'su' y sus librerías:


[root@potito usuario]# cp /bin/su bin/

[root@potito bin]# ldd /bin/su | grep -v ':' | cut -f1 -d'(' | grep '=>' | cut -f2 -d'>' | sort | uniq > /tmp/libs

[root@potito bin]# ldd /bin/su | grep -v ':' | cut -f1 -d'(' | grep -v '=>' | cut -f2 -d'>' | sort | uniq >> /tmp/libs

[root@potito usuario]# for i in `cat /tmp/libs`; do cp -f $i .$i ; done


Editamos sudoers y le autorizamos a hacer sudo poniendo al final del fichero:


[root@potito usuario]# visudo

#chroot

usuario ALL = /usr/sbin/chroot


miércoles, febrero 01, 2006

Re: Utilizando código

Para aprovechar mi trabajo voy a empezar a publicar scripts y truquitos que utilizo en mi dia a dia. El primer script sirve para arrancar, parar y ver el estado de un tomcat, preo es facilmente modificable para manejar cualquier servicio que queráis usar.
#!/bin/bash
#Publicado bajo licencia GPL
#XiR_ @2006

#Declaramos las variables
export LC_ALL=es_ES
export JAVA_HOME=/usr/local/java
export JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=ISO-8859-15 -Duser.language=es -Xms1024m -Xmx2048m"
export ID-TOMCAT=500

#Funcion que intenta parar el tomcat por las buenas y si no lo mata (kill)
#Solo se puede ejecutar por el usuario tomcat (id=500)
matar() {
if [ `/usr/bin/id -u` == $ID-TOMCAT ] ; then
/usr/local/tomcat/bin/shutdown.sh > /dev/null 2>1&
sleep 5
NUM_PROCESOS=`ps -fe | grep tomcat | grep "/usr/local/java/bin/java " | wc -l`
if [ $NUM_PROCESOS -eq 0 ] ; then
echo "Parado correctamente"
else
kill `ps -fe | grep tomcat | grep "/usr/local/java/bin/java " | grep -v grep | cut -c 7-14` > /dev/null 2> /dev/null
sleep 10
kill -9 `ps -fe | grep tomcat | grep "/usr/local/java/bin/java " | grep -v grep | cut -c 7-14` > /dev/null 2> /dev/null
echo "Parado bruscamente"
fi
else
echo "Error: este programa debe ser ejecutado siendo el usuario tomcat."
fi
}

#Funcion que comprueba si se esta ejecutando y si no, lo arranca
#Solo se puede ejecutar por el usuario tomcat (id=500)
arrancar() {
if [ `/usr/bin/id -u` == $ID-TOMCAT ] ; then
ps -fe | grep tomcat | grep "/usr/local/java/bin/java" | grep -v grep > /dev/null 2>&1
if [ $? == "1" ] ; then
/usr/local/tomcat/bin/startup.sh > /dev/null 2>1&
if [ $0 ] ; then echo "Arranque correcto" ; fi
else
echo "Ya esta arrancado. Detengalo antes de intentar arrancarlo."
fi
else
echo "Error: este programa debe ser ejecutado siendo el usuario tomcat."
fi
}

#Funcion que comprueba si se esta ejecutando el tomcat, y de estarlo devuelve su PID
estado() {
sleep 3
ps -fe | grep tomcat | grep "/usr/local/java/bin/java" | grep -v grep > /dev/null 2>&1
if [ $? == 0 ] ; then
PID=`ps -fe | grep tomcat | grep "/usr/local/java/bin/java" | grep -v grep | cut -c 7-14`
echo "Ejecutandose con pid $PID"
else
echo "No ejecutandose"
fi
}


case "$1" in

start)
arrancar
estado
;;
stop)
matar
estado
;;
restart)
estado
matar
sleep 5
arrancar
estado
;;
status)
estado
;;
*)
echo "$0 {start|stop|restart|status}"
;;
esac

jueves, enero 26, 2006

Des FACHA tez

A veces, cuando crees que ya lo has visto todo, todavía pueden sorprenderte.

Antecedentes:
Tenemos un filtro de contenidos en el proxy. Si crees que hay alguna dirección bloqueada que no debía estarlo puedes notificárselo a la empresa para que lo modifique para la siguiente actualización.
También tenemos 2 proxies: uno con el filtro para el que el navegador coge la configuración por defecto y otro proxy sin filtro que podrías configurarte a mano.

El caso:
Ayer recibimos este correo de uno de "los cabecillas" de soporte de usuarios:
Buenos días:

A Julio Apellido administrador del edificio de San Perro Grande le ha salido como bloqueada la dirección que está en el mensaje que adjunto. Está indignado porque dice que otros compañeros no tienen ese problema.

Le podeis dar una solución o una aclaración al tema.


Bueno, habrá que ver al administrador este qué le ocurre. Leo el adjunto:
De: urlcheck@empresa.com
Enviado el: lun 23/01/2006 11:28
Para: Apellidos, Julio
Asunto: CORRECTAMENTE CLASIFICADA

Estimado Cliente:

Le comunicamos que la página de Internet que ha solicitado revisar, http://www.microsoft.com/games/default.aspx, no puede ser desbloqueada ya que pertenece a una categoría restringida y está correctamente clasificada en nuestras listas.

Le rogamos consulte a la persona que haya contratado el producto su perfil de filtrado o las Listas Personales.

Le saluda atentamente,

Centro de Atención al Cliente


Es acojonante el morro que le echan algunos. Que lea el periódico o algo así, que no voy a perder tiempo en permitirle el acceso a esos sitios... o en su defecto que trabaje

Mensaje de relax al administrador: ponte un salvapantallas que sea el ying-yang o un paisaje relajante. Cuanta hasta 100,34 de 0,02 en 0,02. Una vez que te hayas aburrido de contar y te hayas relajado contesta a estas gilipolleces o, mejor, bórralo directamente esperando que no sea tan estúpido como para volver a molestarte por segunda vez.

Si vuelve a molestar lo leeréis aquí.

miércoles, enero 11, 2006

Tipos de usuario

He encontrado esto hoy, y me ha recordado a varios casos que me han ocurrido a lo largo de mi vida profesional. Paso a relatarlos:

1. El Explícito

Esta misma mañana me ha llamado un programador para decirme: "sobre lo que os mandamos ayer, bueno, pues la ruta que nos disteis nos da un error".

Hombre, a lo mejor puedes llegar a saber qué significa si al menos sabes quién es y hubieses hablado con él ayer. Y encima yo, que para retener menos datos, cada vez que mandan un correo o llaman les digo que pongan la máquina y la aplicación a la que se refieren...esté dió en el clavo con todo.

2. El Manipulador Loco

Me hace gracia cuando los programadores me mandan correos en los que se inventan las rutas a los directorios o llaman a librerías que no existen en los servidores y que en ningún sitio pone que existan (ni las rutas ni las librerías) y encima te llaman para decir que la aplicación no funciona.

La verdad es que es mejor así, porque si llegan a funcionar me retiro.

3. El Kamikaze

Recuerdo este verano que vino un programador nuevo, que se inventaba cómo estaban instaladas las máquinas, que (siendo los servidores GNU/Linux) probaba las aplicaciones en su máquina (M$ Windows) y luego me intentaba convencer de que el que no tenía ni idea era yo. Que en el servidor tenía que funcionar porque estaba instalado y configurado así, así, y asá. Este es kamikaze pero por no saber con quién trataba.

4. El Místico

Me recuerda a un programador que me decía que la aplicación unas veces generaba los pdf, y otras veces no... será la posición de la luna...¡no te jode!

5. El Gurú

Pues precisamente no era gurú, cuando llegué al PC de una usuaria porque le había dado un pantallazo azul el winipimer y me había copiado ¡¡¡el volcado de memoria en un post-it!!!. Eso sí, me dijo: "por si te sirve".

6. El Gafe

¿cuántas veces habremos oido lo de "No lo entiendo, te aseguro que hasta que has venido no funcionaba"? Siempre me he quedado con las ganas de contestar: "es que no tienes ni puta idea de cómo hacerlo... ¿o te crees que yo le asusto y funciona bien?"

7. El Temerario

Un jefe de un departamento, que teníamos que instalar una máquina sólo para su aplicación, me dice: "Yo lo haré contigo, que tengo experiencia con Tomcat y [...]", un pesao sabelotodo. Continua:"podemos poner 2 Tomcat en cluster". Mi pensamiento fué: "¡genial! Algo nuevo a aprender". Empecé a preguntarle si funcionaban bien, si eran fiables, si costaba mucho instalarlos y configurarlos, etc. Su respuesta me abrumó: "no sé, no he instalado nunca un tomcat, pero los he administrado bastante". Si, vamos: instalar, arrancar, parar y borrar aplicaciones que eso se hace por web. Será #!$@

8. El Director de Orquesta

En esta clasificación entra el tipo que comenté en otro post que me contaba todo lo que hacía para administrar la base de datos de la biblioteca. Con los errores es igual...empieza por cómo arrancó el ordenador, si tardó medio segundo más de lo habitual, etc.

9. La Princesa

¿Para qué hablar de los envidiosos? No pongo en esto ninguna historia, porque si pongo una pongo todas, y tardaría demasiado en cargar el blog.

10. El Sospechoso

El típico "ayer funcionaba, y hoy no y no se ha tocado nada". A lo que siempre respondo lo mismo: "bueno, pues si ha sido ello solo no haré nada, que se arreglará solo igual". Ahí ya sí que empiezan: "no, échale un vistazo porque a lo mejor han actualizado no se qué o..."

Orden de trabajo del administrador: intenta tener siempre un terminal abierto a mano en el escritorio... y juega a juegos de nombres raros que puedas minimizar cuando alguien se acerque y no sepán qué es. Así parecerá que estás trabajando.