Mostrando entradas con la etiqueta herramienta. Mostrar todas las entradas
Mostrando entradas con la etiqueta herramienta. Mostrar todas las entradas

lunes, 11 de junio de 2012

Bash: Las condiciones (if-then-else)

En esta ocasión les mostraré cómo hacer un script con condición en Bash, lo cual traducido es:
Si se cumple X cosa que ustedes deseen, se hace Y acción, si no se cumple entonces se hace otra acción.
Simple la explicación no :D
Ahora, he pensado durante unos minutos algún ejemplo para usar en este tutorial, se me ha ocurrido el siguiente dilema/problema/situación:
Estamos en la red de nuestra empresa, y deseamos saber si X ordenador está conectado a la red. Para ello hacemos un script que hará ping hacia ese ordenador, y si está en red (o sea, si devuelve el ping) nos dirá que SÍ, está en red, de lo contrario (o sea, que no esté en red) nos dirá que NO está en red.
Una vez hecho esto, ahora les explicaré cómo hacer un ciclo con condiciones :)
Eh aquí el código:
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
No se preocupen, les explico esto al detalle ;)
ping es el comando que usaremos, y nos dirá si esa PC está en red. Para decirle qué PC queremos comprobar si está o no en red, debemos cambiar DIRECCION-IP por obviamente, la dirección IP de la PC que deseamos comprobar.
Como ven, puse “-c 1“, lo cual nos es necesario. Cuando hacemos ping a un ordenador, esta acción no se detiene (el ping) hasta que nosotros mismos presionemos [Ctrl]+[C], por lo que poniendo “-c 1” le indicamos que haga solo una verificación (solo un intento de ping) y ningún otro, esto hará que se detenga al instante, o sea… comprobará si el ordenador está en red solo una vez.
Si tienen dudas con esto, sin pena… lo dicen y yo con MUCHO gusto se los explico de nuevo ;)
Ahora viene el ciclo, pues lo que acabo de explicar no es más que un comando/acción normal :D
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Para que entiendan esto, les explicaré un detalle sumamente importante de Bash :)
Los más conocedores del tema me podrían tildar de equivocado o algo así, pero bueno, esto lo escribo para lo novatos o menos expertos, mientras ellos lo entiendan entonces genial ;)
Sucede que como en Bash es algo así como 0 y 1, o sea, o estás vivo o estás muerto, cuando se ejecuta un comando o acción: O se ejecutó bien sin problemas (1), o hubo algún problema o error (0).
Nosotros efectuamos X acción o comando, y esto que hicimos puede haberse efectuado bien o mal, puedo haber tenido error o no, y aquí es donde está el detalle ;)
Si lo que mandamos a hacer (en este caso: ping -c 1 DIRECCION-IP) no dió error y se efectuó bien, entonces devolverá el valor: 1 . En caso contrario, y que la acción (o sea, el ping) no fuese exitoso, devolverá valor 0.
 Y finalmente, lo que significa el código anterior es esto:
Si se devolvió valor 0 entonces
Pon en pantalla el texto: “No está en red
De lo contrario (y que se devuelva NO 0, sino 1)
Pon en pantalla el texto: “Si está en red
Esto que les acabo de explicar, nos servirá en un futuro para muchísimas cosas, pues es realmente útil poder decir que si X acción dió error, haga Y acción, y en caso de que X acción no haya dado error, que haga Z acción.
Sé que a algunos podría liaros un poco, por lo que he intentado explicarlo de varias formas diferentes, intentando que todos lo entiendan de una vía u otra. En caso de que alguien se quede con dudas, me lo hace saber.
Ahora, hagamos nuestro script :D
Debemos seguir los pasos de este tutorial: Bash: Cómo hacer un script ejecutable
Luego copiemos el siguiente código en ese archivo (script.sh), y al final pongamos “exit” (sin las comillas):
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
Les debe quedar así (recuerden que deben haber cambiado DIRECCION-IP por la IP que desean):

Aquí pueden ver el script en ejecución:

Como ven, al final nos dice “Sí está en red:)
Lo importante aquí es que en realidad entiendan esto de las condiciones, por lo que les dejo otro código para volver a explicarlo, pero desde otro punto de vista.
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
Lo que esto significa es simple, les dejo línea a línea la explicación:
1ra línea: Lo que escribamos, ese será el valor de la variable “texto” (sin las comillas).
2da línea: Comprueba si el contenido de la variable (lo que acabamos de escribir) es 3.
3ra línea: En caso de ser 3, nos mostrará el texto “Correcto” (sin las comillas).
4ta línea: De lo contrario (o sea, en caso de que no hayamos escribo 3).
5ta línea: Nos mostrará el texto “Incorrecto” (sin las comillas).
6ta línea: Fin de la condición.
Como han podido darse cuenta, si ponemos echo y seguidamente entre comillas dobles () un texto, esto hará que se muestre en la terminal ese texto. O sea, si ponemos:
echo "esto es una prueba"
Nos mostrará en la terminal el texto: esto es una prueba
Pero volviendo a este segundo ejemplo, les mostraré la utilidad (y ejecución) de este segundo script con algo MUY simple :D … el típico “cuánto es 1 + 2?
Les dejo el código del script completo:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "¿Cuánto es 1 + 2?"
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
exit
Les dejo aquí cómo funciona el script:

Y bueno… nada más que agregar.
Esto es algo elemental, simple sí, pero aún así he intentado explicarlo lo mejor posible, pues no todos tienen alma de programador, y muchas veces necesitamos hacer scripts como estos (o similares), de cualquier forma espero que este artículo le sea de utilidad a alguien :)
Cualquier duda o pregunta, queja o sugerencia por favor, la dejan acá, con mucho gusto les respondo y así, todos aprendemos un poco más :D 

jueves, 7 de junio de 2012

Newrez, script útil para aumentar la resolución en netbooks

Los scripts de Linux son una forma potente y sencilla de ofrecer tareas útiles para el usuario, y en esta ocasión hemos encontrado uno especialmente orientado a usuarios de netbooks. Se trata de Newrez, un script para Nautilus que permite mejorar la resolución de estos portátiles y aplicar resoluciones no nativas.

Por ejemplo, lo normal es que la resolución en netbooks sea de 1.024×600, pero con Newrez podremos cambiar esa resolución para situarla por ejemplo en 1.280×800 o incluso a mayores cifras.
Esto puede ser interesante para usuarios que necesiten esa mejora visual para mostrar aplicaciones que no se muestran correctamente en la resolución convencional de los netbooks. Como indican en WMLCloud, no se hacen cosas raras a nivel hardware, sino que se construye una imagen de alta resolución en un buffer que se escala para ajustarse a nuestra pantalla física.
Para usar este script lo único que tendremos que hacer es descargarlo desde este enlace, extraer los ficheros del script (newrez y newrez-v) a  ~/.Gnome2 –> Nautilus-Scripts. Si no vemos la carpeta “.Gnome2″ podemos pulsar Ctrl+H en Nautilus para mostrar los elementos ocultos.
Una vez metidos en esa carpeta, podremos pulsar con el botón derecho en la pantalla, lo que hará que aparezca un nuevo menú Scripts con los dos scripts de newrez, y eligiéndolos podremos establecer la resolución que queremos mostrar en cada momento. El segundo script (newrez-v) es para usuarios que no pueden ejecutar el script original, y que por lo visto es una versión “a prueba de fallos”.

Fuente

martes, 5 de junio de 2012

Gestión de documentos Open Source

OpenKM es un Sistema de Gestión Documental Open Source, que debido a sus características, puede usarse tanto en grandes empresas como en las PYMES. Es una herramienta muy útil para Gestión del Conocimiento, proporcionando una alternativa flexible y con menores costes que otras aplicaciones propietarias.

El uso de un Sistema de Gestión del Conocimiento en la empresa ayuda a gestionar, de forma más eficiente, la inteligencia colectiva que reside en los recursos humanos de la compañía; esto implica un incremento de la productividad a corto plazo. A través de estos sistemas, tanto la información como el conocimiento generado en la organización, están disponibles globalmente.

Hacer fácil lo complejo

  • Web 2.0. UI
  • Drag and drop.
  • Control de versiones.
  • Búsqueda por contenido y metadata.
  • Integración con LDAP o DBMS.
  • API de webservices .
  • Soporta los principales DBMS.
  • Traducido a mas de 32 idiomas.
  • WebDAV.
  • Workflow (JBPM).
  • Jasper reports.
  • OCR.
  • Soporte para dispositivos móbiles.
  • Addins.
  • Thesaurus.
  • Planificador de tarea
Fuente

sábado, 2 de junio de 2012

Distros Linux para tu router

Podemos encontrar Linux en todas partes: la base del sistema operativo es también la base de un buen montón de dispositivos hardware, e incluso en los casos en que Linux no está preinstalado en dichos dispositivos es posible dar soporte a ese hardware para que saque partido del software Open Source.

Es lo que nos demuestra el artículo de LinuxPlanet en el que hablan de 3 distribuciones Linux perfectas para ser instaladas en un router, además de un sistema operativo derivado de BSD que también sirve para el mismo propósito.
Las distribuciones de las que hablan en el artículo están orientadas a servir entre otras cosas para poner en marcha un firewall de Internet muy eficiente y por supuesto para enrutar el tráfico que llega o sale de nuestros ordenadores.
En el artículo hablan de Clear OS, m0n0wall, Untangle y Vyatta, y describen sus prestaciones y sus puntos fuertes, destacando algunas de las distribuciones a la hora de asegurar nuestra red o bien de enturar el tráfico de una manera más eficiente. Una idea genial que por supuesto se complementa con esos firmwares personalizados para routers que también se han hecho famosos gracias a proyectos como OpenWRT o dd-wrt.

Fuente

Cómo compartir una impresora a través de Internet

Es verdad…habeis leído bien, se puede compartir una impresora a través de Internet. Todo sin que intervenga ninguna administración ni instalar o modificar ninguna clase de permiso de firewall o router. Esta pequeña aplicación se instala en el ordenador desde el que deseas imprimir y en el ordenador al que enviarás la impresión.
Una vez instalado el software de impresión remoto, eliges qué impresora deseas compartir.  Es muy fácil imprimir a través de internet. Lo mejor de todo es, no tanto que sea gratis para usos comunes, sino que funciona en Windows, Mac y Linux.
Vamos a enseñaros como se hace. Primero descargamos el instalador de 1.6MB de PrintAnywhere y luego lo iniciamos. Hay enlaces separados de descarga para Windows y Mac y varios móviles

Normalmente odiamos suscribirnos a servicios pero aquí es comprensible ya que vas a estar compartiendo tus dispositivos. Selecciona crear una nueva cuenta de usuario marcando el botón abajo, y luego pulsa Next.

La única información que se requiere aquí es un nombre de usuario y tu dirección de email. Tienes que dar un email legítimo porque es adonde ellos enviarán tu contraseña. Siempre puedes utilizar una cuenta de email de usar y tirar…si eres ultra-paranoico.

Esto es todo para la instalación. Ahora demos un vistazo a cómo configurar nuestra impresión remota.
Si dejas lista la casilla de control para abrir la consola de PrinterShare, se te abrirá siempre automáticamente. De lo contrario, tendrás que abrirla desde el menú inicio o la bandeja del sistema.


Verás tu número de usuario (que necesitarás para conectarte desde el cliente remoto) y todas tus impresoras instaladas. Selecciona la que deseas usar y presiona el botón “share” (compartir) debajo. Después de presionarlo, el botón cambiará de Share a Unshare.
Ahora ve a tu email y busca tu contraseña. Con ella puedes instalar el cliente en la máquina remota. Sigue los pasos indicados arriba pero esta vez cuando te pregunte por un nombre de usuario y contraseña ya tendrás uno para insertar.
Hecho esto, simplemente pulsa “find printers” (encontrar impresoras) en tu cliente. Escribe tu ID de usuario y pulsa “find”. Te mostrará la impresora compartida y su estado. Haz doble click en ella.

Ahora aparece abajo como impresora compartida. Ya puedes probarla. Busca un documento de prueba para imprimir.
Ahora tendrás una impresora llamada PrinterShare que es accesible desde cualquier programa que pueda imprimir.
Elige ahora tu impresora (si tienes varias compartidas) y esto es todo lo que hay que hacer. Con esta versión gratuita imprimirá la primer hoja con un aviso publicitario a menos que pagues una cuota premium.

 Si conocen otra forma de imprimir a través de Internet... Avisen a través de los comentarios!

Fuente

viernes, 1 de junio de 2012

ManualsLib: Gigante base de datos con manuales online de todas las marcas Este artículo fue copiado de ManualsLib: Gigante base de datos con manuales online de todas las marcas


Normalmente los geeks casi nunca leen un manual al momento de adquirir algún aparato, siempre le hacen caso a su sexto sentido (?), pero mucha gente sí hace uso de manuales, y a veces pasa que estos se pierden y luego no tenemos formas de recuperarlos a no ser que tengamos la suerte que su fabricante los ofrezca en su sitio oficial.
ManualsLib es una gran base de datos de manuales online de todas las marcas y dispositivos que se les ocurran, y lo mejor de todo es que es gratuito y se pueden leer desde el navegador. Para encontrar un manua sólo tienen que comenzar a escribir la marca del aparato y el sitio les sugerirá los manuales que hay disponibles.
Enlace: ManualsLib

Fuente

Billix, una distro para instalar distros

Curiosísimo el artículo que han publicado en la prestigiosa Linux Journal en el que hablan de Billix, una distribución ligera que se puede ejecutar desde CD o desde llave USB y que no es una distribución GNU/Linux convencional, sino que está dirigida a poder servir para instalar otras distribuciones.

Como se puede ver en el vídeo, una vez iniciemos el ordenador con Billix, se presentará un menú para poder instalar varias ediciones de distintas distribuciones, algo que se beneficia de las llamadas ‘Net Installs‘, las instalaciones a través de Internet. Tendréis que contar con una buena conexión a la red de redes, claro, pero el proceso es brillante, creo yo.

Fuente

lunes, 28 de mayo de 2012

Información de Malware. ¿A través de DNS?

Hoy día, y debido a que cada año crece más todo lo relativo a vías de infección, han proliferado muchos servicios de consulta de Malware, y todo lo relacionado con la muestra.

Servicios como VirusTotal y ThreatExpert son buenas referencias a tener en cuenta, en tanto y cuanto a un auditor, le caiga el “marrón” de analizar un “bicho”.

A la hora de analizarlo, y viendo como está el mercado, en cuanto a horas reales y cuantificables que se dedican a un proyecto, a un auditor le puede solucionar la papeleta el consultar este tipo de servicios, a día de hoy imprescindibles y para mi gusto perfectos, para que le den una visión global sobre qué dicen las principales casas de antivirus sobre el mismo.

Buscando proyectos relacionados con el análisis dinámico de muestras de manera online, y habiéndome leído la gran entrada de HackPlayers sobre análisis de Malware, me encontré con un proyecto en OWASP bastante interesante. Consulta de Malware en base a un MD5 o SHA1.

La solución que se aloja en OWASP, la cual puede consultarse de manera ONLINE, permite que puedas realizar consultas en base a un MD5 o SHA1 de algún fichero “sospechoso”, pero en vez de consultar a una Web, las consultas las realizas a través de peticiones DNS, adjuntando al final del MD5 o SHA1 un sufijo DNS.

La idea en sí es simple. Tener un repositorio de HASHES relacionados con ficheros maliciosos. Pero la ejecución cambia totalmente al ser consultas a través de DNS.

Desde un punto de vista “corporativo”, las consultas DNS se permitirán, casi por obligación. Como segundo punto es la información que obtenemos al realizar las consultas. Esta información va desde el supuesto tamaño de fichero que coincide con el HASH, así como información relativa al estatus de este. Si es Malware, desconocido, bueno, etc… Una de las respuestas más curiosas, es la relativa a la certeza. En la respuesta, dan un grado, en tanto por ciento, de lo cierto de que ese HASH sea Malware o no, en función del estatus, y de lo analizado.

Según el servicio, esta base de datos es mantenida con regularidad, y analizan bastantes muestras de ficheros maliciosos.

Para realizar una consulta, lo único que necesitamos es un cliente nslookup o dig.

Si lo que necesitamos es consultar si el HASH se encuentra incluido en la base de datos, se puede realizar una consulta de tipo A. La respuesta que obtendremos, en el caso de que el HASH se encuentre en la BBDD, es de 127.0.0.11.

En el caso de que se necesite extraer la información relativa al HASH, habrá que realizar la consulta, pero esta vez de tipo TXT, y añadiendo un sufijo específico, hash.sapao.net.

(ver imagenes adjuntas al post)

Aunque desconocía por completo que se pudiesen realizar consultas de HASH a través de DNS, en la página del proyecto, existen enlaces a sitios y comunidades que ofrecen lo mismo. En el caso de Team Cymru’s, ofrecen el mismo servicio de consultas de HASH a través de DNS, operando de la misma manera que la anterior.

SANS, por su parte, tiene otro servicio muy similar, que, aunque no tan potente como los anteriores, tienen algo que lo hace bueno, y es que mantienen una base de datos de ficheros catalogados en WhiteList, por lo que, si se realizan consultas, se puede cotejar si un fichero es malicioso, o por el contrario se encuentra en una lista blanca.

Realizando una prueba con el MD5 un fichero, SANS me informa de que se encuentra listado en varias ocasiones.

Imagen 2.- Consulta realizada en NIST Hash Database
(ver imagenes adjuntas al post)

Si realizamos esta consulta, pero a través de NSLOOKUP, la respuesta que obtendríamos sería la siguiente:

Imagen 3.- Consulta de HASH a través de NSLOOKUP en SANS
(ver imagenes adjuntas al post)

Curiosa forma de consultar por ficheros maliciosos no?
No sólo de la password vive el HASH!




Fuente

Arranca más rápido en Linux con e4rat

Aunque la herramienta lleva tiempo disponible no ha sido sino hasta ahora que nos hemos enterado de su existencia: e4rat es un conjunto de herramientas que “aceleran el proceso de arranque y los tiempos de inicio de las aplicaciones“.
Programado por dos desarrolladores de la Augsburg University, e4rat se basa en la desfragmentación integrada en el sistema de ficheros ext4 para ordenar los ficheros de forma secuencial en nuestro disco duro, algo que permite reducir los tiempos de arranque a un tercio de los que se contemplan habitualmente.
En el ejemplo publicado en la página oficial del proyecto demuestran cómo Debian Squeeze pasó de arrancar en 45 segundos a hacerlo en tan solo 13 segundos, y eso en un disco duro convencional (nada de SSD), lo que sin duda puede suponer un punto interesante para quienes queráis probar este paquete, cuyo código (para Debian, no sabemos si funcionará correctamente en otras distros) está disponible en este enlace.

Fuente

domingo, 27 de mayo de 2012

CDE, herramienta para crear aplicaciones portables de Linux

CDE  (Código, Datos y Entorno) es una herramienta para Linux que te permite crear paquetes portables  de aplicaciones, que luego puedes ejecutar en cualquier ordenador  sin necesidad de realizar instalaciones o configuraciones adicionales.
CDE  trabaja comprimiendo todos los archivos necesarios para que la aplicación pueda ejecutarse en otras máquinas, para generar un paquete que luego puede ser transferido a otros ordenadores  con cualquier distribución x86 de Linux y ejecutarse sin problemas. El tamaño del paquete generado puede variar desde los 10 MB hasta los 100 MB, por lo que puede llevarse fácilmente en la mayoría de dispositivos de almacenamiento portables (pendrive USB, disco duro externo, CD, etc).
Crear aplicaciones portables usando CDE  ofrece numerosas ventajas tanto a los usuarios comunes como a los desarrolladores de software. Por ejemplo:
  • Poder probar aplicaciones en tu ordenador sin necesidad de complicarte instalando dependencias.
  • Poder probar múltiples versiones del mismo programa en tu ordenador sin presentar conflictos.
  • Poder llevar la aplicación hasta una máquina virtual sin problemas.
  • Si eres desarrollador de aplicaciones, garantizar que tu programa sea compatible con todas las distribuciones Linux en un período de tiempo desde la actualidad hasta 10 años.
  • Permitir a los usuarios de ordenadores antiguos ejecutar el programa sin tener que recompilarlo.
CDE es una creación de Philip Guo, un estudiante de ciencias de la computación de la universidad de Stanford. En su página web, puedes encontrar algunos ejemplos de uso de lo que este desarrollador ha podido lograr con la aplicación.
Instrucciones de Instalación
CDE es compatible con la mayoría de distribuciones x86-Linux modernas. La aplicación viene implementada como un sólo binario portable llamado ‘cde‘. Para instalarlo en tu ordenador puedes descargarlo desde cualquiera de los siguientes enlaces:
Binario para 32-bits (i386).
Binario para 64-bits (x86-64).
Al finalizar la descarga debes renombrar el archivo a ‘cde‘ y hacerlo ejecutable con el comando ‘chmod u+x‘. Para crear paquetes portables para aplicaciones debes usar el siguiente comando vía terminal:
./cde aplicación
Por ejemplo para crear un paquete portable de la aplicación ‘xclock‘ tendrías que escribir:
./cde xclock

 Podrás ver una nueva instancia de la aplicación, debes cerrarla y ejecutar el comando ls para ver una lista de los sub-directorios, donde debe encontrarse la carpeta cde-package/. Para mirar dentro de la carpeta usa el comando:
find cde-package/ | less
Ahora podrás ver que dentro de la carpeta se encuentran todas las dependencias necesarias para ejecutar xclock. Para comprimir el directorio usa los comandos:
tar -cvf cde-xclock.tar cde-package/
gzip cde-xclock.tar
El archivo obtenido (que debería llamarse en este caso cde-xclock.tar.gz) puede transferirse a cualquier otro ordenador con Linux. Para descomprimir y ejecutar la aplicación sólo tienes que usar las líneas:
tar -zxvf cde-xclock.tar.gz
cde-package/xclock.cde
Puedes seguir este mismo procedimiento para crear portables para cualquier otra aplicación.
Sitio oficial de CDE.

Fuente