miércoles, 11 de diciembre de 2013

Ayer mismo...

Se supone que nosotros no tratamos con los habituales lusers..., lo tenemos bastante más jodido ya que tratamos con desarrolladores, en este caso, de Powercenter.

Bien, resulta que tenemos un responsable del equipo de Powercenter, a partir de ahora $PWC que se encarga de gestionar el tema del equipo de desarrollos y proyectos, y es el encargado de solicitar los usuarios de sistemas para los distintos usuarios. Algo tan sencillo como rellenar una pestaña en una petición en nuestra herramienta de tickets con los datos del usuario y los accesos solicitados.

Pues ni eso hacen bien, vamos ni siquiera lo de tener la información de sus desarrollos organizada, vamos una casa de putas.

Después de Abro petición...ticket pasistemas, necesito más datos... ticket pallá, te doy los datos que se me pasan por la cabeza pero no los que me pide el formulario... ticket pasistemas again, que me la suda que la perrita del usuario se llame Lasie como una que tuviste tu de niño, que quiero que me indiques en que grupo meto el usuario de los cohones, ticket pallá one more time..., que además le tiras una pelotita y te la trae, ticket pasistemas..., que ya me he cansado y te lo meto en el grupo que me salga de los bemoles, ya me harás otra petición solicitándome acceso al directorio jandemor para el dichoso usuario...

Usuario creado y password comunicado mediante... al poco reabren la petición.

“Hola,

El usuario me envia la siguiente información:

'Intento conectarme por ssh a servidorpw y no me reconoce el usuario mnight, me dice que no tengo permiso.'”


¿Que el usuario no puede entrar por ssh, le sale “Permision denied”?¿WTF? . Como conozco el password del usuario accedo al servidor indicado con el usuario sin ningun problema, pego la consola en el ticket e invito a que me indiquen el modo de acceso.


Necesitamos que el usuario nos especifique desde donde y el modo de acceso al servidor, si se utiliza un software especifico (putty, winscp).”

 
Minutos más tarde la respuesta del responsable:

“Buenos días S4b4sTI,
Podrías contactar con Maykel Night para confirmar las formas de acceso?. Es por agilizar esta solicitud ya que el usuario tiene bastante urgencia debido al calendario de entrega de proyectos...

$MaykelNight (One place in Spain): (955) 55555

Muchas gracias!”

Aunque no debemos hacerlo, la intriga me corroe y no puedo evitar la tentación, llamo a $MaykelNight:

 
- Buenos dias, quisiera hablar con $MaykelNight!!
- Si soy yo.
- Hola, le llamo de Sistemas referente a una petición de usuario que realizo $PWC en su nombre, al parecer tiene problemas para acceder con el usuario mnight.
- Efectivamente, el usuario no funciona, me dice que no tengo permisos.
- Bien, vamos a realizar unas pruebas, intente acceder de nuevo. Mientras “$MaykelNight trata de arrancarlo por Dios”, tengo un tail -f en el authlog grepeado por mnight y en otra cosola un snoop sobre la interfaz de servicio del servidor filtrado por la ip de su pc que previamente me ha indicado.
- Ya esta!! Lo ves, no tengo permiso. Miro la consola del snoop y veo que su petición llega perfectamente y mi servidor la responde, giro la vista hacia la consola del authlog y si, ahi esta:

Dec 10 08:51:09 servidorpw sshd[2585]: [ID xxxx auth.notice] Failed keyboard-interactive for mnight from 1x.xx.xxx.xx port xxxx ssh2 

- ¿$MaykelNight tienes el bloqueo de mayusculas activado?
- No que va...
- ¿El bloqueo de números quizás?
- Tampoco el password no tiene números... No puede ser, claro que no, que va, pero tengo que preguntarlo...
- ¿Que password estas poniendo?
- ¿Password? El que me sale de los cohones... Vamos uno de su cosecha
- ¿Has probado a meter el que te ha pasado $PWC?
- Ah pues igual será eso..., voy a ver... Yo sigo con el tail ejecutandose en la consola, de repente voilá!!


Dec 10 08:52:31 sad01pw sshd[2634]: [ID xxxx auth.info] Accepted keyboard-interactive for mnight from 1x.xx.xxx.xx port xxxx ssh2

- Oye que ya.. Clac!! No le dejo ni terminar. Pabersematao!!, ni me imagino lo que pueda estar desarrollando tal especimen!!

Relleno el ticket:

“Contactamos con $MaykelNight y realizamos pruebas de conexión.
Vemos que el servidor recibe las peticiones.
El motivo del fallo en la conexión era que no se estaba introduciendo el password proporcionado por sistemas.
Una vez introducido el password correcto la conexión es satisfactoria.”


A ver si lo lee alguien con dos dedos de frente y le cae un chorreo al tal $MaykelNight.

viernes, 22 de noviembre de 2013

Configurar interfaz virtual RHEL

Configurar interfaz virtual RHEL

En el caso de una interfaz virtual, sólo hace falta añadir dos puntos y un número que la identifique.

Por ejemplo, creamos el fichero /etc/sysconfig/network-scripts/ifcfg-eth1:0 con el siguiente contenido:

DEVICE=eth1:0
IPADDR=192.168.2.135
NETMASK=255.255.255.0
ONBOOT=yes

En el caso de RHEL6 tuve que añadir la opción NM_CONTROLLED=no, sino me levantaba la ip de la virtual sobre una de las dos físicas, no recuerdo bien cual.

A continuación podemos ejecutar

# /etc/init.d/network restart

o simplemente:

# ifup eth1:0

Comprobamos:

# ifconfig eth1:0
eth1:0    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx 
 inet addr:192.168.2.135  Bcast:192.168.2.255  Mask:255.255.255.0
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


Espero os sea útil!!

El primer día

Primer lunes de Agosto, todo el mundo de vacaciones excepto el menda y mi costilla, seguro que llevaba un cabreo de "cohones", pero era y es así de buena y comprensiva, solo tuve que llevarla tres fines de semana de hotel por la costa de Levante para que sintiese que tenía el control, en cierto modo siempre lo tiene.

 Aún eran las 7:45 de la mañana pero ya se mascaba en el ambiente que iba ha ser un día de esos en los que el asfalto derrite la suela de tus bambas. Había encontrado sitio para aparcar bastante cerca del lugar del curro, curiosamente el día de la entrevista me toco aparcar en un descampado a más de 700 metros del curro previa aportación económica al gorrilla de turno.

 Según me iba quitando el cinturón, escondiendo la carátula de mi “J-uve-C” en la guantera, guardando mis “Rai-ban” en su funda rígida y sacando el portátil HachePé del maletero, la zona de aparcamiento se iba llenando hasta tal punto que 3 minutos más tarde el gorrilla de la zona, (me libré por que aparqué como a 150 metros de distancia de donde él estaba), iba desfondado recogiendo “Leuros” por doquier y 6 minutos después de haber llegado, no quedaba ni una sola plaza libre. Tomé buena nota, a la hora de aparcar 6 minutos puede ser la diferencia entre la vida y la muerte, o sea calle o descampado.

Como en casi todos los edificios de la Administración Pública, la seguridad es primordial así que al entrar me tomaron los datos y me dieron una etiqueta de visitante. Como ya sabia donde estaba, por la entrevista de la semana anterior que realice en un pequeño despacho justo al lado, me encamine hacia el departamento de IT.

Era una habitación diafana, con pooles de trabajo de mesas anchas, pc y teléfonos con auricular a lo teleoperador, no había nadie, yo estaba algo nervioso y ansioso por ver con que clase de especimenes me iba a topar, así que me senté en una silla y me puse a leer el 20 minutos para tranquilizarme. Al poco tiempo llegó él, el gran $Tamarit, que se convertiría en uno de mis primeros mentores. Pedasso friki, curraba desde su pc con una versión de Slack y tenia en su poder el password más largo que nadie pueda imaginar, según me confeso en uno de nuestros almuerzos, en alemán.

- Eh, hola, buenos días!!! ¿Que tal? ¿Eres el prostituto?
- Buenos días, me llamo s4b4sTI!! - Estrujón de manos a lo Schwarzenegger, hay que causar buena impresión, aunque enseguida me di cuenta que a $Tamarit se la sudaban las impresiones, era un tío feliz que transmitía buen rollo.
- Pues nada tío bienvenido, puedes sentarte aquí, enfrente mió, tienes un PC para ti. Por cierto, yo me llamo Juan $Tamarit, en cuanto lleguen te presento al resto de la tropa.

$Tamarit, era el tercer miembro del grupo de sysadmins junto con $Tronco y $BettyBop. Además de los administradores de Sistemas en el departamenteo de TI había gente de Bases de Datos y Servidores de Aplicaciones, Programadores Web, Comunicaciones y los temibles y prehistóricos Funcionarios.

 Poco a poco iban entrando a su puesto de trabajo el resto de componentes del departamento de informática y $Tamarit como buen anfitrión me fue presentando a todos y cada uno, incluso a los funcionarios, bueno no a todos los funcionarios, solo a los que habían llegado hasta el departamento de IT, $Espotifi que nos ponía música todas las mañanicas y $VoyDeCompras que se cambiaba los zapatos de tacón por unos de suela plana mucho más cómodos para salir pitando a desayunar antes de irse de tiendas.

La mañana transcurrió tranquila, me entregaron documentación de protocolo, firme los impresos de confidencialidad, acreditaciones, me proporcionaron tarjeta de acceso, usuario del dominio, etc... Paradita a almorzar, conversación amena con $Tamarit, y así fue pasando mi primer día.

La verdad es que me volví a casa con muy buenas sensaciones, sobretodo las que me transmitía $Tamarit, con el tiempo me di cuenta de que era el único ser de aquella sala que transmitía sensaciones y conocimientos en el grupo de Sistemas.

jueves, 14 de noviembre de 2013

Restore desde linea de comandos

En mi actual trabajo, debido al gran número de aplicaciones con el que trabajamos y para que los desarrolladores dispongan de los logs de todos los entornos, centralizamos todos los logs en un servidor para su consulta. Estos se rotan diariamente y se eliminan los de +4 días.

Debido a esto son varias las ocasiones en las que nos solicitan realizar restores de ficheros de log de varios dias y de distintas aplicaciones.

Por ejemplo los logs del mes de octubre de la aplicación "SuperAppEnJava" que empiecen por logs_serv.

Para aligerar la tarea y no tener que estar abriendo cada dos por tres el interfaz de Netbackup e ir seleccionando entre los distintos directorios de los distintos servidores donde se desplegaba la aplicación, me monte un script que selecciona los ficheros a copiar con bplist y restaura con bprestore desde consola:

El script nos va solicitando los datos necesarios para la ejecución del restore, (Cliente, fecha de incio, fecha de fin, politica, un patrón de los ficheros a restaurar y el directorio destino del que colgará el restore que colgará de /backups/ en nuestro servidor de Netbackup, pero esto se puede cambiar con una pequeña modificación del script. Sustituid los campos entre llaves por los valores utilizados en vuestro sistema.
 


#!/bin/bash
#by s4b4sTI 11/2013 
#Definicion de variables 
BPLIST={path netbackup}/bplist 
BPRESTORE={path netbackup}/bprestore 
RENOMBRAR=/tmp/path_restores   RESTORES=/restores/
LOGS=/var/log/restore_log.log 
LISTA=/tmp/filelist 
DESTINO={servidor_destino} ###Comenzamos sacando la lista de los ficheros
echo "Introduce el cliente" 
read CLIENT; 
echo "Introduce fecha inicio MM/DD/AAAA" 
read INICIO; 
echo "Introduce fecha fin MM/DD/AAAA" 
read FIN; 
echo "Introduce la politica" 
read POL; 
echo "Introduce el patron de los ficheros a restaurar" 
read PATRON; 

###Imprimimos el comando por pantalla y lo ejecutamos, va bien para registrar la ejecución en algún log.
echo "bplist -R 99 -C $CLIENT -l -k $POL -s $INICIO -e $FIN -l $PATRON" 
$BPLIST -R 99 -C $CLIENT -l -k $POL -s $INICIO -e $FIN -l $PATRON | awk '{print $8}' > $FILELIST 
echo "Se restauraran los ficheros:" 
cat $LISTA; 
echo ""; 

#Pedimos confirmacion y si es correcto continuamos con el restore. 
echo "Es correcto? (y/n)" 
read OPTION;
if [ "$OPTION" == "y" ]; 
then  #Solicitamos DIRECTORIO para crear el directorio destino del restore que colgará de $RESTORES 
echo "Introduce el directorio destino"; 
read PETICION 
mkdir -p $RESTORES$PETICION 
echo "change / to $RESTORES$PETICION" > $RENOMBRAR; 

#Ejecutamos el comando con -w para que espere la finalizacion del restore antes de empaquetar y comprimir. 
echo "Restaurando..." 
$BPRESTORE -w -C $CLIENT -s $INICIO -e $FIN -D $DESTINO -L $LOGFILE -R $RENOMBRAR -f $LISTA 
#Informamos de la finalizacion del restore, empaquetamos, comprimimos y limpiamos 

echo "Restore finalizado, empaquetamos, comprimimos y limpiamos" 
tar cvf $RESTORES$PETICION.tar $RESTORES$PETICION/* 
gzip $RESTORES$PETICION.tar 
rm -rf $RESTORES$PETICION 
echo "Puede recoger su archivo en $RESTORES$PETICION.tar.gz" 
else 
echo "bye"; 
exit 0; 
fi 
#Sacabo 


Espero que os sea util!!

martes, 12 de noviembre de 2013

Mi primer job


Supongo que esto no es la forma habitual actualmente de encontrar un primer trabajo, pero os voy a contar como conseguí yo mi primer currele como Informático.

Acababa de liquidar mi diplomatura en Informática de Sistemas, eso si, aprovechando los últimos años de la misma, antes de finiquitar el PFC, estuve año y medio currando como becario en tres empresas distintas a la vez, para ir haciendo callo..., luego me canse y como la única empresa de las tres que mostraba interés no lo acompañaba de cariño, presente el PFC y me fuí como Colón, con el resguardo del título bajo el brazo, a descubrir el nuevo mundo.

Tuve suerte y al poco tiempo encontré mi primer puesto serio como "sysadmin junior" sustituto en un puesto en la Admón. Pública (Carnicera de turno mediante "$DawnTech"), durante los tres meses que dura el verano. Una putada, sobretodo si dejas a tu pareja sin dos semanicas de merecidas vacaciones.

Bien la cosa es que me captaron por un famoso portal de empleo, uno que empieza por info... y acaba en ...jobs, me solicitaron el curri, lo presentaron al cliente y me citaron para una entrevista en el cliente claro. Me dieron mal la dirección de la entrevista, llegue tarde tuve que llamar al cliente para aclarar la confusión y disculparme. Finalmente se produjo la entrevista. Los entrevistadores eran $BettyBop, una administradora de sistemas especializada en Windows y VMWare, $Tronco un sysadmin de Solaris/Linux y el responsable del departamento de TI de la Admón $Juanxo.

Después de varias preguntas “técnicas”, realizadas todas por $Tronco, como por ejemplo:

- ¿Sabes hacer un script que borre los logs de más de 30 días?
- Claro!! Le escribo en un papel “find $PATH -mtime +30 -name *.log -exec rm {} \;” .

$Juanxo ponía cara de “seguro que eso no funciona con todos esos *;{}?”, sin embargo $Tronco hizo un gesto de aprobación con al cabeza y “palante”, siguiente pregunta.
 nos despedimos con un “...ya te llamaran si eso”.

No se cuantos candidatos tenían en el aquella época que quisiesen pasarse el verano haciendo una sustitución de tres meses, la verdad no creo que muchos, o por mi sex-appeal, la cosa es que pese a mi corta/pobre experiencia me seleccionaron para el puesto y lo mejor de todo, con un buen sueldo, eran otros tiempos...

A los pocos dias llamaron de la Carniceria $DawnTech:
- Buenos dias Sr. S4b4sTI, le llamo de $DawnTech, el lunes puede pasar por nuestas oficinas a firmar el contrato para el trabajo en nuestro cliente de la Admón Pública para el cual fue entrevistado.
- Perfecto, gracias. Yuuuuuujjjjjjuuuuuuuuuuu. Con toda la ilusión del que encuentra su primer trabajo.

Estamos en marcha...

Alla vamos...


Pues eso, como últimamente dispongo de algo de tiempo aprovecho y me monto un blog para compartir vivencias sufridas en el mundo de las TI y algunos TIPS que tengo en mi wiki personal.


A ver lo que dura...