Exodica Blog Otro blog de esos….

16Aug/100

Instalando Nginx + PHP 5.3 + PHP-FPM (Debian)

php-fpm-logoBueno esto lo hice en Debian pero supongo que también le servirá a alguien que este buscado info sobre esto, de hecho mas allá de la instalación, es configurar los servicios.

Para los que no saben de que se trata, Nginx ("Engine X" o Motor X) es un servidor web de alto rendimiento que viene ganando mercado a pasos agigantados por ser extremadamente rápido. PHP-FPM (PHP FastCGI Process Manager) es un manejador de procesos para usar PHP en modo FastCGI.

16Jun/101

La SIDE y un caso vergonzoso

Talvez leyeron la noticia de que mataron a alguien en la puerta de la misma SI (ex SIDE). Medios como Clarin y otros publicaron la versión oficial, mientras que Periodico Tribuna del cual soy webmaster, comenzó una investigación y hasta nombró porsibles autores del crimen, mientras que la verdad oficial dice que fue un suicidio (con un disparo en el pecho), si bien este no es un blog de política, les cuento esto porque no todo terminó ahí, sino en un atentado de la SI contra el servidor en el que está este periodico independiente y que yo tengo acceso de admistrador.

Si quieren ver la nota original de Tribuna es esta: Cadáver en la puerta de la SIDE habría sido homicidio.

En fin, no había pasado ni unos minutos de publicada la nota y nos llamó el dueño del periodico para decirnos que estaba el sitio caido, cuando chequeo la conexión se quedaba colgada, tanto era el lag que la conexión al ssh era inhumana.

En fin el apache reventaba de conexiones, Mysql pedia piedad y los logs como locos, lo primero que pensé  fue en un ataque DoS (Denial of Service o Denegación de Servicio).

Lo primero que hago es bajar algunos servicios por las dudas, refortalecer las contraseñas (cosa que le debia a ese servidor) y reconfigurar el sshd para limitar aun mas el acceso (esto por las dudas), luego instalé el módulo de apache mod_evasive.

Al rato todo parecia estabilizarse, el mismo módulo bloqueó un ataque DoS desde mas de 70 ips, de distintos proveedores de internet y de conexiones normales, supongo que infectadas con algún malware explotado por este organismo. Otras 4 ips, 2 proxys extranjeros y 2 nacionales colmaron los logs intentando logearse por ssh.

Esto podria haber sido casualidad, muy rara casaualidad, hasta que un informante al medio confirmó que el ataque venía de la Secretaria de Inteligencia.

En fin, no es la primera vez que pasa, ya es el segundo hackeo a este medio en el que estoy involucrado (contrarestandolo obviamente), el primero fue al viejo sitio por un ataque de SQL Injection, y en otra ocación fueron borrados los datos del dominio directamente en el Nic (Net Information Center).

La verdad veo vergonzoso como puden poner en práctica la censura, y como la mayoría de los medios se cayan todo esto.

Nota original del hackeo: http://www.periodicotribuna.com.ar/6757-otra-vez-nos-quieren-callar-por-meternos-con-la-side.html

Actualización: Arreglada la ortografía (:P)

14Jan/100

Mas de medio millon de Hashes MD5 y Sha1

securiteHace un tiempo liberé un sitio con una base de datos de Hashes en crecimiento, de la cual contaba con md5, md5 doble y sha1, la base de datos fue de apoco expandiendose, y en este último tiempo decidí agrandarla mas, y navengando encontre una programita en C para genrar disccionarios de passwords, e hice un par de diccionarios, desde (00000 a 99999) a (aaaa a zzzz) y de 5 cifras (este último no lo termino del todo), obviamente con mayus y minusculas, asi que el diccionario crecio de manera considerable, otra cosa es cargue varios diccionarios de contraseñas comunes en cuentas de hotmail (no me pregunten de donde los conseguí, jeje) y demas, asi que actualmente ya cuenta con mas de  5.800.000  palabras en la base de datos con sus hashes en md5 ,  sha1 y demas.

El sitio en cuestion es: http://hash.exodica.com.ar/

Ahí podran subir archivos con hashes o pedir una individualmene, corre en un MySQL con fulltext y la verdad que va bastante bien.

13Jan/101

MySQL colgado con conexiones “unauthenticated user”

bug_no_400Nada mejor que estar llegando al trabajo y que te avisen que hay un par de sitios caídos, esta confortable noticia me llego el otro día, u no tarde en encontrar que el problema era que un MySQL no respondía, cuando le tiro un "show processlist", me encuentro con cientos de conexiones con este mensaje "unauthenticated user", obviamente las conexiones muertas...

Lo primero que hice fue hacer un fordward de las coxiones a otra DB de emergencia, y luego reiniciar los apache para matar las conexiones creadas que quedaban en la nada, una vez con el MySQL libre, chequíe un par de cosas, mientras buscaba el por qué se habia detonado esto...

Consola

Consola

Leyendo en la pagina de MySQL (bugs.mysql.com), encuentro la solución a mi problema. Y les paso a explicar como viene la mano:

MySQL para asegurarse de que la conexión entrante tiene permisos, hace una resolución de dominio, para saber si por ejemplo juacinto@eldominio.com tiene permiso, el tema es que dejo de andar el servidor DNS que estaba configurado en /etc/resolv.conf y MySQL no tenia de donde sacar esos datos. Hay una forma de desactivar esto, que al mismo tiempo aceleraria el tiempo de respuesta de MySQL.

Como este servidor estaba en una red cerrada, y no tenía salida directa a internet asi que solo necesitaba espesificar permisos por ips de red.

Para desabilitar esta función de MySQL y acelerar las cosas, se debe arrancar el server con el parametro "--skip-name-resolv", o bien ponerlo como opcion en /etc/my.conf  (En Debian es /etc/mysql/my.conf) debajo de la directiva [mysqld], cosa que nos quede:

# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
log = /usr/local/log/mysql.log
skip-name-resolv

Esto ya quedo arreglado, y depués de eso todo anduvo bien hasta ahora.

Recuerden que si hacen esto, y tienen permisos para juancito@dominio.com, este dejaría de andar, lo mejor es ponerlo por IP, onda:  juancito@190.12.45.110, pero si no es posible hacer esto y tienen este problema, otra buena opción va a ser definir estos dominios en el archivo /etc/hosts, al estilo:

190.12.45.110                dominio.com

Bug Reportado: http://bugs.mysql.com/bug.php?id=8945

6Jan/090

Fotolog se porta de PHP a Java

El famoso sitio Fotolog creció de manera desmesurada desde que salió a la luz en el 2002, eso lo puso en el 3º sitio con mas transferencia y unas 300 millones de fotos de 21 millones de usuarios... wow!

El sitio que estaba realizado en PHP ahora porta felizmente a Java sobre Tomcat en Solaris 10, con MySql Enterprise, pasandose al lado del Sun, ya que cuenta con el soporte de Mysql Enterprise, Solaris y hasta servidores Sun Fire T1000, así que no suena tan loca la idea de empezar a trabajar en Java. El pasaje lo hacen según ellos para aumentar el numero de transacciones sin agregar mas servidores.

Personalmente pienzo que el gran problema de Fotolog siempre fue el mal diseño de su programación, por lomenos en lo visible nunca mostró tener una base muy buena, ahora con el traspaso a Java tendrán que hacerlo mejor.

Fuente: http://blogs.sun.com/Argentina_ambassador/entry/fotolog_floggers_en_la_superficie

2Jan/090

Se viene el Songbird….

La verdad no se como vendrá la cosa, el Amarok 2 (por lo menos las Alphas y Betas que vengo probando) no me llegaron a convencer demaciado, no como para cambiar mi Amarok 1, si bien tiene toda la integración con Qt 4 y demás, pero el camino que eligieron no me gusta del todo, ya de por si le faltan cosas que el amarok tiene y el 2 no y si no se tienen los IDv3 bien configurados la lista de reproducción no es muy atractiva ni "usable".

Hace unos años conocí Songbird en una versión alpha si no me equivoco, y la idea me parecio bastante buena, aunque era un abuso de recursos por estar basado en Firefox, pero la idea de un reproductor de música con capacidades de plugins en Xul me parecía copada....

Hace poco salio la 1.0 y se ve que biene muy bien, hace rato que no lo uso, su DB para colecciones estaba en SQLite y con mis 170GB de música se me hacía medio pesada, asi que el amarok 1 con colección en MySql me viene safandola....

Como sea, con un mayor uso de este clon del iTunes, con soporte a Xul y una exelente base para proveer servicios basados en web y demas, las extensiones cada vez serán mas y podrá competir con el amarok y otros reproductores, teniendo tambien la ventaja sobre Amarok 1 de ser multiplataforma y correr en el SO de la ventanita....

En Viva Linux sacaron una nota hablando de 10 cosas que tiene el Songbird que no tiene ITunes.
Este reproductor era mi reproductor predeterminado en un laburo que tenia que usar Win, por que el amarok era solo para linux, y de verdad no me defraudó aun siendo beta, mas alla del uso de recursos que seguramente seguirán corrigiendo en versiones futuras. Sinceramente puedo decir que este reproductor se viene....

web: http://getsongbird.com

2Oct/080

Tuneles SSH

:-) He aqui una de mis cosas favoritas del OpenSSH, o simplemente SSH :P (Secure SHell).

Bueno capas que muchos tiene un consepto.. no errado pero si muy pobre de los que es el ssh, muchos creen que solo es una especie de entrada a usar una PC remota por una consola :-P , y que si o si siempre tiene ejecutar un bash apenas nos conectamos xD

Pero sabiendo el verdadero significado de shell: (concha, xD), una shell es una capa entre el sistema operativo y algo, eso puede ser un humano o un programa.

Si bien ssh trabaja con los usuarios del sistema, no es solo para editar un virtual en un server en produccion, puede ser util para muchas cosas, y la ventaja de este que es seguro (SECURE shell), usando juegos de llaves DSA y RSA para certificar y encriptar los datos.

Se pueden hacer tuneles TCP/IP, esto es, crear un tunel desde una PC con un cliente ssh (ssh, putty, etc) y un equipo con sshd (ssh-server), este tunel es manejado por esta SHELL (capa o interfaz/interface), pero para la conexion esto es transparente... osea..

[MAQUINA LOCAL puerto 300:-ssh]-------------------------------------------->[sshd-> puerto 300 MAQUINA REMOTA]

le decimos que el ssh habra un puerto local (300) y haga un puente con el 300 de la maquina remota, esta se conectara al sshd remoto (puerto 22) y le dira al sshd que se conecte al puerto 300. Alla hay un cliente local conectandose al puerto 300, y aca hay un servicio abriendo un puerto local, para la aplicacion que trabaja con esto es totalmente transparente, pero para la comunicacion no, hay una encriptacion de los datos en vivo.

Supongamos que un programa le manda un HOLA a otro:

[PC 1 HOLA ] -----------> HOLA -----------> [PC 2]

la informacion viaja en plano y la comunicacion puede ser sniffeada o spoffeada falsificando conexiones, paquetes y etc... Ahora el puente

[PC1 HOLA --> () SSH ) ---------~jEoi8SaiO-------> [() SSHD ) -> HOLA PC 2]

La clave DSA sertifica por medio de una firma digital que ese HOLA vino de PC 1, y aparte encripta los datos para que otra PC no pueda ver que se envia, a [PC 3] por ejemplo ~jEoi8SaiO no le va a servir de nada si no tiene la llave privada para desencriptarlo (RSA).

Ahora al asunto practico, abrimos un puerto ssh y lo redirigimos... (con ssh)

ssh -N -L 300:127.0.0.1:300 server.com

aca creariamos abririamos un puerto local (300) el cual ssh tunealearia* al sshd de server.com y este a la vez al puerto 300 local.

Pero supongamos que tenemos un server WEB y un server Mysql, solo el web tiene salida a internet,asi que seria algo asi:

[PC] ----------------------------------> [WS] --------------->[MYSQLD]
190.54.233.176 server.com 192.168.1.2

no nos podemos conectar al server de mysql directo, pero el servidor web si, asi que se lo pedimos:

ssh -N -L 5000:192.168.1.2:3306 server.com

eso lo que le dice al sshd (server.com) es que nos concete al 3306 (mysql) de 192.168.1.2 (la ip interna del server mysql), de esa forma no solo nos sirve para asegurara la cominicacion, sino que tambien sirve paraconectarnos a maquinas que esten en el la red interna y no con acceso directo a nosotros, saltandonos firewalls, y demas.

Con el cliente de MySql no conecteriamos

mysql -u usuario -h localhost -P 5000 -p

Y es como conectarnos de alla (usuario@localhost).

Obviamente si deseamos que nuestros usuarios creen tuneles hay opciones, en /etc/ssh/sshd_config (en linux, en otros SO unix no sé)

AllowTcpForwarding yes
#X11Forwarding no

Con eso se puede desabilitar/habilitar el fordwardeo de puertos y el de interface gráfica (X11).

Hilo de discucion en GeeX: http://groups.google.com/group/unigeex/browse_thread/thread/cfe8b71f0483b1a4

9Sep/080

Google libera parches para MySql 5

Siguiendo este enlace a VivaLinux, me entero de que Google ya habia liberado parches para MySql 4, pero ahora saca algunos para mejorar MySql 5, el cual usa para sus avisos publicitarios. Espera que las mejoras sean integrados en futuras versiones, que mas que seguro seran integradas. Las mejoras son:

  • Mejoras y correcciones al parche anterior.
  • Cambios para hacer que InnoDB se ejecute más rápido en servidor de múltiples núcleos.
  • Cambios para monitorear y limitar la actividad por cuenta de la base de datos e IP del cliente.

Hay mas cambios en estos parches. Para mi es un buena noticia, así vamos alimentando el software libre día a día.

1Aug/080

Salió el Alpha 1 de PHP 5.3

PHP anunció la disponibilidad del release Alpha 1 de PHP 5.3.

Se trata del primer bosquejo de pruebas de lo que será la versión 5.3 de PHP, que si han seguido más o menos los distintos posts que al respecto se hicieron en distintos espacios de la red, es la que incluirá la mayoría de los nuevos features copados en los que viene trabajando el equipo de desarrollo últimamente. Podríamos decir que es PHP 6 sin el soporte para Unicode.

Entre los cambios más importantes se destacan:

Fuente: http://webandbeer.com.ar/2008/08/php-53-alpha-1.html

   
Cerrar
Enviar por Correo