miércoles, 6 de mayo de 2009

Ascii

Si has tenido problemas con sacar los caracteres ascii en GNU/Linux esto es sencillo solo escribe desde consola:

echo -e "\0#"

Donde # es el numero ascii que necesitas imprimir. De esta forma lo puedes usar en tus scripts.

lunes, 22 de diciembre de 2008

Intrusos en mi red?

Muchos de los usuarios protegen sus datos que circundan en su red local, el problema es cuando tenemos redes inalámbricas, los datos están expuestos a todo ordenador que capte dicha señal, para evitar intrusos, protegemos nuestra red mediante contraseñas y métodos de seguridad que eviten que ordenadores desconocidos reciban ip o que vean la red privada, pero ¿Que y quien nos asegura que nadie esta accediendo a nuestra red y usando nuestro ancho de banda?

Los sniffer son herramientas muy útiles, a pesar de ser nuestras enemigas, si sabemos usarlas podemos colocar esas herramientas de nuestro lado. Un sniffer puede detectar nuestra red oculta, pero también con los sniffer podemos detectar los que usan nuestra red así como también los que intentan acceder a la misma.

Teóricamente un sniffer escucha las tramas de la red, puede captar paquetes y actividades de la red en escucha. Los sniffer son tanto peligrosos como muy útiles dependiendo del uso que se les de, ya que con los mismos se pueden captar datos privados y hasta contraseñas privadas de uso personal.

Si nuestra red la tenemos oculta con los sniffer se pueden descubrir dicha red, pero con los mismos podemos defendernos de dichos intrusos.

Entre los sniffers mas populares estan el ethereal y el etherape.

d4x

d4x es un programa que permite administrar la descargas de archivos, este permite que una descarga pueda ser pausada y reiniciada sin perder los datos ya bajados continuando en el ultimo momento donde quedo. Esto es muy util si al momento de bajar un fichero se va la luz, evitando que los datos bajados hasta el momento se pierdan.

sábado, 19 de julio de 2008

Configurando usb(wireless)

Muchos de los dispositivos de red inalambrico aun no tienen controladores natos en GNU/Linux, pero no todo esta perdido, mientras dichos controladores aun estan siendo desarrollados existe un encapsulador que resuelve el problema.

NDiswrapper es un encapsulador que toma un driver de windows y lo encapsula siendo este el que controla al dispositivo funcionando como un intermediario entre el dispositivo y el kernel Linux.

NDiswrapper necesita de dos ficheros el .inf y el .sys del driver a usar con estos dos ficheros el puede realizar la encapsulacion del driver e interpretar su funcionalidad.

Para instalarlo en Opensuse basta con hacer como usuario root el siguiente comando:

# yast2 -i ndiswrapper

Una vez instalado usa las siguientes opciones:

# ndiswrapper -i nombredriver.inf {{{Instala el driver}}}

# ndiswrapper -m {{{Para mas informacion use la ayuda}}}

# ndiswrapper -mi {{{Para mas informacion use la ayuda}}}

# ndiswrapper -ma {{{Para mas informacion use la ayuda}}}

# ndiswrapper -l {{{Lista los dispositivos instalados}}}
# depmod -a {{{Dependencia de los modulos}}}
# modprobe ndiswrapper {{{Agregarlo como un modulo}}}

Aqui el encapsulador esta listo y el driver esta funcionando, pero si aun no ve su dispositivo pruebe con reiniciar su sistema, dicha accion es poco frecuente, luego puede ver que su dispositivo esta presente con {{{iwconfig}}}. Pero siempre y cuando el driver instalado sea el correcto.

Referencia:
http://sourceforge.net/projects/ndiswrapper/
http://es.wikipedia.org/wiki/NDISwrapper

jueves, 12 de junio de 2008

Primeros conocimientos

¿Que es la swap?


Una memoria virtual es una tecnica para habilitar que un sistema use mas memoria que la fisica disponible para el SO. Por lo tanto la swap no es mas que una particion de intercambio que es necesaria ser creada para evitar el colapso de aplicaciones o procesos que requieran ser procesados cuando la memoria fisica reusa la entrada debido a que esta llena.

¿Que es la particion /-(raiz o root)?


En cualquier SO GNU/Linux o Unix se requiere como minimo esta particion ademas de la swap para que pueda funcionar, esta particion es conocida tambien como (/). Esta particion no es mas que un directorio en el que se encuentran los sub-directorios del sistema para el funcionamiento del propio SO.

¿Que es el shell?


Los shell's mas populares son los siguientes:
1.- ash: Es pequeño y muy usado cuando no hay mucha memoria.
2.- bash: Es una version mas poderosa proveniente del sh.
3.- csh: El original C shell, es generalmente lo mismo que tcsh
4.- ksh: Es un shell de Open source.
5.- nash: Otro shell pequeño para cuando hay poca memoria.
6.- sh: bash y sh, generalmente la misma cosa.
7.- tcsh: La mejora del C shell original.
8.- zsh: Reensambla bash y ksh, con muchos ademanes y mejoras.
El shell no es mas que un interprete de comandos.

Proceso de Arranque en un sistema GNU/Linux


Las etapas básicas del proceso de arranque son las siguientes:
1.- La BIOS tiene el poder del sistema y comprueba el mismo y el MBR del disco duro primario.
2.- Se carga el GRUB en memoria y lanza el gestor de arranque desde /boot.
3.- Se carga el kernel en memoria, se cargan los módulos y se monta /root.
4.- El kernel transfiere el control del proceso de arranque a /sbin/init.
5.- /sbin/init carga los servicios y herramientas del espacio del usuario y loas particiones listadas en /etc/fstab.
6.- Inicio de sesión.

¿Qué es un servicio en GNU/Linux?


Un servicio es una aplicacion que se ejecuta de manera ininterrumpida escuchando y atendiendo peticiones realizadas a un servidor, todo servicio debe de evitar que el servidor se sature de igual manera no debe de crear conflicto con otros existentes en el servidor.
1.- Apache2.
2.- Bind.
3.- Mysql.
4.- Dhcp.
Son solo parte de los servicios que las distribuciones GNU/Linux pueden brindar.

miércoles, 28 de mayo de 2008

Como configurar xgl en openSUSE

En openSUSE es muy sencillo configurar el driver con el que se ejecuta o trabajan los videos, originalmente openSUSE trabaja con Xorg, pero tambien este puede ser cambiado para trabajar con Xgl, este funciona perfectamente en tarjetas de video NVidia o ATI, solo hay que hacer cambios a un simple archivo y reiniciar el modo grafico para que los cambios surtan efecto, para usuarios novatos sugiero reiniciar la maquina.

Primero sugiero que se lea muy bien que tarjeta de video se tiene y si se tiene los drivers de video para esta, puedes encontrar mayor informacion en '/usr/share/doc/packages/xgl/README.SUSE'.

Si crees que todo esta bien entonces vete al fichero /etc/sysconfig/displaymanager y cambia la siguiente linea:
{{{
DISPLAYMANAGER_XSERVER="Xorg"
}}}
para que quede:
{{{
DISPLAYMANAGER_XSERVER="Xgl"
}}}
luego ejecutas xdm que muy bien explicado sale en la ayuda 'README.SUSE'.

En Open Suse puedes ejecutar
rcxdm restart.

Esto debería trabajar bien por ahora, si tienes problemas, verifica tu driver o tu tarjeta de video.

Si tu tarjeta es nvidia, puedes decirle que trabaje con nvidia en lugar de Xorg o Xgl quedando de esta forma:
{{{
DISPLAYMANAGER_XSERVER="nvidia"
}}}

miércoles, 16 de abril de 2008

Escribiendo Shell Scripts

Linux es ademas de un Sistema Operativo un lenguaje de programacion, al igual que los lenguajes de bajo u alto nivel posee caracteristicas similares tales como variables locales y globales, como ademas posee interpretes con los cuales se puede realizar programas para este Sistema Operativo.

Entre los interpretes mas comunes esta el '/bin/bash', interprete bajo el cual se trata esta entrada.

Hagamos una pequena introduccion, empecemos escribiendo un archivo simple:
admin escribió:

#!/bin/bash
# Esto es un comentario
echo "Hola " $USER ", es un placer verlo por aqui!"
echo "Usted se encuentra en: " $PWD
echo "La fecha de hoy es: "`date +"%d/%m/%Y"`


Ahora almacenas esto en un archivo llamado 'ejemplo1.sh', entonces tendras un simple shell script. Puedes correrlo de las cuatro formas siguientes:

1)Usando el comando source:
admin escribió:

fred@test:~> source ejemplo1.sh
Hola fred, es un placer verlo por aqui!
Usted se encuentra en: /home/fred
La fecha de hoy es: 05/05/1994

2)Usando el punto como el comando source:
admin escribió:

fred@test:~> . ejemplo1.sh
Hola fred, es un placer verlo por aqui!
Usted se encuentra en: /home/fred
La fecha de hoy es: 05/05/1994

3)Usando el comando bash
admin escribió:

fred@test:~> bash ejemplo1.sh
Hola fred, es un placer verlo por aqui!
Usted se encuentra en: /home/fred
La fecha de hoy es: 05/05/1994

4)Haciendo ejecutable:
admin escribió:

fred@test:~> chmod a+x ejemplo1.sh
fred@test:~> ./ejemplo1.sh
Hola fred, es un placer verlo por aqui!
Usted se encuentra en: /home/fred
La fecha de hoy es: 05/05/1994

Continuando les anexo aqui otro ejemplo:
admin escribió:

#! /bin/bash
for i in 1 2 3 4 5
do
echo $i
done
--------
fred@test:~> chmod a+x ejemplo2.sh
fred@test:~> ./ejemplo2.sh
1
2
3
4
5

Aqui les doy otro ejemplo:
admin escribió:

#! /bin/bash
for i in *.html
do
grep -i \<title\> $i >> tittles.list
done
--------
fred@test:~> chmod a+x ejemplo3.sh
fred@test:~> ./ejemplo3.sh
<title>Yahoo! Telemundo</title>

Para hacer funciones:
admin escribió:

#!/bin/bash
function Imprimir(){
echo $1
}
Imprimir "Hola Mundo"
--------
fred@test:~> chmod a+x ejemplo4.sh
fred@test:~> ./ejemplo4.sh
Hola Mundo

Para leer datos de parte del usuario hay cuatro formas:

1) Usando read:
admin escribió:

#!/bin/bash
read -p "Ingrese un valor: " -e input
echo "Su valor es: '$input'"
--------
fred@test:~> ./ejemplo5.sh
Ingrese un valor: 6
6


2) Usando dialog:
admin escribió:

#!/bin/bash
dialog --inputbox \
"Escriba un valor: " 0 0 2> /tmp/inputbox.tmp.$$
retval=$?
input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
case $retval in
0)
echo "Su valor es: '$input'";;
1)
echo "Cancelo la operacion.";;
esac
--------
fred@test:~> ./ejemplo6.sh
<--Aun no e hecho las imagenes-->


3) Usando Xdialog:
admin escribió:

#!/bin/bash
Xdialog --title "INPUT BOX" --inputbox \
"Escriba un valor: " 0 0 2> /tmp/inputbox.tmp.$$
retval=$?
input=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
case $retval in
0)
echo "Su valor es: '$input'";;
1)
echo "Cancelo la operacion.";;
255)
echo "Cerro la ventana.";;
esac
--------
fred@test:~> ./ejemplo7.sh
<--Aun no e hecho las imagenes-->


4) Usando zenity:
admin escribió:

#!/bin/bash
input=$(zenity --text "Escriba un valor: " --entry)
retval=$?
case $retval in
0)
echo "Su valor es: '$input'";;
1)
echo "Cancelo la operacion.";;
esac
--------
fred@test:~> ./ejemplo8.sh
<--Aun no e hecho las imagenes-->


Quizas zenity sea la mejor opcion cuando tienes funcionando una X, pero cuando no dialog es la mejor opcion o read como lo mas simple para un script.
Las paginas man ofrecen mayor documentacion.


Usando ciclos:
Con los ciclos podemos hacer maravillas, tanto moviendonos de un rango a otro como usandolos para movernos en el mismo sistema, empecemos con lo basico:
admin escribió:

#!/bin/bash
for (( i=1;i<=5;i++ ));do
echo $i
done
--------
fred@test:~> ./ejemplo9.sh
1
2
3
4
5
fred@test:~> _


Haciendo algo mas complejo, mostrando si es directorio o archivo los datos contenidos en una carpeta dada:
admin escribió:

#!/bin/bash
for item in `ls $1`;do
if [[ -d $item ]];then
echo $item": Es una carpeta"
else
echo $item": Es un archivo"
fi
done
--------
fred@test:~> ./ejemplo10.sh /home/test
avion.wmv: Es un archivo
Desktop: Es una carpeta
Documents: Es una carpeta
Pictures: Es una carpeta
video.avi: Es un archivo
fred@test:~> _