22.5.13

NAGIOS - Monitoreo de servidores


la mayoria de la gente piensa q los admines no hacemos nada... y en parte es verdad, pero justamente el secreto del exito esta en q no haya nada q hacer, ya q esto quiere decir q todo funciona ok... pero para q todo funcione tenemos q estar siempre informados de lo q pasa con nuestros servers para poder ser los 1eros en enterarnos cuando hay un problema y solucionarlo antes de q escale a mayores proporciones... o alguien se de cuenta... xD

nagios es un sistema de monitoreo de servidores, apto para estructuras complejas, q cubre la mayoria de las necesidades de cualquier admin, avisandonos cuando hay una situacion fuera de lo normal en base a parametros q podemos configurar facilmente. podemos monitorear tanto servicios publicos (HTTP, SSH, FTP, MYSQL, etc) como internos (carga del micro, espacio en disco, procesos, etc).


INSTALACION


como siempre voy a describir la instalacion para debian/ubuntu, pero en el caso de los servers monitoreados voy a agregar la de centos ya que los archivos necesarios no estan en los repositorios standard y hay q hacer un par de modificaciones. lo primero que vamos a configurar es el server q va a cumplir la funcion de monitoreo de los demas (y x supuesto de si mismo). es requisito tener apache instalado ya que es usado para ingresar a la web de administracion del sistema, si todavia no lo hicieron... apt-get install apache2.

en este ejemplo vamos a llamar a este server "monitor" con la ip 192.168.1.1. una vez que esta todo listo en una consola con derechos de root (sudo para ubuntu) ingresar:

# apt-get install nagios3 nagios-plugins nagios-nrpe-plugin

durante la instalacion nos pide configurar workgroup para samba:



y despues ingresar password para administracion:



una vez terminado el proceso ya podemos loguear desde:

http://localhost/nagios3

con el usuario "nagiosadmin" y la password que configuramos antes. a la izquierda haciendo click en "hosts" podemos ver que el localhost ya esta siendo monitoreado y desde ahi entrar a la pagina de la informacion del estado gral y al detalle de los distintos servicios configurados.

...pero vamos a agregar servers para monitorear q es lo mas importante. vamos a llamar al 1ero "server1" corriendo en la ip 192.168.1.100. en este abrimos una consola con derechos de root e ingresamos:

# apt-get install nagios-nrpe-server nagios-plugins

durante la instalacion tambien pide configurar workgroup, cambiarlo si es necesario y sino dejarlo x default.

en la maquina monitor tenemos que crear un archivo de configuracion por cada server que agregamos. creamos entonces un archivo con el nombre correspondiente agregandole al final "nagios2.cfg" o sea "server1.nagios2.cfg" y lo ponemos en:

/etc/nagios3/conf.d

dentro definimos el host y los servicios a monitorear. en el siguiente ejemplo puse la carga del procesador solamente, el contenido del archivo quedaria asi:

define host{
        use             generic-host
        host_name       server1
        alias           server1
        address         192.168.1.100
}
define service{
        use                     generic-service
        host_name               server1
        service_description     Current Load
        check_command           check_nrpe_1arg!check_load
}

y reiniciamos el servicio con:

# service nagios3 restart

antes de poder ver la informacion tenemos que configurar server1 para que permita a la maquina monitor tomar los datos. esto lo hacemos desde nrpe.cfg q se encuentra en:

/etc/nagios/

buscamos la entrada "allowed_hosts" y cambiamos la ip por la del server "monitor", quedaria asi:

allowed_hosts=192.168.1.1

y reiniciamos el servicio:

# service nagios-nrpe-server restart

en el monitor ya deberia aparecer el nuevo server, del cual se puede ver la carga actual solamente (x ahora)... despues de checkear su funcionamiento podemos sumar otros servicios. todo esto se agrega al archivo de configuracion que encuentra en "monitor" (server1.nagios2.conf). algunos ejemplos son:

USUARIOS LOGUEADOS:

define service{
        use                     generic-service
        host_name               server1
        service_description     Current Users
        check_command           check_nrpe_1arg!check_users
}

ESPACIO EN DISCO:

define service{
        use                     generic-service
        host_name               server1
        service_description     Disk Space
        check_command           check_nrpe_1arg!check_hda1
}

CANTIDAD DE PROCESOS ACTIVOS:

define service{
        use                     generic-service
        host_name               server1
        service_description     Total Processes
        check_command           check_nrpe_1arg!check_total_procs
}

HTTP:

define service{
        use                     generic-service
        host_name               server1
        service_description     HTTP-Server
        check_command           check_http
}

FTP:

define service{

use generic-service
host_name remotehost
service_description FTP
check_command check_ftp
}

SSH:

define service{

use generic-service
host_name remotehost
service_description SSH
check_command check_ssh
}

SMTP:

define service{

use generic-service
host_name remotehost
service_description SMTP
check_command check_smtp
}

hay muchos otros servicios monitoreables pero son demasiados para incluirlos todos, googleando un poco se puede encontrar facilmente info al respecto. simplemente se agrega el que se necesita al archivo de configuracion, reiniciar el servicio y ya esta funcionando.


NRPE-SERVER EN CENTOS


nrpe se encarga del monitoreo de los servicios internos (carga de cpu, usuarios, disco, etc), ya que los publicos se checkean normalmente sin necesidad de acceso al servidor. como habiamos dicho antes, centos no tiene a nagios en sus repositorios por defecto asi que tenemos q descargar e instalar un par de paquetes para poder usarlo.

ya q los paquetes dependen del sistema en q se instala no puedo poner links q sirvan para todos. el 1ero es epel que se puede descargar de aca:

http://dl.fedoraproject.org/pub/epel/

y el otro es remi:

http://rpms.famillecollet.com/enterprise/

dependiendo de la version bajamos el rpm correspondiente. pongo como ejemplo los archivos de instalacion en centos6 x64:

http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

los bajamos e instalamos con rpm o sino directamente hacemos:

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

una vez instalados ya podemos usar yum:

# yum install nagios nagios-plugins-all nrpe

y configuramos el servicio para q arranque automaticamente:

# chkconfig nrpe on

otro paso necesario en centos es configurar iptables para q permita el acceso al monitor q necesita abierto el puerto 5666:

# iptables -N NRPE
# iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j NRPE
# iptables -I NRPE -s ipdelservermonitor -j ACCEPT
# iptables -A NRPE -s 0/0 -j DROP
# /etc/init.d/iptables save

solo falta arrancar el servicio:

# service nrpe start

el resto de los pasos de configuracion en nrpe.cfg son los mismos q en debian.


MODIFICAR ALERTAS DE LOS SERVICIOS


podemos establecer los porcentajes q necesitemos en cada caso para las alertas del sistema. los defaults estan bastante bien pero siempre es necesario "tocar" algo en alguno.

el 1er problema q nos encontramos normalmente es q el sistema no puede conectar al disco de sistema para checkear el espacio. esto se debe a q viene definido como "hda1", lo cual no coincide en la mayor parte de los sistemas modernos. esto se modifica tambien desde el archivo nrpe.cfg en "server1". buscamos la linea:

command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1

y la cambiamos por el q corresponda q lo podemos ver haciendo un df en la consola. desde ahi tambien modificamos los porcentajes de las alertas, en la de arriba podemos ver el del espacio en disco que envia un alerta "warning" cuando queda 20% libre y un "critical" al 10%.

para modificar la alerta de procesos modificamos:

command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200 

siendo como en el caso anterior 150 el warning y 200 el critical.


CONFIGURANDO LAS ALERTAS DE CORREO


hasta ahora todo muy lindo pero no podemos estar todo el dia mirando si hay algun problema, lo q necesitamos es q nagios nos avise cuando se da un estado de alerta. para esto lo mas usado es el envio de correo.

para usar esta caracteristica tenemos q tener postfix (o el smtp prefieran) configurado y funcionando. basicamente para instalarlo hacemos:

# apt-get install postfix

durante el proceso pide datos sobre el tipo de correo q configuramos, seleccionar "internet site". acto seguido pregunta por el dominio que es el q sale en los correos enviados. una vez finalizado editar:

/etc/postfix/main.cf

y en "myhostname" agregar el nombre del host. x ej:

myhostname= nagios.locvtvs.com

si usan un relay configurarlo en "relayhost". y reiniciar el servicio:

service postfix restart

con postfix corriendo vamos a configurar en nagios el destinatario de los correos de alerta. modificamos el archivo:

/etc/nagios3/conf.d/contacts_nagios2.cfg

q contiene algo asi:

define contact{
        contact_name                    root
        alias                           Root
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           admin@domain.com
        }

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 root
        }

simplemente cambiamos la direccion en "email" por la q necesitamos. para agregar otro contacto hay q repetir todo el bloque "define contact" con la direccion nueva y agregar el contact_name en el bloque de abajo (define contactgroup) separado por comas:

members root,otrousuario,otromas

con todo corriendo solo falta esperar (o provocar) alguna alerta para checkear el funcionamiento. personalmente lo tengo configurado para que me mande correo (q me suena en el celu) y desde ahi mismo puedo tambien levantar la web de administracion y tener mas detalles de lo q pasa. al normalizarse el servicio el sistema envia otro correo informando el nuevo estado.


14.5.13

Evolucion de un usuario Linux - Un poco mas de Linux vs Windows... ;)

este articulo fue escrito por James Baughn en 1999 y pasa a formar parte de mi pequeña coleccion de traducciones de textos clasicos de humor informatico. en su momento fue muy actual, pero de todas formas a pesar del tiempo que tiene (siglos en este tema), se puede ver que las cosas no cambiaron casi nada...


EVOLUCION DE UN USUARIO LINUX

durante el pasado año, los cientificos del Humorix's Vast Research Lab of Doom estudiaron el comportamiento y actitudes del tipico usuario de windows y linux. han descubierto que el usuario promedio de Linux pasa a traves de 10 fases de desarrollo desde un "Microsiervo" hasta un "Usuario Linux Iluminado". un undecimo estado "Consiguiendo una Vida", ha sido ademas observado, pero solamente en ocasiones extremadamente raras.

las 11 fases de evolucion se encuentran resumidas debajo. Notese, de todas formas, que este ciclo de vida no es universal. Muchos expertos, accionistas de microsoft y PHBs nunca avanzan mas alla de la Fase 0 ("Microsiervo"). Por otra parte muchos adictos a Slashdot estan atrapados entre las Fases 6 y 7 ("Fanatico de Linux") y nunca evolucionan a la Fase 9 ("Usuario Linux Iluminado"). Y, desafortunadamente, demasiada gente no es capaz de dejar la Fase 8 ("Vuelta a la Realidad") y alcanzar la autorealizacion geek debido a problemas fuera de su contol.


FASE 0. MICROSIERVO

sos miembro numero uno del club de fans de bill gates. tu vida gira en torno de computadoras x86 corriendo la ultima version de las soluciones microsoft: windows, office, internet explorer, visual basic, y hasta Bob. No tienes mas que odio para esos excentricos fanaticos de mac con sus interfaces click-y-baba y esos veteranos prehistoricos de Unix con sus arcaicas lineas de comando.

Frecuentemente envias furiosas cartas a tus representantes electos sobre la "libertad de innovacion" de microsoft. Crees que los abogados son malignos (menos los que defienden compañias innovadoras como microsoft). Posees una copia autografiada de un libro que fue escrito secretamente por bill gates. Tu sangre hierve cuando alguien te reenvia un asi-llamado "chiste" de microsoft por email.

En pocas palabras, sos un Microsiervo.


FASE 1. MIEDO, INCERTIDUMBRE, DUDA... DE MICROSOFT

tu mirada del mundo comienza a amargarse tan pronto como empezas a encontrar un creciente numero de contratiempos con productos microsoft. el numero de pantallas azules aumenta, de todas formas atribuis el problema (al principio) a conflictos con los drivers pobremente escritos que vienen con tus perifericos. Los iconos se mantienen saltando alrededor del escritorio impredeciblemente. un dia pasas 30 minutos buscando inutilmente una opcion de configuracion oculta en el panel de control.

lento pero seguro, empezas a tener dudas acerca de la calidad del soft de microsoft. entonces, la microsoft network, a la que te suscribiste obedientemente en 1995, comienza a duplicar la factura en tu tarjeta de credito. intentas solucionar el problema pero te encontras bloqueado por la creciente burocracia del dto de atencion al cliente de microsoft. el miedo se instala... te van a devolver tu dinero?

mientras tanto, algo llamado "linux" aparece en el borde de tu radar. Inmediatamente desechas la idea de una alternativa a microsoft viable y de calidad (linux esta basado en unix, entonces apesta. es tu conclusion). No obstante, deseas que se pudiera hacer algo con algunas de las molestias en windows. pero no haces nada sobre ello.


FASE 2. MIEDO, INCERTIDUMBRE, DUDA... DE LINUX

seguis escuchando sobre esto de linux, y codigo abierto, y apache, y freebsd tambien. uno de tus amigos instala linux y dice, "esta buenisimo". descubris que la seleccion de libros de windows en tu libreria local se mantiene igual mientras los de linux y unix se multiplican como conejos. argumentas, "bueno, eso significa que linux es una mierda... si hubiera una gran demanda de el, no habria tantos libros en los estantes."

sin embargo, a medida que pasa el tiempo y windows se vuelve mas fragil, la tentacion de probar linux se vuelve mas y mas irresistible. mientras estas en el supermegalocaldearticulosdeoficina de tu zona, agarras una version box de red hat en un impulso.

con mucho orgullo, ignoras completamente la documentacion y tratas de instalar el sistema de la manera que se te ocurre. la instalacion falla, linux simplemente no funciona con el winmodem, la placa de sonido windows, el controlador IDE windows, la winimpresora, el winmonitor y la windram que vino con tu maquina "lista para windows98" desde compussr. de todas formas no te das cuenta de esto, ya que no leiste las FAQs y los HOWTOs. inmediatamente le echas la culpa a linux y te rendis. te deshaces de tu copia de red hat vendiendola en ebay.

despues del fracaso en la instalacion, quedas temeroso, inseguro y lleno de dudas con respecto a este sistema operativo "alternativo". puede que windows tenga sus problemas, pero microsoft los arreglara en la proxima actualizacion, te parece.


FASE 3. MICROSIERVO RENACIDO

"linux es una mierda" es tu nueva actitud ante la vida. windows, considerandolo todo, no es tan malo. decidis convertirte en mejor cliente de microsoft participando en la red de desarrolladores de microsoft y en la red de diseñadores de sitios. compras un monton de "guias de estudio" para pasar el examen MCSE.

creas un sitio de defensa de windows en algun proveedor de espacio web malo, utilizando las ultimas innovaciones en vbscript, activex, y otras caracteristicas especificas de IE. en lugar de acechar, ahora participas activamente atacando linux y macintosh en varios grupos de usenet. cuando descubris slashdot, asumis el rol de Cobarde Bastardo Anonimo Del Infierno posteando incontables flames sobre lo cool que es microsoft y como "linuxmierda" (como lo llamas) es una porqueria de sistema.

orgullosamente te pones una remera de "todos saludamos al presidente bill" y mostras numerosos stickers pro-microsoft ("toca la bocina si odias las leyes anti-trust") en tu auto. nunca dejas tu casa sin tu palm basada en windows cd. haces una peregrinacion hasta redmond para maravillarte en la gloria del campus de microsoft.


FASE 4. USUARIO CONTRARIADO

tu camino de microsiervo llega a un abrupto final cuando todo sale mal. perdes un documento vital del trabajo en un cuelgue de windows. perdes tu trabajo como consecuencia indirecta. descubris que conseguir un trabajo es dificil... todos quieren tu curriculum en la ultima version de word, pero vos tenes una version vieja que tiene un formato incompatible.

perdes mas y mas tiempo retocando windows y otros programas de microsoft para mantenerlos funcionando. encontras serios problemas con tu windows, pero tus llamadas al soporte tecnico solo obtienen la temida respuesta, "reinstale el sistema".

despues de mucho pesar finalmente conseguis otro trabajo en una empresa de software, solo para descubrir un mes despues que microsoft anuncia un producto competidos que sera "integrado" con la siguiente version de windows. pronto perdes tu trabajo.

no podes soportarlo mucho mas. sos oficialmente un usuario contrariado, y estas listo para cualquier forma de escapar de las entrañas del infierno microsoft. estas listo para cualquier cosa en absoluto... hasta una primitiva, arcaica, dificil-de-instalar, una alternativa cargada de dolor como linux.


FASE 5. UNA EXPERIENCIA RELIGIOSA

te decidis a instalar linux ahora, de verdad. tus amigos dicen "ya era hora", y te dicen que RTFM esta vez. despues de perderte en la documentacion por varios dias, te das cuenta porque tu encuentro previo con linux fue un desastre: necesitas hardware de verdad no winbasura.

con una nueva computadora en tu escritorio, y un cd de red hat en la mano, te embarcas en el viaje de descubrimiento de la tierra de linux. tu vida cambia para siempre, las palabras no pueden describir la adrenalina que sentis la 1era vez que te logueas como "root" despues de una instalacion exitosa. miras fijamente la pantalla con asombro, no sos capaz de emitir una palabra, incapaz de pensar otra cosa que "SANTA MIERDA, ESTO ESTA BUENISIMO!!!"

pasas horas, y despues dias, explorando las profundidades del sistema linux: un sistema de archivos que tiene sentido (no la basura de "Mis Documentos"), una linea de comandos tan poderosa que hace que ms-dos parezca la tecnologia de la edad de piedra que es... y lo mejor de todo, no hay pantallazos azules!

"porque desperdicie mi vida con microsoft? jamas voy a volver!" exclamas salvajemente. te liberaste del yugo de opresion de redmond.


FASE 6. CONVERSO LINUX

aun tenes una copia de windows por ahi, pero te encontras a vos mismo booteando en linux mas y mas. la escasa cantidad de espacio en disco que usaste para tu 1er instalacion de linux disminuye, decidis comprar un segundo disco rigido exclusivamente para linux.

reinstalas todo, incluyendo el kitchen sink (Emacs). una vez que finalmente tenes PPP funcionando (fue un desafio desagradable, pero estas tan enamorado de linux que casi no te diste cuenta), te das un atracon descargando e instalando cada pedazo de software free que se te cruza.


FASE 7. FANATICO LINUX

tu entusiasmo por linux es ilimitado. haces cualquier cosa por defender linux a pesar de tu antiguo amo, microsoft. usenet, slashdor y linuxtoday son tus lugares preferidos. tenes una fuerte opinion sobre el GNU GPL y no tenes miedo de compartirla.

la dominacion mundial por parte de linux es la nueva ambicion de tu vida, pones tu carrera, riquezas y citas en 2do plano. participas en festivales de flames contra esos cerebros-muertos lusers de windows (atrapados en FASE 3) que habitan en usenet y zdnet. compras todo tipo de merchandise vulgar de linux hecho-en-taiwan (remeras, pads de mouse, pinguinos de peluche, etc.) para demostrar tu apoyo.

reacomodas los libros en una libreria para que los tomos de linux esten mas a la vista. te metes en problemas con tu jefe porque te pasas todo el tiempo navegando por slashdot en el trabajo. haces una peticion a tu gobierno para que migren sus sistemas informaticos a software libre. te mudas solo para poder decir que vivis en la calle Apache.

en lugar de una novela, lees el codigo fuente del kernel de linux por placer. estableces tu propio grupo regional de usuarios linux con la esperanza de poder traer un orador invitado en el futuro y tener su autografo. aprendes perl con el objetivo de automatizar tareas comunes, pero perdes mas tiempo retocando "solo un script mas de perl" que consiguiendo algo ya hecho.


FASE 8. DE VUELTA A LA REALIDAD

tu fanatismo disminuye a medida que sos forzado a re-entrar al mundo real. tu jefe pide que envies los documentos en el ultimo formato de word, nada mas lo hara. algunos de tus sitios favoritos se vuelven dificiles de usar porque siguen incorporando caracteristicas mejoradas para windows y IE. el nuevo periferico que compraste de la compañia GranPropietarioMaligno no funciona con linux y probablemente nunca lo hara.

tu ISP es adquirido por otra compañia, una compañia muy amigable con microsoft, para ser exactos. ellos "actualizan" el sistema; de todas formas, el unico cambio que notas es que linux y PPP no funcionan mas sin un hackeo extensivo. entonces, citando "demandas de los usuarios", tu ISP hace mas "actualizaciones", y linux ya no funciona para nada. llamar a su soporte tecnico es un ejercicio de inutilidad, ellos simplemente dicen, "linux? que es eso? lo que sea no le damos soporte, y nunca lo haremos. use windows como todos los demas."

la realidad toma forma: estas forzado a usar windows mas y mas. tu presion sanguinea se eleva, tenes mas dolores de cabeza, perdes horas y horas por culpa de "asuntos" de windows, pero no tenes mas opcion.


FASE 9. USUARIO ILUMINADO DE LINUX

entonces tenes una inspiracion: tenes una chance, podes hackear tus propios drivers para tu hardware, podes encontrar otro ISP, podes conseguir otro trabajo. todo se pone en foco, te convertiste en un guru de linux.

creas drivers para tu hardware "windows-compatible". finalmente (despues de mucho buscar) encontras un ISP local manejado por geeks competentes, no MCSEs y PHBs. encontras un nuevo, mejor trabajo en una compañia amigable con linux.

en tu tiempo libre, trabajas en varios proyectos de codigo abierto. te creas una reputacion y recibis "la carta" para participar en la IPO de un negocio linux. te subis al tren y creas tu propio portal de linux.

estas en el pinaculo de la evolucion de un usuario de linux. con extremo placer te convertis en 100% libre de microsoft. te deshaces de tu particion de windows y quemas todos los discos y manuales de windows que tenes.


FASE 10. CONSEGUIRSE UNA VIDA

te aburris de linux, y las computadoras en general. todavia sos un gran geek, por supuesto, pero te preguntas si no hay algo mejor que podrias estar haciendo. te mandaron a "conseguirte una vida" incontado numero de veces durante tu existencia en la tierra, pero ahora te preguntas si tal vez deberias haber hecho caso a ese consejo.

inesperadamente, un conglomerado de medios (por ej andover, ziff-davis, internet.com, etc.) ofrece comprar tu portal de linux y nombre de dominio por un precio obsceno que contiene un significante numero de digitos. sin dudarlo aceptas; este golpe de suerte, combinado con tus ganancias de stocks de linux, es suficiente para retirarte.

y eso es exactamente lo que haces. te mudas a una pequeña isla tropical y te conseguis una vida.


16.3.13

Como obtener IP del pais que quieras con Tor


algunas veces no solo necesitamos cambiar nuestra ip sino tambien hacerlo por alguna con ciertas caracteristicas, como por ejemplo un pais especifico. en "la antiguedad" se solia buscar en listas de proxies publicos y configurarlos a mano o con algun soft para encadenarlos si se queria mas seguridad.

actualmente servicios como tor facilitan enormemente estas tareas, y a pesar de que todo tiene sus pros y contras es una buena opcion y una de las mas usadas actualmente para anonimato tanto por "iniciados" como usuarios comunes dada su facilidad de uso. obviamente los 1eros seguramente le sacaran mas el jugo pero todos logran en general lo que buscan.

volviendo al problema, con tor podemos cambiar nuestra ip pero por una aleatoria que en circunstancias normales no podemos elegir (en la mayoria de los casos no importa demasiado). si vemos como funciona la red, con una serie de nodos que se pasan la informacion encriptada hasta llegar al de salida (exit node), es facil darse cuenta que la ip por la que cambiamos la nuestra es simplemente la de ese ultimo.

para una idea mas detallada pueden ver esta entrada anterior:

http://locvtvs.blogspot.com.ar/2012/03/privacidad-en-internet-tor-privoxy.html

sabiendo esto lo que tendriamos que hacer es cambiar el nodo de salida por uno del pais que buscamos, personificando esa ip.



como

el procedimiento es bastante facil, hay que editar el archivo torrc, en linux suele estar en /etc/tor, en windows me imagino que en directorio de instalacion. ahi simplemente agregar:

StrictNodes 1
ExitNodes {codigopais}

"codigopais" es el codigo del pais que necesitamos definidos en el ISO 3166-1, ar para argentina, us para usa, de para alemania, es españa, etc. Una vez editado y guardado solo queda reiniciar el servicio y probarlo.

9.2.13

Keyboard Hack - Controles para M.A.M.E


si estas buscando keyloggers, eavesdropping o algo parecido te equivocaste de lugar, "keyboard hack" se refiere a otra cosa completamente distinta... el termino "hack", como muchos sabran, no se refiere a violar la seguridad de la cuenta de facebook del amiguito o defacear alguna web, un "hacker" ni siquiera tiene q estar relacionado con internet necesariamente. mas alla de etimologias y cosas raras el q "hackea" algo es el q modifica loquesea para usarlo para algo q no fue concebido originalmente o mejora/aprovecha/abusa su funcionamiento de alguna manera. el "keyboard hack" es justamente la modificacion de un teclado convencional para convertirlo en un precioso joystick tipo arcade con palancas y botones profesionales a un precio de casi nada (lo q valgan los materiales).

en mi caso estoy construyendo una maquina de M.A.M.E.:

http://mamedev.org/

q consiste en meter una pc convencional dentro de un gabinete de arcade de los viejos para poder correr todos los juegos lo mas parecido a la maquina original. mi idea basica es mandar a la pc el controlador del teclado conectado a las palancas y botones y usar una tv CRT comun para el video, aunque tambien pueden usar un LCD q es lo q estoy haciendo hasta conseguir un tv adecuado...

tambien se pueden hacer un controlador solo para usarlo con la pc o lo q se les pueda ocurrir, hay montones de aplicaciones practicas para un keyboard hack, solo hay q usar un poco la imaginacion. lo q voy a explicar con mas detalle es puntualmente el tema de la placa, la conexion de los controles es algo realmente basico sobre lo q no vale la pena extenderse demasiado... basicamente soldar cables en switches. si no saben hacer eso no se molesten en seguir leyendo.


hackeando el teclado


la teoria es bastante facil de entender, el teclado adentro tiene una pequeña placa a un costado y debajo de las teclas dos matrices separadas q hacen contacto al presionar. al hacer contacto se cierra el circuito entre dos pines de la placa y eso produce la pulsacion. o sea q la pulsacion es un corto entre 2 pines X e Y, solo tenemos q averiguar q pines pertenecen a las teclas q necesitamos.

como los teclados no tienen todos la misma configuracion de pines mis anotaciones no le van a servir a nadie a menos q use el mismo teclado, cosa q no creo xq era una porqueria china barata vieja, de manera q van a tener q hacer todo el trabajito.

antes q nada hay q conseguir un teclado, yo use con conector ps2 xq queria todos los usb libres pero es lo mismo. como 1er paso abrirlo tratando de no destruir nada adentro y buscar la placa y las 2 matrices q suelen estar separadas x un tercer plastico. la placa es algo asi:



y las matrices algo asi:


despues hay q buscar la posicion de la tecla q queremos en ambas matrices y seguir la pista hasta el pin, una matriz tiene un pin y la otra el otro. lo 1ero q hice yo fue buscar los cursores y lo recomiendo xq estan mas a mano. busquen cursor arriba de una matriz y la otra y anoten los pines conecten la placa a una pc y hagan un corto en los pines q anotaron para ver si se produce la pulsacion. para verlas mas comodamente pueden usar algun programita como keyhook (es para win pero corre ok con wine):

http://www.multiupload.nl/7QTEB40V09

un tester es muy util para seguir las pistas pero tambien se puede hacer a ojo, aunque no lo recomiendo si quieren conservar la salud mental. para las anotaciones use una planilla de excel con los pines arriba y las teclas de costado marcando los necesarios para la pulsacion. lo pueden hacer como quieran pero es muy importante anotar absolutamente todo xq sino se sale facilmente de control enseguida, son demasiadas conexiones...

mientras lo vayan haciendo se van a dar cuenta q muchos pines son comunes a varias teclas cambiando solo uno, lo cual despues va a facilitar el trabajo al llevar los cables hasta los controles.


conectores


obviamente se puede soldar cable directamente desde la placa hasta los controles pero hay q pensar que haciendolo de esta manera queda todo como una unidad q no se va a poder separar para montarla/desmontarla o cuando haya algun problema. esto trae sus complicaciones dependiendo de la cantidad de conexiones pero son muchos mas los beneficios.

lo recomendable seria usar minimamente algun tipo de conector macho/hembra para poner uno en la placa de teclado y otra en los controles. en mi caso decidi usar un cable plano de puerto paralelo (db25) como este:


use la hembra para la placa. hay q separarlos con una gillette, cutter o lo q tengan a mano, pelarlos y estañarlos. los 25 cables me sobraron para las conexiones asi q pude usar los numeros de pin correspondientes a cada uno para facilitar el trabajo del otro lado, de manera q el cable 1 va al pin 1, el 2 al 2, etc, salteando los q no vamos a usar.


como la placa es bastante "mini" van a necesitar un soldador de punta bien fina o bastante habilidad para soldar los cablecitos. es importante q ninguna haga corto entre si y otra vez seria bastante util un tester, a veces no se llega a ver un corto en algo tan pequeño.

no tengo un soldador de punta muy fina asi q no me quedo tan prolijo:


de esta forma ya tenemos la placa soldada a un db25 hembra de un lado y el ps2 q ya venia del otro. conectandola a un mobo y haciendo cortos con un clip, cable o loquesea pueden checkear si el pinout q anotaron antes esta ok.


conectando los controles


la conexion de los controles es lo mas sencillo. los botones tienen un simple switch y las palancas uno por cada movimiento. en este paso tambien es bueno hacer algun esquema con los controles y las conexiones. yo hice uno separado para cada jugador, palanca y dos botones, con los pines debajo y un esquema electrico de las conexiones de los pines hacia los switches. no hace falta ser demasiado tecnico mientras se entienda bien.

como decia antes muchos pines son comunes a varias teclas y esos no hace falta q vayan hasta la placa, simplemente hacemos puentes entre los pines comunes de los switches ahorrando muchas conexiones.

en este paso pueden decidir o no poner otro conector. yo puse uno para cada jugador y otro para los botones de 1 y 2 player, ficha, etc., de esta forma puedo desmontar completamente los controles dejando el cableado en la maquina. de esta manera tengo, los conectores hembra de los controles q van a un 2do cable con sus respectivos machos q del otro lado tienen el macho db25 y este va a la hembra db25 q conecta a la placa y sale x el ps2.


keyboard hacking


la explicacion es bastante generica xq la idea es explicar el metodo y no q hagan lo mismo q hice yo. si alguien lo quiere puntualmente para una maquina de MAME le va a servir perfectamente pero tambien se hacen "cajas" para meter los controles o tambien para usarlo en lo que se les ocurra.

como lo monte en la caja original recicle absolutamente todo. monte los controles en la madera y chapa q venian en el gabinete:


y ya montado en la maquina quedo asi:


lo estoy probando hace un par de meses y hasta ahora no tengo quejas. si la quieren mas facil venden unas placas q ya sirven para hacer esto, se consiguen bastante facil xq ahora parece q esta de moda tener un arcade, pero... si lo compran todo hecho donde esta la gracia? xD

29.11.12

USEROLOGIA - La vida entre (l)users


este es otro texto clasico de segunda mitad de los 90s q me tome el trabajo de traducir. cualquiera q haya trabajado en sistemas en alguna empresa sabe el calvario q pueden llegar a ser los usuarios, funcionen o no las cosas siempre tienen algo para quejarse. antiguamente las cosas no estaban tan especializadas y normalmente el sysadmin era la figura q hacia absolutamente todo lo referido a tecnologia (en algunos lugares sigue casi igual...), el tenia q luchar directamente con las peticiones muchas veces sin sentido de los distintos tipos de lusers.

el termino "luser" es una contraccion de las palabras "looser" y "user", creo q no hace falta mas aclaracion... y aunque "ellos" no lo saben es muy usado en ambientes de IT. este tratado de "userologia" define los perfiles mas tipicos de lusers q podemos encontrar en cualquier empresa y por ahora no parece perder validez con los años...




USEROLOGIA


sobre diferentes tipos de usuarios y como detectarlos.



el idiota comun

el usuario basico. normalmente solo se sienta en frente de su monitor y babea sobre alguna web porno.



dialogo tipico:
  • U: "maquina no funciona."
  • S: "que pasa con ella?"
  • U: "maquina no funciona."
  • S: "ok. que maquina usas?"
  • U: "maquina no funciona."
  • S: "bien, ya te oi. donde esta tu maquina?
  • U: "maquina no funciona!"
  • S: "*suspiro* voy con vos de vuelta a tu oficina."
  • U: "maquina no funciona?"
  • S: "volver a oficina."
  • U: "volver. oficina."
frecuencia de aparicion:
*demasiado* a menudo.

tratamiento sugerido:
matar.

el balbuceador en el umbral

aparece en la puerta del sysadmin y habla muy, muy suavemente. a veces es posible hacer que hable un poco. a menudo, se ira a la menor provocacion.

dialogo tipico:
  • U: "balbuceobalbuceonetscapebalbuceobalbuceobalbuceo"
  • S: "perdon?"
  • U: "balbuceobalbuceobalbuceoservicepackbalbuceo"
  • S: "perdon? no puedo oirte."
  • U: "... no puedo iniciar netscape..."
  • S: "proba haciendo click sobre el icono de netscape."
  • U: "balbuceobalbuceobalbuceobalbuceobalbuceobalbuceo"

frecuencia de aparicion:
demasiado a menudo.

tratamiento sugerido:
matar.


el deductor rabioso

entra enloquecido en la oficina del sysadmin y empieza a decir cosas sin sentido, usualmente de una forma bastante agresiva. aprendio uno o dos terminos tecnicos y culpa todo problema usando esos terminos.

dialogo tipico:
  • U: "tenes q hacer algo con las colisiones del canal SCSI!"
  • S: "que?"
  • U: "no puedo seguir asi, tenes que arreglar esto, ahora!"
  • S: "otra vez... cual es el problema?"
  • U: "el SCSI no funciona, eso pasa. y ademas esta lento."
  • S: "como puede estar lento si no esta funcionando?"
  • U: "no se, vos sos el experto, no yo."
  • S: "cual es el problema?"
  • U: "esta lento. no escuchaste cuando te dije?"
  • S: "*que* es lento?"
... y asi sucesivamente hasta que el sysadmin se cansa, sigue al usuario a su lugar de trabajo y descubre q desconectaron el cable de red de la estacion de trabajo. porque el usuario empezo hablando de SCSI nunca es revelado.

frecuencia de aparicion:
demasiado a menudo.

tratamiento sugerido:
matar.


el economista

este es uno *realmente* desagradable.

dialogo tipico:
  • U: "y... cuales son las opciones para el nuevo servidor?"
  • S: "bueno, primero tenemos el Dungheap MT. es mas grande que nuestro datacenter, necesita las cataratas del niagara para alimentarlo, es feo, se rie de forma malevola si te acercas demasiado a su consola, huele a azufre, greenpeace y exxon hicieron una declaracion conjunta maldiciendo el momento en q fue creado, es ilegal importarlo a la mayoria del mundo civilizado, tiene el habito de mandar emails repugnantes a los CEOs, su madre fue un hamster y su padre olia a bayas de sauco. y de todas formas no hace lo q necesitamos. por otra parte, tenemos el Frotzpock 3000. es pequeño, elegante, sirve como perchero, obtiene su energia del campo magnetico de la tierra, canta lindas cancioncitas, propaga felicidad donde quiera q va, limpia el piso, lava los platos, te frota la espalda, te recuerda el cumpleaños de tu esposa, hace todo lo q necesitamos perfectamente y sin error y solo cuesta $5 mas que el Dungheap MT."
  • U: "ah, la decision esta clara entonces. vamos con el Dungheap MT"
  • S: "QUE?!"
  • U: "bueno, *dijiste* que es mas barato, o no?"
frecuencia de aparicion:
solo unos pocos por empresa, usualmente.

tratamiento sugerido:
salga y haga volar el lugar fuera de orbita con un arma nuclear (es la unica forma de asegurarse)

el firme creyente en las revistas especializadas

puede ser dificil distinguirlo de "el idiota comun", pero las diferencias seran evidentes si alguna vez termina en una discusion sobre que tipo de equipo comprar.


dialogo tipico:
  • S: "... asi que viste que el Frotzpock es la mejor opcion para nosotros."
  • U: "lei una opinion muy mala sobre el Frotzpock en una revista especializada. Tuvieron grandes problemas abriendo la caja en la que viene."
  • S: "bueno, eso no sera un problema para nosotros. yo *se* como abrir cajas de carton."
  • U: "ellos prefieren el Dungheap 89. ese no necesita ninguna estupida caja, lo deslizan debajo de tu puerta."
  • S: "er, el Dungheap ni siquiera hace lo q necesitamos de la nueva maquina."
  • U: "... y la revista UsuarioDung dijo que el padre de la nueva version solo olia *ligeramente* a sauco."
frecuencia de aparicion:
demasiado a menudo.

tratamiento sugerido:
matar.

el hablador incesante

aparece en la puerta del sysadmin, empieza a describir algun tipo de problema y simplemente nunca se detiene.

dialogo tipico:
  • U: "hola espero no interrumpirte tengo este problema mira no puedo imprimir mas imagenes desde netscape creo q hasta ayer podia hacerlo y anteayer y hasta el dia anterior pero no el ultimo miercoles por alguna razon creo q puede tener algo q ver con el apagon ese dia las impresoras normalmente no funcionan muy bien sin electricidad ni tampoco las computadoras para el caso no pude loguearme en absoluto hasta q volvio la energia debo haber tratado un millon de veces creo q tal vez no tanto pero diez mil por lo menos mi teclado estaba todo gastado asi q no podia ver las letras en las teclas asi q el dia siguiente fui a la oficina de suministros para q me den uno nuevo y dijeron q no podia simplemente llevarmelo q tenia q llenar un formulario antes oiste alguna vez algo tan estupido no se dan cuenta q soy muy importante para la compañia y hago mucho trabajo valioso aca sin mi nada se haria te digo y por supuesto se los dije sin lugar a dudas pero ellos simplemente no me escucharon y siguieron insistinendo en q necesitaba el estupido formulario asi q al final fui a buscar el formulario pero descubri q para obtenerlo tenes q mandar un mail a alguien y no podia mandar mail ya q mi teclado no funcionaba podes creer q eventualmente despues de dos dias logre escribir el correo usando solamente mi nariz no podes creer lo dificil q fue me tomo casi todo un dia y despues q mande el mail me dijeron q no tenia q enviarlo realmente ya q nuestro dpto tiene una pila de esos formularios en la bandeja q esta entre la impresora y la fotocopiadora asi q fui a ver a bob y le pregunte hey bob sabes donde tenemos la impresora y la fotocopiadora y me dijo q creia q estaban siendo reparadas en este momento asi q no podia usarlas de todas formas pero le dije q no iba a usarlas q solo queria saber donde estaban para ir ahi y tomar un..."
frecuencia de aparicion:
demasiado a menudo.

tratamiento sugerido:
dejalo ser. es bastante facil de ignorar, y mientras este ahi no pueden entrar otros usuarios.

el arreglador

subre el delirio de q es capaz de arreglar problemas por si mismo, convirtiendo asi contratiempos en desastres completos. a menudo se hace pasar por sysadmin.

dialogo tipico:
  • U: "el servidor de correo estaba corriendo lento, asi q pense en darle una mirada. vi q estaba realmente ocupado reenviando correos, asi q pense en remover algunos viejos procesos q ya nadie usa. pero tan pronto como mate este realmente viejo proceso llamado 'init' la maquina se colgo!"
frecuencia de aparicion:
demasiado a menudo.

tratamiento sugerido:
matar.

el dron con cerebro de una sola-escritura (write-once)

Una vez un hecho quedo atorado en su cerebro. desde entonces usa dicho hecho para todo.

dialogo tipico:
  • U: "mi maquina esta lenta. hay un proceso muy pesado corriendo en mi sistema. matalo."
  • S: "um, es tu servidor X. *realmente* queres que lo mate? y no es realmente tan grande, es solo memoria de cache"
  • U: "si. matalo."
<al dia siguiente>
  • U: "mi maquina se colgo. debe haber un proceso muy pesado corriendo. matalo."
  • S: "como puedo hacer eso si la maquina se colgo?"
  • U: "si. matalo."
<el dia despues>
  • U: "mi maquina se prendio fuego. debe haber un proceso muy pesado corriendo. matalo."
  • S: "no pensas q seria mejor llamar a la brigada de incendios?"
  • U: "si. matalo."
frecuencia de aparicion:
demasiado a menudo.

tratamiento sugerido:
matar.

el usuario

si encontras uno de estos, considerate *muy* afortunado.



dialogo tipico:
  • U: "perdon?"
  • S: "si?"
  • U: "tengo un pequeño problema. espero no estar interrumpiendote."
  • S: "para nada. cual es el problema?"
  • U: "es el paquete BogoGraphics. estoy tratando de usar una de las nuevas funciones de la version tres, pero no logro hacerlo funcionar. checkee q haya suficiente memoria, los permisos en todos los archivos parecen correctos y lo instale exactamente de acuerdo con las instrucciones del archivo README. me sale un mensaje de error. no es muy informativo, pero lo anote para vos de todas formas. trate mirando en el manual pero no esta ahi. y el FAQ no dice nada sobre la version tres todavia. crees que le podrias dar una mirada?"
  • S: "casate conmigo!"
frecuencia de aparicion:
se considera como mitico.

tratamiento sugerido:
no lo/la dejes ir!


Usted podria ser un hacker si.....


continuando con las traducciones de textos under clasicos... este fue escrito en los 90's por Josh Fritsch para Happy Hacker y es otro clasico que creo que jamas debe haber tenido su version en español, seguramente unos cuantos de la "vieja escuela" lo van recordar cuando lo lean.

lo encontre revolviendo cosas viejas y me dio mucha gracia ver cuantas de esas cosas hacia en ese momento. No tanto de "hacker", cosa que nunca me considere, sino mas bien de geek o tecnofilo... tan raro era tener el los 90s una lan en tu living? tan raro es soñar con codigo fuente?... si te vas a dormir sin resolver algo se te queda dando vueltas en la cabeza y es muy probable que sueñes la solucion, sea codigo o cualquier otra cosa. me paso muchas veces con musica tambien, despertarme con unos cuantos compases en la cabeza corriendo a escribirlos...

mmm.... esta bien... si, tal vez sea un poco raro... :P


Usted podria ser un hacker si.....


  • alguna vez te despertaste a las 3AM con una urgente necesidad de usar el baño, y en el camino de vuelta pensaste, "solo checkeare mi email realmente rapido".
  • alguna vez soñaste con codigo fuente.
  • tus ultimas 5 comidas consistieron en pizza y mountain dew.
  • el sonido de un teclado te calienta.
  • la ultima vez que te levantaste antes del mediodia fue en 1994.
  • if(alguna_vez_escribiste_email==asi)
  • te pasaste 72 horas sin dormir porque "esta estupida cosa TIENE que compilar!".
  • cuando alguien menciona "SATAN" no pensas en el diablo.
  • tu computadora no esta en su gabinete desde el dia que la compraste.
  • llamas al 911 cuando tu ISP se cae.
  • tenes una LAN en tu living.
  • alguna vez usaste la frase "amo patear mascotas!(kickin' puppies)" (warez puppies)
  • el sueño de tu vida es publicar en bugtraq.
  • tu ISP te llama a VOS para soporte tecnico.
  • pensas que deberia hacerse la pelicula de "unix wars".
  • estas obsesionado con sandra bullock desde que salio "the net".
  • pensas que tu telefono esta "pinchado" (intervenido).
  • tu telefono ESTA pinchado.
  • pinchaste tu propio telefono solo para ver si podias.
  • la cantidad de RAM que tenes es > tu IQ.



16.11.12

VNC antes del login en linux (tambien con gdm3...) - error "XOpenDisplay failed (:0)"


vnc es una de las mas populares herramientas de administracion remota, ciertamente hay otras mejores pero ninguna tan standard. corre perfectamente tanto en linux como windows con una configuracion bastante sencilla y no requiere de servidores intermediarios en la conexion.

el protocolo fue desarrollado originalmente por olivetti y oracle y tanto el original como muchas versiones modernas son open source y estan bajo licenci GNU, a pesar de que hay versiones que suman caracteristicas no propias del protocolo como la transferencia de archivos y otras. vnc basicamente usa el framebuffer remoto transmitiendo eventos de mouse y teclado y recibiendo los refrescos de la pantalla del servidor.

para windows se debe instalar alguna de las versiones para usarlo, una de las mas usadas es el realVNC. en la mayoria de los linux viene como opcion del sistema en preferences->remote desktop, solo hay que activarlo y ya esta corriendo.


VNC antes del login

en linux podemos hacer casi todo desde la consola, incluido el uso de aplicaciones graficas abriendo una sesion de ssh con X, pero en contadas ocasiones necesitamos tener acceso full al escritorio remoto por alguna razon y entonces nos encontramos con el problema.

en windows vnc se lanza como servicio antes de loguear y por lo tanto podemos conectar y acceder facilmente a la pantalla de logueo como si estuvieramos delante de la maquina. en linux el server se lanza recien despues de loguear el equipo, con lo cual necesitamos alguien fisicamente para que se active, lo cual no es lo ideal la mayoria de las veces...

entre las versiones disponibles este ejemplo usa x11vnc por ser la que viene instalada por default en la mayoria de los sistemas. dando por sentado que ya esta instalada logueamos por ssh y tratamos de lanzarla sin opciones, lo cual enseguida nos tira entre otras cosas:

XOpenDisplay failed (:0)

lo cual nos dice que vnc no pudo conectar con el display y por lo tanto no se pudo lanzar... simplemente no tiene autorizacion para hacerlo.

esta autorizacion esta en el clasico archivo .Xauthority que por lo gral se encuentra en el home del usuario. ahi se almacena la famosa MIT-MAGIC-COOKIE que es requerida para la autenticacion y sin la cual nos quedamos siempre en el error anterior. lo que debemos hacer entonces es pasarle como parametro la ruta al archivo con el modificador auth de alguna de estas maneras segun donde este ubicado:

gdm:     -auth /var/gdm/:0.Xauth
            -auth /var/lib/gdm/:0.Xauth
kdm:     -auth /var/lib/kdm/A:0-crWk72
            -auth /var/run/xauth/A:0-crWk72
xdm:     -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin:  -auth /var/dt/A:0-UgaaXa

quedando por ejemplo:

#x11vnc -auth /var/gdm/:0.Xauth (para gdm)


el "problema" con gdm3

hasta ahi todo esta bastante claro pero el problema lo encontramos cuando migramos a un sistema con gdm3 donde no podemos encontrar el famos archivo en ninguna de las rutas usuales. la razon es que se genera con un nombre aleatorio en cada logueo y se ubica en:

/var/run/gdm3/auth-for-locvtvs-gdm-XXXXXX/database

donde XXXXXX cambia en cada reinicio, por lo cual no podemos simplemente meter siempre la misma linea de comando sino que debemos saber puntualmente el nombre cada vez. para conocerlo podesmos hacer un ps para buscarla entre los modificadores de Xorg:

ps aux | grep auth

y una vez conocida lanzarlo de esta forma:

x11vnc -auth /var/run/gdm3/auth-for-Debian-gdm-XXXXXX/database

o aun mejor:

x11vnc -usepw -auth /var/run/gdm3/auth-for-Debian-gdm-8ixCen/database

para usar la password definida anteriormente ;)


automatizacion

el problema del cambio de nombre nos complica el tema de poder automatizarlo por medio de un script, para hacerlo debemos extraer la ruta cada vez que se inicia el sistema. en este caso podriamos usar algo asi:

ps ax | grep auth | awk '/gdm3/ { print $13 }'

esto meterlo en una variable:

variable=$(ps ax | grep auth | awk '/gdm3/ { print $13 }')
x11vnc -usepw -auth "$variable"

y agregarlo al inicio del sistema para que lo lance automaticamente.