Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

Optimizando el servidor Mysql

Posted by Epsilon On Enero - 9 - 2010

Trabajando en un proyecto personal (que pronto les contare en que consiste),  me surgió la necesidad de optimizar al máximo el servidor MySQL, es decir, necesitaba configurar el servidor MySQL  de una forma adecuada para que soportara todo el trabajo necesario.  Navegando en la red, me encontré con este articulo,  en el cual nos comparten una configuración óptima para nuestro servidor  MySQL (lo que estábamos buscando).  Implemente este archivo de configuración,  y desde ese momento mi servidor ha mejorado en cuanto a rendimiento, disponibilidad y eficiencia.

Por esta razón comparto el archivo de configuración por si  alguno tiene el mismo problema, en este archivo se hacen modificaciones principalmente, en el tamaño de la memoria,  conexiones concurrentes y otros aspectos:

[mysqld]
 socket=/path/to/mysql.sock
 datadir=/var/lib/mysql
 skip-locking
 skip-innodb
 # MySQL 4.x has query caching available.
 # Enable it for vast improvement and it may be all you need to tweak.
 query_cache_type=1
 query_cache_limit=1M
 query_cache_size=32M
 # max_connections=500
 # Reduced to 200 as memory will not be enough for 500 connections.
 # memory=key_buffer+(sort_buffer_size+read_buffer_size)*max_connections
 # which is now: 64 + (1 + 1) * 200 = 464 MB
 # max_connections = approx. MaxClients setting in httpd.conf file
 # Default set to 100.
 #max_connections=200
 #interactive_timeout=180
 interactive_timeout=100
 #wait_timeout=180
 #wait_timeout=100
 # Reduced wait_timeout to prevent idle clients holding connections.
 #wait_timeout=30
 wait_timeout=15
 connect_timeout=10
 # max_connect_errors is set to 10 by default
 #max_connect_errors=10
 #table_cache=256
 #table_cache=1024
 # Checked opened tables and adjusted accordingly after running for a while.
 table_cache=512
 #tmp_table_size=32M by default
 #thread_cache=128
 # Reduced it to 32 to prevent memory hogging. Also, see notes below.
 thread_cache=32
 # key_buffer=258M
 # Reduced it by checking current size of *.MYI files, see notes below.
 key_buffer=128M
 # Commented out the buffer sizes and keeping the default.
 # sort_buffer_size=2M by default.
 #sort_buffer_size=1M
 # read_buffer_size=128K by default.
 #read_buffer_size=1M
 # read_rnd_buffer_size=256K by default.
 #read_rnd_buffer_size=1M
 # myisam_sort_buffer_size=8M by default.
 #myisam_sort_buffer_size=64M
 # thread_concurrency = 2 * (no. of CPU)
 thread_concurrency=2
 # log slow queries is a must. Many queries that take more than 2 seconds.
 # If so, then your tables need enhancement.
 log_slow_queries=/var/log/mysqld.slow.log
 long_query_time=2
 [mysql.server]
 user=mysql
 basedir=/var/lib
 [safe_mysqld]
 err-log=/var/log/mysqld.log
 pid-file=/var/run/mysqld/mysqld.pid
 open_files_limit=8192

[mysqldump]
 quick
 max_allowed_packet=16M
 [mysql]
 no-auto-rehash
 # Remove the next comment character if you are not familiar with SQL
 #safe-updates
 [isamchk]
 key_buffer=64M
 sort_buffer=64M
 read_buffer=16M
 write_buffer=16M
 [myisamchk]
 key_buffer=64M
 sort_buffer=64M
 read_buffer=16M
 write_buffer=16M
 [mysqlhotcopy]
 interactive-timeout 
 [client]
 socket=/path/to/mysql.sock

Para  aplicar esta configuración,  lo podemos hacer de varias formas:

  • Abrimos el archivo /etc/mysql/my.cnf borramos todo su contenido y por ultimo pegamos el contenido de esta configuracion. ( No sobra decir que debemos guardar).
  • Por otro lado  podemos borrar el archivo /etc/mysql/my.cnf, descargamos el nuevo archivo desde aca y lo copiamos en la misma ubicacion.

nota: cabe aclarar que no soy un experto en el tema, simplemente doy mis comentarios apartir de la experiencia que tuve usando esta configuracion,   si alguien tiene un archivo my.cnf mas optimizado seria esplendido que lo compartiera con todos nosotros

Para mas informacion pueden ir a este enlace

Usando una imagen ISO como repositorio en Debian

Posted by jhonber On Enero - 8 - 2010

Es una pregunta que ya me había hecho hace tiempo, si era posible usar una imagen iso como repositorio y no tener que estar usando los CD’s/DVD’s  (Algo muchas veces molesto, más si se trata de CD’s).

Pues bueno las ventajas que presenta usar las imágenes iso son bastante claras, ya que no tendremos la necesidad de estar insertando y sacando los CD’s/DVD’s de la unidad, a demás de ahorrarnos unos cuantos CD’s/DVD’s.

Preparando lo necesario

- Necesitamos un directorio por cada CD’s/DVD’s. Podríamos crear una directorio llamado ‘repositorio‘ en /media que contenga a los demás.

# mkdir  /media/repositorio

Ahora dentro de ‘repositorio’ creamos el resto de carpetas donde serán montadas las imágenes iso.

# mkdir  /media/repositorio/[CD1 o DVD1]

# mkdir  /media/repositorio/[CD2 o DVD2]

# mkdir  /media/repositorio/[CDn o DVDn]

En mi caso los directorios quedarían así:

# ls  /media/repositorio

cd1 cd2  cd3  cd4  cd5  cd6  cd7  cd8

- Debemos conocer la ubicación de las imágenes iso (La ubicación realmente no importa).

En mi caso: /media/repositorio-isos

Modificando el archivo fstab

#vim  /etc/fstab

Al final del archivo añadimos los siguiente:

/media/RUTA/IMAGEN1.iso  /media/repositorio/[CD1 o DVD1]  iso9660  loop,user,auto  0  0

Para cada imagen debe haber una línea como esta indicando respectivamente la imagen iso y el directorio donde será montada.

Ejemplo:

#Repositorio imagenes-iso
/media/repositorio-isos/debian-testing-i386-CD-1.iso  /media/repositorio/cd1  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-2.iso  /media/repositorio/cd2  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-3.iso  /media/repositorio/cd3  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-4.iso  /media/repositorio/cd4  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-5.iso  /media/repositorio/cd5  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-6.iso  /media/repositorio/cd6  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-7.iso  /media/repositorio/cd7  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-8.iso  /media/repositorio/cd8  iso9660 loop,user,auto  0  0

Modificando el archivo sources.list

Ahora para que apt use las imágenes como repositorio debemos indicar en este archivo donde esta montado cada CD’s/DVD’s de nuestro repositorio.

# vim  /etc/apt/sources.list

Agregamos lo siguiente:

deb file:///media/repositorio/[CD1 o DVD1] squeeze main contrib

Cambia ’squeeze’ por la versión de Debian que uses.

Ejemplo:

#Repositorio imagenes-iso
deb file:///media/repositorio/cd1 squeeze main contrib
deb file:///media/repositorio/cd2 squeeze main contrib
deb file:///media/repositorio/cd3 squeeze main contrib
deb file:///media/repositorio/cd4 squeeze main contrib
deb file:///media/repositorio/cd5 squeeze main contrib
deb file:///media/repositorio/cd6 squeeze main contrib
deb file:///media/repositorio/cd7 squeeze main contrib
deb file:///media/repositorio/cd8 squeeze main contrib
##END

Si no lo has hecho debes montar las imágenes:

# mount  -a

Y por último:

# aptitude  update

A mí me han aparecido varios errores como este, después de actualizar los repositorios:

Err file: squeeze/contrib Packages
Fichero no encontrado

Pero esto no perjudica el funcionamiento correcto de el repositorio.

Compartir este repositorio para toda la red local

Este punto ofrece una utilidad enorme, imagínate actualizar todos los computadores de una red local a través de un solo computador que actúe como servidor del repositorio. Pues es muy sencillo:

Supongamos que con los pasos de arriba configuramos el repositorio y que ese computador será el servidor.

Ip: 192.168.1.1

Nota: Debemos tener configurado un servidor Apache.

En el servidor

Aquí crearemos enlaces simbólicos a cada uno de los directorios en donde se encuentran montadas las imágenes iso. Esto lo hacemos en el directorio /var/www de Apache.

#cd  /var/www

Cambias si es necesario la ruta del directorio por la tuya.

/var/www# ln  -s  /media/repositorio/cd1

/var/www# ln  -s  /media/repositorio/cd2

Recuerda un enlace por cada directorio.

En los clientes

En cada uno de los clientes debemos modificar el archivo /etc/fstab

#vim  /etc/fstab

Agregamos por cada enlace simbólico una línea como esta:

deb http://192.168.1.1/[NOMBRE_ENLACE] squeeze main contrib

Como puedes ver accedemos al repositorio con la ip del servidor y el nombre del enlace simbólico que apunta a cada una de los directorios donde montamos las imágenes.

Ejemplo

deb http://192.168.1.1/cd1 squeeze main contrib
deb http://192.168.1.1/cd2 squeeze main contrib
deb http://192.168.1.1/cd3 squeeze main contrib

Actualizamos repositorios y listo ;) . Hasta la próxima!!

Siguiendo con los ataques de fuerza bruta. Hemos hablado anteriormente de medusa, la herramienta que nos permite realizar el ataque, sin embargo  hay algo fundamental que  sin el, no seria posible realizar el ataque. ¿Que es?  Si estoy hablando de los diccionarios.  estos archivos de texto son muy importantes a la hora de  lanzar un ataque de fuerza bruta de este tipo, con un robusto y amplio diccionario muy pocas contraseñas se escaparan, ya que   según las estadísticas  muy pocas personas asignan contraseñas dificiles, mezclando  letras números y caracteres especiales, la mayoría se sienten demasiados seguros con una  palabra en minúsculas como contraseña.

En esta ocasión quiero compartir con ustedes  una recopilacion de diccionarios en español,  para  realizar los ataques de fuerza bruta. Consta de dos paquetes, a continuación se encuentran los links de descarga:

Parte 1
Parte 2

Cada parte consta de 5 diccionarios de todos los colores y sabores, espero que les sirvan y los aprovechen y recuerden la regla de oro para un ataque de fuerza bruta con diccionario:

la efectividad de un ataque con diccionario es directamente proporcional al tamaño del diccionario, es decir, entre mas grande sea el diccionario mayor sera la probabilidad de encontrar la contraseña.

SendIP envío arbitrario de paquetes

Posted by mirphak On Enero - 5 - 2010

outline sharp SendIP  envío arbitrario de paquetes

SendIP es una herramienta que permite enviar paquetes de red de manera arbitraria creada por el grupo  Project Purple , posee algunas desventajas  (usabilidad, numero de protocolos soportados ..)  frente a otros generadores de paquetes  como scapy ya que oficialmente no ha sido actualizada desde el 2003.

Descargar (gmake && make install) *BSD

Uso:

sendip [-v] [-d data] [-h] [-f datafile] [-p module] [module options] hostname

Más  Aquí

Ejemplo: (while do ; )

sendip -p ipv4  -p tcp -ts r -td 80  192.168.2.1

-p ipv4 =  indica el módulo ipv4  (ip origen random)

-p tcp = protocolo

-ts r = puerto origen (random)

-td = puerto destino

ip destino

Módulos : ipv4 ipv6 icmp tcp udp bgp rip ntp

spam en el celular

Siempre se me hace molesto el recibir tanta publicidad no deseada (también  llamado spam),  en mi teléfono móvil  por parte de la empresa prestadora del servicio. Mensajes como:

Envía ya GANA al código xxx para ganarte un  netbook
Envía ya AMOR al código xxx para recibir los mejores consejos sobre el amor.

Suelen  llegar diariamente al celular, y no solo en una ocasión, generalmente llegan 2 o hasta 3 mensajes de este tipo diarios,  y lo peor de todo, es que estos dichosos mensajes algunas veces suelen llegar  muy de noche o en la madrugada, lo cual es demasiado molesto.

Sin embargo, leyendo La comunidad DragonJAR me doy cuenta de  una excelente noticia para todos aquellos usuarios que  también se sienten muy molestos con tanto spam en su celular.

Se trata de una nueva resolución (rige a partir del 1 de enero de 2010) expedida por la Comisión de Regulación de Comunicaciones (CRC), la cual permite a los usuarios de telefonía celular inscribirse en el Registro de Números Excluidos (RNE) para evitar recibir mensajes de texto (SMS) o multimedia (MMS) con fines comerciales o publicitarios no solicitados.  Para inscribirse   el usuario debe ingresar  en este enlace y llenar un formulario básico, obviamente este servicio no tiene costo alguno. No obstante si el usuario se inscribe en el (RNE) seguirá recibiendo mensajes como recordatorios sobre pago de las facturas o similares (mensajes no comerciales).

Igualmente, esta resolución condiciona los horarios  en los cuales las empresas prestadoras del servicio pueden realizar sus promociones, este horario es entre  las 8 de la mañana y las 9 de la noche.

Si tu eres uno  de los tantos que se siente identificado, te invito a que te registres y dejes por fin de recibir estos molestos e incómodos mensajes. para mas información, pueden descargar la resolucion desde aca, o visitar este enlace.

Ataque de fuerza bruta con diccionario usando Medusa

Posted by Epsilon On Enero - 2 - 2010

Seguramente muchos conocen  hydra: una aplicacion para atacar con fuerza bruta  usando diccionarios,  a diferentes servicios como: ssh, ftp,  mysql entre otros,  sin embargo hydra  no se volvió actualizar, su ultima versión fue  lanzada en el 2006 y aunque todavía funciona muy bien,   tiene muchos problemas en la instalación, debido a las dependencias y sus versiones.

No obstante, existe una aplicacion llamada  medusa que es muy similar ( no exactamente igual) a hydra, la cual nos permite crackear por diccionario de forma rápida, masiva y paralela  los siguientes servicios:

  • AFP
  • CVS
  • FTP
  • HTTP
  • IMAP
  • MS-SQL
  • MySQL
  • NetWare NCP
  • NNTP
  • PcAnywhere
  • POP3
  • PostgreSQL
  • REXEC
  • RLOGIN
  • RSH
  • SMBNT
  • SMTP-AUTH
  • SMTP-VRFY
  • SNMP
  • SSHv2
  • Subversion (SVN)
  • Telnet
  • VMware autenticación Daemon (vmauthd)
  • VNC
  • Genérico Wrapper
  • Web Form

Algunas de las caracteristicas que nos tiene medusa son:

  • Velocidad
  • Estabilidad
  • Organizacion del código, para comprenderlo facil
  • diversidad de servicios (como vieron anteriormente)

Instalación de  Medusa

Antes de instalar  medusa, debemos revisar  que se cumplan las siguientes dependencias:

  • OpenSSL
  • LibSSH2
  • NCPFS
  • Libpq
  • Subversion
  • afpfs-ng

Para los usuarios de debian, esta herramienta se encuentra en los repositorios:

apt-get install medusa

Para los demás usuarios descargan las fuentes desde aca, y compilan:

./configure
make
make install

¿Como crackear password con diccionarios usando medusa ?

Lo primero que debemos hacer es  ver los módulos disponibles,  los módulos son los servicios los cuales podemos atacar, para visualizar los módulos:

medusa -d

Después de estar seguros de que tenemos el modulo adecuado al servicio que deseamos atacar, procedemos a lanzar el ataque. Medusa posee una gran cantidad de parámetros (ojala se tomaran el tiempo para leer el man  con detenimiento).  Los parámetros mas importantes son:

-h -> el host víctima
-H -> si tenemos un archivo txt con una lista de hosts
-u  -> el usuario al cual deseamos hacerle el cracking
-U ->  un archivo txt con la lista de posibles usuarios (muy útil si no sabemos que usuarios existen en el sistema)
-P ->  Ubicación del diccionario
-O  -> Crea un archivo log
- e  ns -> Verifica el password vacio o que ambos datos sean lo mismo
-M  -> El modulo que deseamos emplear (sin la extension .mod)
-n -> por si el servicio esta corriendo en otro puerto diferente al default
-s -> Habilita ssl
-f -> detiene el ataque en el instante de encontrar un password valido
-b -> suprime los banners
-v  -> modo verbose (mas informacion level de 0 a 6 siendo el 6 mas alto)

Ahora practiquemos un poco:

medusa -h 127.0.0.1 -u rincon -P /diccionario.txt -M mysql -L -f -b -v 6

Como pueden ver me estoy atacando yo  mismo obviamente me he asegurado que el password se encuentra en el diccionario, el resultado es sorprendente tardo muy poco (10 segundos aproximadamente), el tiempo depende de varios factores como el tamaño del diccionarios y la ubicacion del password encontrado, ya que se va a demorar mucho menos si el password esta al inicio del diccionario de 36000 palabras.

Ahora muchos diran que no es lo mismo hacer un ataque de fuerza bruta con diccionario de forma local  que de forma remota y tienen mucha razon, sin embargo hicimos  la prueba de forma remota  y los resultados fueron muy aceptables, se demoro 6 minutos en encontrar el password en un diccionario de 500 palabras (con esos datos ya pueden hacer la simple regla de 3) atacando  el ssh

Algunos inconvenientes

Todo no es color de rosa, existen algunos inconvenientes que debemos tener en cuenta antes de realizar un ataque de este tipo:

  • No  hay total certeza de encontrar el password, sin embargo la efectividad de un ataque con diccionario es directamente proporcional al tamaño del diccionario, es decir, entre mas grande sea el diccionario mayor sera la probabilidad de  encontrar la contraseña.
  • Otro inconveniente, consiste en que algunos sysadmin inteligentes restringen  el numero de intentos de autenticacion a un numero no mayor a 3, asi que si nos topamos con un servidor serio, no podremos aplicar el ataque por fuerza bruta.
  • Cuando nos encontramos un servidor “vulnerable” a un ataque de fuerza bruta con diccionario, debemos tener muchisimo cuidado, ya que un ataque de esta naturaleza  hace demasiado “RUIDO” es decir, todos los intentos de conexion quedaran guardados en los logs del servidor, por eso es pertinente usar un proxy para hacer el ataque, o  en su defecto borrar los logs, inmediatamente despues de entrar al server.

Rincon Informatico les desea un prospero año 2010

Posted by Epsilon On Enero - 1 - 2010

Ya estamos en el 2010 y por parte de todo el staff de Rincon Informatico esperamos que sea un año lleno de bendiciones, retos, metas, mucho conocimiento y adelantos tecnologicos, ojala este 2010 nos acompañen muchos mas lectores de los que nos han acompañado, para seguir compartiendo todo ese conocimiento que poco a poco hemos adquirido. Igualmente muchas gracias a todas aquellas personas que nos leyeron en el transcurso de este 2009 que ya  quedo en la historia.

Esperamos que hayan disfrutado la fiesta  de año nuevo no como este  singular geek, un saludo para todos… y feliz año nuevo!!!

año nuevo geek

Visto en : soygik

Errores en El Símbolo Perdido de Dan Brown

Posted by SpiderM@N On Diciembre - 28 - 2009

Bueno para acotar el “error” podría decir que el problema radica en la traducción como tal de este libro que es en los últimos meses uno de los libros más esperado y al mismo tiempo el mas pirateado de todos los tiempos, esa última parte se la ha ganado gracias a que Dan Brown se ha convertido en el líder de las historias Thriller de acción, aventura, historia y conspiraciones.

¿Qué tiene que ver esto con informática?

Para quienes hemos leído algunos libros de Dan Brown sabemos que este autor es una persona bien documentado en temas computacionales, Maquinas increíblemente poderosas, mensajes encriptados, enrutadores, firewalls….y si, lo que faltaba Hackers.

¿Hackers?

Si, y he aquí el error de traducción, he revisado las dos versiones del libro en Español y el Original en Inglés y para sorpresa mía, cuando en la versión Norte-Americana hablan de “Hackers” en la versión Castiza hablan de “Piratas Informáticos”.

Lo que realmente es más triste es que la versión original (inglés) llama al personaje Hacker un Especialista en seguridad informática pero en la versión Española el mismo Especialista es solo un Pirata de la red.

Bueno mi reflexión llega hasta aquí, porque es molesto ver como por unos errores de este tipo la gente seguirá creyendo que la gente dedicada a la seguridad de los sistemas de información no son más que piratas informáticos, gente sin escrúpulos que lo único que desea es ser contratado para entrar a un sistema y robar información como si de mercenarios se tratase.

Sin más que argumentar y con el fin de que esta entrada haga eco por el hecho, digo claramente que si desean leerse el libro LO COMPREN y original, sin embargo si desean hacer copias de seguridad digitales les dejo un par de enlaces en los que pueden encontrar como realizarlas.

NOTA: RinconInformatico NO ha subido ninguna copia ilegal de “El símbolo perdido” el enlace a continuación es una serie de instrucciones de cómo hacerlo si por alguna razón hay copias digitales de este libro Rincon Informático NO TIENE ninguna responsabilidad sobre este.

Enlace de descarga.