Mostrando entradas con la etiqueta GNU/linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta GNU/linux. Mostrar todas las entradas

lunes, 14 de febrero de 2011

Descargando el manual 'La guía definitiva de PNG' con bash

Pues eso, hoy va a ser algo corto, el "problema" es simple, tenemos estos ingredientes:
- Un manual sobre el formato PNG [ http://www.libpng.org/pub/png/book/toc.html ]
- Una conexión a Internet intermitente, así que no es una posibilidad leerlo online
- Pereza suficiente para no ponerse a descargarlo a mano
- Ganas de trastear con bash

Y la receta, comentadita [ vacuum.sh ] o coloreado:

lunes, 24 de enero de 2011

Instalando twitter4j en Gnu/Linux

Twitter4j es un envoltorio (wrapper) del API de twitter para Java, veamos como instalarlo rápidamente:

Lo primero es instalar maven, esto se puede hacer con

sudo apt-get install maven2


Descargamos la última versión desde Twitter4j - GitHub



Ahora hay que descomprimirlo y ejecutar el package.sh

bash package.sh


Y por último copiar los .jar que se generaron en el directorio "twitter4j-core/target/" al directorio de librerías de java, en mi caso ( openjdk-6 ) sería:

sudo cp *.jar  /usr/lib/jvm/java-6-openjdk/jre/lib/ext/


Y dar permisos de lectura ( no vaya a ser )

sudo chmod +r /usr/lib/jvm/java-6-openjdk/jre/lib/ext/twitter4j*.jar


Ya podemos usar esta librería tan completa en nuestro código.

jueves, 20 de enero de 2011

Resolviendo dominios .42 en un servidor BIND9 casero (DNS)

Pues nada, veamos como hacer que nuestro DNS casero resuelva direcciones con el TLD .42, si no sabes que es esto, mejor hechale un vistazo al proyecto https://www.42registry.org/faq-es.php

"42 Registry es, principalmente, una experiencia como otras tantas de las que abundan en Internet hoy en día. Es una organización sin ánimo de lucro, orientada a proponer un TLD (Dominio de Primer Nivel) para agrupar a una comunidad concreta."

Voy a suponer una distro basada en Debian ( Ubuntu, Trisquel ... Debian... ), pero la idea es la misma para todos, solo hay que cambiar un par de cosas (que avisaré cuando se tercie).


lunes, 25 de octubre de 2010

Mostrar el voltaje actual de la batería en gambas

Con el tiempo el hardware deja de funcionar todo lo bien que deberia, esto se nota sobretodo (al menos eso creo) con los portátiles, que al parecer tienen una marcada tendencia a fallar en la batería y en el cargador, piezas que se supongo que resienten especialmente en un uso prolongado.

La última "manifestación" que vi de estos problemas es de vez en cuando la potencia de la corriente que viene del adaptador AC cae por debajo de cierto valor, lo que hace que poco a poco la batería se vaya descargando(¿?). Esto hace que haya que comprobar frecuentemente el voltaje de carga para poder tomar precauciones antes de que se quede sin energía, una forma fácil de hacerlo es con una sencilla línea de bash

viernes, 8 de octubre de 2010

Script para grabar CD's y guardar la imágen ISO

Hoy presento un pequeño script que permite extraer una imágen ISO de un CD, o grabar una fácilmente. El script se puede descargar aquí [bashBurn.sh], funciona usando Zenity para la GUI, wodim para grabar y dd para recuperar las ISO.

lunes, 4 de octubre de 2010

Portando LOIC a Gnu/Linux

Empezando por el principio, Anonymous está atacando a los lobbies del copyright, la noticia no es nueva, ya llevan un rato así, y me entero de que aún estan portando LOIC (el DOSer que utiliza esta comunidad) a Gnu/Linux. Portarlo es trivial, usaré MonoDevelop porque lo hace más facil y apenas ocupa 20 Megas, sino solo hay que editar el código a mano, cosa más que fácil.

domingo, 3 de octubre de 2010

Script para limpiar archivos borrados del disco duro

Hoy presento un código que acaba con el problema de los archivos ya borrados pero que siguen rondando por el disco duro. No es gran cosa, y seguramente forme parte de muchas colecciones de scripts, pero sigue pudiendo ser útil.

Simplemente genera archivos nuevos con contenido aleatorio (de /dev/urandom, /dev/random se eternizaría) hasta llenar el espacio de la particion, y despues los borra.

domingo, 26 de septiembre de 2010

Introducción a NetKit (I): instalación

Al final si que habrá tuto de Netkit (lo estás leyendo ahora), más que nada orientado a esa gente que quiere trastear con las redes, y que no tiene espacio/tiempo/ganas de montar una fisica o con las máquinas virtuales habituales (tipo VirtualBox) y a aclarar algo mis propias ideas :P.

viernes, 20 de agosto de 2010

Detectando DNS y ARP spoofing

Pues eso, hoy, unas formas de detectar el spoofing de DNS (falseamiento de un nombre de dominio) y de ARP (que puede servir para suplantar una IP).

DNS

La forma de detectar un DNS spoofing es bastante simple, pero sigue siendo bastante efectiva para entornos de red local, el script es este o descargado aquí [dns.sh]:

#!/usr/bin/env bash
if [ "$2" == "" ]
    then
        echo "$0 <dirección a resolver> <servidor DNS a probar>"
        exit 1
    fi

echo -n "Velocidad: ";((time ping -c 1 "$2" >> /dev/null) 2>> /dev/stdout )|head -n 2|tail -n 1|cut -f2
echo -n "DNS: ";((time nslookup "$1" "$2" >> /dev/null) 2>> /dev/stdout )|head -n 2|tail -n 1|cut -f2

( ./script <dirección a resolver> <servidor DNS a probar> )

La idea es que compara el tiempo que se tarda en hacer un ping a un servidor DNS y el tiempo que tarda el mismo servidor en resolver una dirección, obviamente un servidor que no esta en la red local (como estaría el supuesto intruso), tardaría mas que el intruso, en la red local.

Por ejemplo, suponiendo que los resultados normales (sin spoofing) fueran estos:


Velocidad: 0m0.068s
DNS: 0m0.075s

Velocidad: 0m0.061s
DNS: 0m0.066s

Velocidad: 0m0.060s
DNS: 0m0.067s

Velocidad: 0m0.061s
DNS: 0m0.070s

Velocidad: 0m0.060s
DNS: 0m0.066s


Los valores con un DNS spoofing podrian ser:


Velocidad: 0m0.060s
DNS: 0m0.015s

Velocidad: 0m0.065s
DNS: 0m0.014s

Velocidad: 0m0.061s
DNS: 0m0.014s

Velocidad: 0m0.066s
DNS: 0m0.014s

Velocidad: 0m0.061s
DNS: 0m0.014s


La diferencia es obvia, el tiempo para resolver sin spoofing es ligeramente mayor que el tiempo de ping, mientras que el tiempo para resolver con spoofing es menos de la mitad del tiempo de ping.

ARP

La forma de detectar un ARP spoofing tambien es bastante simple, si al comprobar la tabla ARP hay MAC's repetidas, significa que (alguna de las repetidas) está spoofeada. Quizá sea necesario llenar la tabla con los host de la red para poder comprobar las MAC de todo la red, se puede hacer simplemente con:


nmap 192.168.0.* -sP


(El 192.168.0.* habría que cambiarlo por el adecuado para la red)
 El script es (o aquí [arp.sh]):

#!/usr/bin/env bash

mip=""
t=0
for a in $(arp -a|sed -e "s/ /_/g" ); do
        ip=`echo $a|cut "-d_" -f2|cut -d\( -f2|cut -d\) -f1`
        mac=`echo $a|cut "-d_"  -f4`
        if [ ${mac,0,1}"" != "<" ]
            then
                # echo "IP: $ip MAC: $mac"
                t=$(($t + 1))
                i=0
                lip=""
                for tmp in $mip ; do
                    if [ `echo $tmp|cut -d_ -f2` == "$mac" ]
                        then
                            echo "MAC duplicada $ip - "`echo $tmp|cut -d_ -f1`" [$mac]"
                        fi
                done
                mip="$mip $ip"_"$mac"
            fi
    done

Simplemente comprueba las MAC duplicadas, y avisa de ello, no requiere interpretación por parte del administrador como el script de DNS (no hay que ver que indican los datos, hay spoof o no).

Y eso es todo, hasta otra.

miércoles, 28 de julio de 2010

Una ronda de bash ( y II )

[La primera parte] (La división va porque se hace incómodo editar el HTML para meter los spoilers con posts largos... si, lo se, soy un vago)

Nota: por alguna razón no se muestran los spoilers si se ven desde la portada, entrad en el post y debería ir.

Los siguientes códigos usan /proc/acpi/ para mostrar la temperatura y Zenity o KDialog para mostrarlo por una GUI

El primero es la base, muestra simplemente las temperaturas por pantalla [temp.sh]:


./temp.sh [-c]

El -c para que también se muestre el símbolo de la medida (¿grados?)


#!/bin/bash
# Escrito por kenkeiras
back=$PWD
cd /proc/acpi/thermal_zone/
if [ "$1" = "-c" ]; then
    lonx=4
else
    lonx=3
fi

for i in *; do
    e=`cat $i/temperature`
    e=${e:`expr length "$e"`-4:$lonx}
    echo "$i: $e"
done

cd $back


Este es con Zenity, es decir, con Gtk [ztemp.sh]


./ztemp.sh




#!/bin/bash
# Escrito por kenkeiras
back=$PWD
cd /proc/acpi/thermal_zone/
tmpList=""
for i in *; do
    e=`cat $i/temperature`
    e=${e:`expr length "$e"`-4:3}
    tmpList="$tmpList $i $e"
done
cd $back
zenity --list --text "" --title "ZenTemp" \
--column "Dispositivo" --column "Temperatura" $tmpList



Visto esto ya no parece tan dificil programar GUI's ^^

Y con KDialog (Qt/Kde) [ktemp.sh]:


./ktemp.sh




#!/bin/bash
# Escrito por kenkeiras
back=$PWD
dump=kdetempdump
cd /proc/acpi/thermal_zone/
tmpVar=""
for i in *; do
    e=`cat $i/temperature`
    e=${e:`expr length "$e"`-4:3}
    tmpVar=$tmpVar"$i: $e\n"
done
cd $back
echo -en $tmpVar > $dump
kdialog --title "KdeTemp" --textbox $dump
rm -f $dump



Y eso es todo, hasta otra

ps: De nuevo todo bajo la WTFPL, claro

sábado, 3 de julio de 2010

Instalando Granola en Trisquel

Actualización: desde que se escribió esto, cambairon algunas cosas (granola ahora usa licencias comerciales para "orgaizaciones" y cosas así, con lo que desconozco si se puede seguir considerando libre, que no gratuito )

Navengando por Linux Hispano me encontre con un software que tiene muy buena pinta, Granola, completamente libre (gracias al canal #trisquel por responder esta duda) y dedicado al ahorro de energía.
La instalación es bastante simple, el típico shellscript, pero no funciona del todo bien en esta distro, así que hay que hacer un par de apaños, intentando ejecutar el shellscript...
"Perdón, pero parece que estas utilizando una distribución o versión sin soporte"
Si se busca el string en el script instalador se encuentra esto:
Así que lo que hay que hacer es que la variable $DISTRIBUTION sea ubuntu o debian (hay más distros soportadas, pero estas son las más similares), solo hay que cambiar.


DISTRIBUTION=unsupported

por


DISTRIBUTION=ubuntu


Y añadir una línea después, dependiendo de la versión de Ubuntu en la que se base, por ejemplo

si es el Trisquel 3.5
CODENAME=karmic

o si es la versión 4
CODENAME=lucid

Para actualizar la lista de software haremos
sudo apt-get update

pero da un error:
"W: Imposible obtener https://download.miserware.com/liux/deb/dists/taranis/main/binary-i386/Packages.gz  The requested URL returned error: 404"

Así que hay que editar /etc/apt/sources.list.d/miserware.list , y en
deb https://download.miserware.com/linux/deb taranis main hay que cambiar el codename de la versión (taranis aquí) por la equivalente de ubuntu (la que pusimos en la variable CODENAME en el script de instalación, en este caso lucid)

Ahora el sudo apt-get update debería funcionar bien, así que por fin podemos instalar el software con sudo apt-get install granola granola-gui

A ver si de paso ahora dura más la batería del portátil :P

Hasta otra!

martes, 15 de junio de 2010

Trasteando con Gambas

Ando trasteando con Gambas, que (a parte del marisco) como sabreis es un IDE/compilador/lenguaje para programacion "visual" bajo GNU/linux, y que al parecer es bastante similar a Basic, y su nombre ya avisa de que "Gambas Almost Means Basic" (Gambas casi significa Basic)

Asi que para probar, monte un programilla que mostrara las temperaturas del pc

El programilla no tiene mucha cosa (solo lee en /proc/acpi/thermal_zone/*/temperature), asi que no me liare con eso...
De la prueba saque algunas conclusiones sobre Gambas:
  • Es sencillo si el objetivo es hacer un programa que se base mucho en la interfaz grafica
  • Sino, sigue siendo sencillo, pero el codigo no me parece tan limpio como podria ser con otros lenguajes (como Python o C)
  • La documentacion es poca, o eso, o simplemente no supe buscarla... el detalle es que la version actual de Gambas es la 2 y los libros que se encuentran por ahi son para la primera version
Y nada mas... por ultimo dejo el codigo del programilla por si resulta util [ Temp-Gambas.tar.gz ] (exportado con "Crear archivo fuente")

Hasta otra!
[Referencias]
http://www.gambas-es.org
http://gambasdoc.org/help/lang
http://www.youtube.com/watch?v=0aOkiEUn3xE
http://sites.google.com/site/codigogambas/

jueves, 28 de enero de 2010

Pasando el rato con /dev/dsp

/dev/dsp es el dispositivo que controla el audio en gnu/linux, esto permite hacer cosas bastante curiosas

(Si no encuentras el archivo dsp en la carpeta /dev, quiza este en dsp0, audio o audio0...)

Escribiendo cosas en este archivo conseguiremos que salgan como audio (lo mejor sera bajar el volumen del audio, ya vereis por que... ;)

Otra cosa... es posible que sea necesario cerrar las aplicaciones que esten utilizando el audio para que funcione todo bien, ademas esto es mejor lanzarlo en una consola de comandos (no con un "ejecutar programa") y despues pararlo con Control-C, sino es posible que siga hasta que se reinicie el pc.

Por ejemplo, haciendo  sudo cat /dev/mouse >> /dev/dsp , los altavoces produciran un sonido cada vez que el mouse se mueve.

Con sudo cat /dev/urandom >> /dev/dsp se producira un sonido aleatorio... decepcionados?, yo tambien, lo de que fuera aleatorio tenia buena pinta, pero al final es lo que se escucha cuando la radio no esta sintonizada

El resto es cuestion de imaginacion, hacer sudo cat /dev/hda >> /dev/dsp (o con sda en vez de hda si el disco es scsi)"reproducira" el disco duro, tambien se puede hacer con un archivo cualquiera, o con /dev/stdin (el teclado), /dev/mem (que es la memoria del pc)...

Tambien se puede hacer al reves, sudo cat /dev/dsp >> archivo.wav para guardar una grabacion (si el pc tiene microfono) en un archivo wav

Suerte y hasta otra