Frase

El conocimiento humano pertenece al mundo y por lo tanto todos somos libres de hacer uso de el.

jueves, 2 de febrero de 2012

Molesto error en consola y nano

Al estar en consola me gusta usar un editor rapido y mi elección ha sido nano, pero hace unos días el siguiente error mostraba:

Error reading /home/"username"/.nano_history: Permission denied
Press Enter to continue starting nano.

Al teclear Enter, abria nano, pero se me hacia molesto. Así que si alguien tiene el mismo problema la solución es la siguiente:

Primero tecleamos lo siguiente en consola:
sudo nano /etc/nanorc
y comentamos la linea
#set historylog 
Esto desactivara el archivo nano_history usado para guardar y leer, así como para buscar y reemplazar cadenas.

En consola y estando en home, eliminamos nano_history
sudo rm .nano_history 
Y listo eso es todo.

miércoles, 1 de febrero de 2012

De vuelta al Blog

Me he ausentado como 2 años de mi Blog, la Universidad me absorbio ya que estaba un poco atrasado y decidi dedicarle todo mi tiempo para retomar el camino, la buena noticia es que estoy a punto de terminarla y eso me da el tiempo libre necesario para empezar a hacer publicaciones en el Blog, pido una disculpa si no conteste ningun comentario.


A darle.

sábado, 26 de junio de 2010

Claves WPA en modems Thompson Telmex

Instalaremos una herramienta para hacer esto

wget http://www.wifiway.org/stkeys/install.sh.gz
gzip -d install.sh.gz
chmod +x install.sh
./install.sh

Ahora lo corremos y los parametros seran

stkeys -v -i octetosderouter

por ejemplo:

en un router Thomson modelo ST585v6 con ESSID “SpeedTouchF8A3D0″:

quedaria asi

stkeys -v -i F8A3D0

listo.


Obtener el texto de imagenes

Les recomiendo una pagina para extraer el texto de una imagen

http://www.newocr.com/

agregas la imagen y obtendras el texto de la imagen

Problemas al inyectar con aircrack-ng en ubuntu lucid

A mi me paso que mi tarjeta ath5k atheros no inyectaba trafico con aireplay-ng, lo solucione de la siguiente manera

instalamos madwifi-hal lo descargamos de http://snapshots.madwifi-project.org/madwifi-
hal-0.10.5.6/ descargamos la version mas reciente

descomprimimos e instalamos
sudo make
sudo make install

ahora abrimos la carpeta /etc/modprobe.d

borramos el fichero blacklist-ath_pci.conf

abrimos el archivo blacklist.conf y al final agregamos la linea

blacklist ath5k

reiniciamos y tendrás la interfaz ath0

Control de Alsa

Instalamos el applet alsa-mixer (volume)

Pulseaudio removio el applet de volume. Asi que instalaremos uno para alsa
instalamos los siguientes paquetes

sudo apt-get install python python-notify python-gtk2 python-alsaaudio python-eggtrayicon xfce4-mixer

Descargamos alsamixer-applet de:

wget http://howto.blbosti.com/files/alsa/alsa_mixer_applet_1.1.tar.gz

Extraemos los archivos en /usr/local/bin:

sudo tar -C /usr/local/bin/ -xzvf alsa_mixer_applet_1.1.tar.gz

Hacemos todos los archivos ejecutables:

cd /usr/local/bin
sudo chmod +x alsa*
sudo chmod +x volbar.py

Si quieres usar las hotkeys para controlar el volume, necesitas hacer:

System > Preferences > Keyboard Shortcuts. Click Add.

Name: ALSA Volume mute
Command: /usr/local/bin/alsa_master_mute

Name: ALSA Volume down
Command: /usr/local/bin/alsa_master_down

Name: ALSA Volume up
Command: /usr/local/bin/alsa_master_up

Ahora mapea tus teclas y listo.

Finalmente los programas volbar.py y alsavol.py tienen que iniciar automaticamente

System > Preferences > Startup Applications. Click Add:

Name: volbar
Command: /usr/local/bin/volbar.py

Name: alsavol
Command: /usr/local/bin/alsavol.py

Nota: Si tienes instalado gnome-alsamixer en vez xfce4-mixer, necesitas editar volbar.py

sudo gedit /usr/local/bin/volbar.py

En la linea 97 remplaza xfce4-mixer por gnome-alsamixer:

subprocess.Popen("gnome-alsamixer")

Reinicia la computadora y listo.

Microfono interno funcionando en laptop HP con ubuntu lucid

Una vez que tengamos la version mas reciente de Alsa.
editamos el archivo de configuración de ALSA (sudo gedit /etc/modprobe.d/alsa-base.conf) y añadimos estas líneas al final:

-----PARA LAPTOPS HP----------------

options snd-pcsp index=-2
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
options snd-hda-intel model=hp-m4
options snd-hda-intel enable_msi=1

Vamos a Sistema → Preferencias → Sonido y cambiamos las 4 primeras opciones a ALSA.

reiniciamos.

A mi funciono instalando alsa-driver-linuxant que lo puedes descargar de http://www.linuxant.com/alsa-driver/

si tienes una tarjeta chipset conexant puedes instalar el modem con hsfmodem que lo puedes bajar de
http://www.linuxant.com/drivers/hsf/

sigue los pasos y listo tendras trabajando el modem y la tarjeta de audio

escribe en consola

alsamixer y ajusta los valores a como tu prefieras

con la tecla m quitas lo muteado

Ok, seguro tendras problemas con alsa al intentar reproducir sonido en varias aplicaiones eso lo solucionaremos con lo siguiente.

primero desinstalar pulseaudio

sudo apt-get remove pulseaudio

Sólo es necesario activar la mezcla por software dmix sobre la salida de audio. Simplemente lléva este código a tu .asoundrc.
# .asoundrc - Personal configuration file for ALSA

# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.

# See the file COPYING for details.

pcm.ossmix {
type dmix
ipc_key 1021 # must be unique!
ipc_perm 0660 # sound for everybody (at least in your group)
#ipc_key_add_uid false # let multiple users share
slave {
pcm "hw:0,0"
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192 # dito
#format "S32_LE"
#periods 128 # dito
#rate 8000 # with rate 8000 you *will* hear
} # if ossmix is used

# bindings are cool. This says, that only the first
# two channels are to be used by dmix, which is enough for
# (most) oss apps and also lets multichannel chios work
# much faster:
bindings {
0 0 # from 0 => to 0
1 1 # from 1 => to 1
}
}

# Redirect to ossmix
pcm.!default {
type plug
slave.pcm "ossmix" # use our new PCM here
}

# Redirect to ossmix
pcm.dsp {
type plug
slave.pcm "ossmix" # use our new PCM here
}

# mixer like above
ctl.mixer {
type hw
card 0
}

# Local Variables:
# mode: conf
# End:

Ahora la salida llamada default, la que por omisión utilizan todas las aplicaciones compatibles con ALSA para reproducir audio, implemente mezcla por software desde todas las aplicaciones que la están utilizando. En mi máquina, así, es posible reproducir simultáneamente audio desde clips en YouTube vía Flash en Firefox, Spotify, mplayer, Audacious, Skype y cualquier otra.

Sólo dos avisos. Si alguna aplicación utiliza explícitamente la salida hw:0,0 todo deja de funcionar. La mezcla por software queda configurada para la salida llamada default y no para ninguna otra. Por otra parte, de nuevo, si cualquier aplicación consigue reproducir con éxito audio utilizando la emulación OSS, la cosa de nuevo deja de funcionar.

Por cierto este archivo por omision no existe asi que debes crearlo en /etc/asoundrc

Y listo tendras audio en todas tus aplicaciones.

En la siguiente entrada veremos como controlar alsa ya que desinstalamos pulseaudio

Actualizar alsa

En primer lugar es necesario desinstalar PulseAudio ya que tiene problemas con Alsa. Para eso lo eliminamos desde consola con


sudo apt-get purge pulseaudio
sudo apt-get remove pulseaudio

Necesitamos instalar los siguientes paquetes para compilar alsa
sudo apt-get -y install build-essential ncurses-dev gettext xmlto libasound2-dev
sudo apt-get -y install linux-headers-`uname -r` libncursesw5-dev

Instalamos alsa en su version mas reciente descargando los archivos con wget

cd ~
rm -rf ~/alsa* ~/.pulse*
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.23.tar.bz2
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.23.tar.bz2
wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.23.tar.bz2

Creamos un folder para la instalacion y compilacion de los archivos descargados

sudo rm -rf /usr/src/alsa
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/alsa* .

Desenpaquetamos los archivos descargados

sudo tar xjf alsa-driver*
sudo tar xjf alsa-lib*
sudo tar xjf alsa-utils*

compila e instala alsa-driver :

cd alsa-driver*
sudo ./configure
sudo make
sudo make install

compila e instala alsa-lib :

cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install

compila e instala alsa-utils :

cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install

reiniciamos

para comprobar la version escribimos

cat /proc/asound/version

Para configurar ejecuta

sudo alsaconf

Algunas veces tenemos problemas al instalar alsa-libs lo siguiente puede solucionarlo.

sudo ln -s libpanelw.so.5 /usr/lib/libpanelw.so
sudo ln -s libformw.so.5 /usr/lib/libformw.so
sudo ln -s libmenuw.so.5 /usr/lib/libmenuw.so
sudo ln -s libncursesw.so.5 /lib/libncursesw.so




domingo, 22 de febrero de 2009

Gestor de archivos en modo consola linux

mc-panels

Bueno, ahora les presento otra aplicación de shell, bueno una aplicación más en modo consola,esta vez le toca a la sección de Gestor de Archivos, conocemos los gestores de arhivos en modo grafico como son el Nautilus en Gnome, el Konqueror en KDE y el Thunar en XFCE, este es un gestor de archivos en modo consola llamado Midnight Commander (mc), este proyecto lo desarrolla GNU, así que si estamos usando debian, lo podemos instalar via apt, de la siguiente manera:

1.- Abrimos una terminal, Nos logeamos como root

$su

contraseña

2.- Actualizamos los repositorios

#apt-get update

3.- Instalamos mc

#apt-get install mc

4.- Para ejecutar el programa vasta con teclear en consola mc

$mc

Podemos ver sus opciones en la parte superior, se encuentra el menú, y en la parte inferior se encuentran algunas funciones basicas.

Dentro del programa podemos hacer multiples tareas como son, crear directorios, cambiar permisos, dueño, enlaces, buscar archivos, renombrar, etc.

Bueno, otras de las fantasticas opciones de este programa es que incluye un gestor de trasferencia de archivos, hablo de que también nos sirve como ftp, cuando instalamos mc, también nos instala un editor llamado mcedit, sólo basta teclear su nombre para invocarlo

$mcedit

Una de las caracteristicas muy importantes, es que tanto en mc como en mcedit podemos usar el mouse.

Aquí les dejo la liga del proyecto, en caso de que usen otra distribucción:

http://www.ibiblio.org/mc/

Pebrot

Bueno, hoy les traigo una aplicación en modo consola, que me ha convencido como mi cliente de mensajeria instantanea para el protocolo que implementa hotmail, que es el msn, esta aplicación se llama pebrot, es una aplicación desarrollada en python, por lo cual para poder instalar esta aplicación es necesaria tener una versión de python mayor o igual a la versión Python 2.2.

1.- Primero nos descargamos el código fuente desde la página del proyecto, buscamos en la página una apartado donde diga download

http://pebrot.sourceforge.net/

2.- Una vez descargado, abrimos una terminal y nos logeamos como root

$su

tecleamos nuestro password

3.- Ahora nos dirigimos al directorio donde descargamos el archivo, en mi caso es en mi directorio Software/

#cd Software/

4.- Ahora descomprimo y desempaqueto el archivo descargado, en mi caso es el pebrot-0.8.8.tar.gz

#tar -zxvf pebrot-0.8.8.tar.gz

5.- Ahora acceso al directorio desempaquetado, que es pebrot-0.8.8

#cd pebrot-0.8.8

6.- Ahora ejecutamos el instalador

#python setup.py install

7.- Nos salimos de la cuenta de root

#exit

8.- Ahora configuramos nuestra cuenta de correo de hotmail, para ello editamos el siguiente archivo

$vim ~/.pebrot/pebrotrc
“Buscamos donde diga:”
user=
“Ahora lo dejamos, con nuestra cuenta”
user = micorreo@hotmail.com
“Salimos y guardamos cambios”
Esc :wq

8.- Ejecutamos pebrot

$pebrot

“Nos aparecera nuestra cuenta, y nos pedira nuestra contraseña”

“Tecleamos nuestra contraseña, en caso de no teclear correctamente nuestra contraseña, nos manda un error en el programa, así que hay que ejecutar de nuevo el comando”

Algunos comandos importantes:

\h muestra la lista de comandos

\l lista la lista de contactos conectados, enumerados

\numero abre una conversación con el número del contacto

\i numero invita a un usuario a la conversación, numero, es el número del contacto

\e limpia la pantalla

\c cierra la conversación activa

\a usuario añade un usuario a la lista de contactos

\b usuario bloquea a un usuario de nuestra lista de contactos

\f archivo envia un archivo

\fa acepta un archivo que nos deseen enviar

\fr rechaza la recepción de un archivo

\s estado cambia de estado de tu conexion

estado puede tener los siguientes valores

awy Ausente

nln En linea

bsy Ocupado

Existen varios estado, para ello hay que consultar \h

La tecla tab nos ayuda a desplazarnos entre las conversaciones que tengamos

sábado, 17 de enero de 2009

Reparar Grub con LiveCd

- Arranca el liveCD de Ubuntu. Si no sabes exactamente que partición es (como se llama en ubuntu) la que tiene ubuntu instalada puedes hacer en consola:
Código:
sudo fdisk -l
Te tienes que fijar en una línea que pondrá algo como esto:
Código:
/dev/hdc1               1        2882    23148544   83  Linux
En mi caso me dice que donde tengo linux es en el tercer disco duro (me lo indica la "c") y en la primera partición (me lo indica el "1").

Si por te ejemplo te saliese algo como esto:
Código:
/dev/sda2               1        2882    23148544   83  Linux
Te estaría diciendo que está en el primer disco duro (la "a") y en la segunda partición (el "2")

Es decir para ubuntu empieza a contar los discos duros con letras (a,b,c) y las particiones con número (1,2,3). Para grub se numeran de otra forma (empieza a contar los discos duros desde 0 y las particiones desde 0). Si ejecutas en consola:
Código:
sudo grub
Entras en un apartado especial de grub en el que funcionan unos pocos
comandos si haces:
Código:
root (hd0,1)
Con esto haces que grub sepa donde está ubuntu o cualquier otro linux, en verdad este paso sirve para decirle a grub donde tiene que buscar el directorio /boot, necesario para que grub pueda funcionar y linux pueda arrancar (también puede darse el caso que /boot esté en una partición distinta del directorio raíz), en este caso está en el primer disco duro y en la segunda partición (recuerda: para grub se empieza a contar desde 0).

Luego puedes reinstalar grub haciendo lo siguiente:
Código:
setup (hd0)
Y se reinstala grub al principio del primer disco duro (es lo más común, instalarlo al principio de un disco duro, en el MBR), si todo ha ido bien te tiene que decir algo como esto:
Código:
 Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Sales de grub poniendo:
Código:
quit
Y reinicias sin el cd, ahora debería estar grub como estaba antes de instalar Vista.

viernes, 16 de enero de 2009

Video y Wifi en Ubuntu

Pues les comento que yo puse estos drivers (anterior post) porque desgraciadamente uso windows para correr el photoshop y muchos otros programas de diseño, pero yo soy seguidero del mundo GNU/Linux desde hace ya 4 años y voy a ayudar a otros que se esten cambiando a este mundillo :) , en linux no es necesario instalar, drivers de sonido, procesador y demaces, solo hay que “Arreglar” el de WiFi y el GeForce 7000M (que es una B0Ludes ya que te lo detecta solo :D )

WiFi: Primero debemos tener instalado Ubuntu en nuestra Notebook, Segundo hay que descargar los drivers de WiFi que puse en el post anterior para windows, y descomprimirlos en nuestro /home (carpeta personal)

  1. Escribe en una consola: sudo rmmod ath_pci (para borrar un driver en conflicto)
  2. Escribe luego: sudo gedit /etc/modprobe.d/blacklist
    1. Añade al final del archivo: blacklist ath_pci
    2. Guarda el archivo.
  3. Reinicia el Ordenador
  4. En la Terminal (consola) escribi: sudo apt-get install ndiswrapper-common ndiswrapper-utils-1.9
  5. ve al directorio/carpeta (/home/[Nombre de usuario]/WLAN Atheros AR5007 5.3.0.45/ndis5x) o donde metiste los drivers de wifi y escribe: sudo ndiswrapper -i net5211.inf
  6. Escribe: sudo ndiswrapper -m
  7. Escribe: sudo modprobe ndiswrapper (si se les traba el PC reinicien el sistema y vuelvan a ejecutar el comando)

Ahora veremos como hacer que cada vez que se inicie el sistema reconosca el WiFi

  1. Escribe en la consola: sudo gedit /etc/modules
    1. Introduce al final del archivo: ndiswrapper
    2. Guarda el Archivo

Y listo, wireless en nuestro portatil con ubuntu.

Ahora el Video :D :

Es Muy Facil:

Abren una consola y escriben: sudo apt-get envyng-core envyng-gtk (o para Kubuntu cambian el gtk por qt)

Ahora en Menu>Herramientas ban a tener el progama EnvyNG, lo abren y seleccionan NVIDIA y seleccionan Instalar el Controlador NVIDIA (deteccion automatica de hardware) y listo se os comenzara a instalar el driver automaticamente :D haci de facil y ahora desde Sistema>Admin> Nvidia X Settings puedeb seleccionar la resolucion que quieran y ocn esto ya tienen ACELERACION 3D y van a poder ejecutar Compiz-Fusion :D bueno espero que les aya servido, atentamente: MiCruma

Instalar Java JDK en Win XP

Desde hace por lo menos un año llevo usando Java, pues ahora le diré como compilar algún código en Java en Windows XP.

Pues este es un tutorial de como instalar.

Primero vamos a descargar el The Java SE Development Kit (JDK) de este sitio:

http://java.sun.com/javase/downloads/index.jsp

La versión con la que hago este tutorial es con la versión 6 Update 2.

IMPORTANT: Siempre JDK se actualiza, es bueno tener la última versión ya que corrige muchos bugs.

Ejecutamos el archivo que bajamos y aparecerá una pantalla como esta, y le Damos Accept

Nos aparecerá donde queramos que se instale, en este caso Yo lo instale en C:/Java/. [Pueden dejar la dirección de default que se instala en C:/Archivos de programas/.

Le damos clic en Next y Empezará la instalación de Java Development Tools:

Ahora te pedirá donde quieres intalar el Java SE, Este es indispensable para Windows XP. Al igual que el anterior lo instalé en C:/Java/, pero puedes dejar la carpeta de instalación de Default, que es C:/Archivos de programas/

Dale Next y empezará la instalación de Java SE:

Terminará la instalación, deberá aparecer una ventana como esta y le das clic en Finish:

Seguido de esto, necesitamos decirle a nuestro computador donde esta el compilador de JAVA, para esto vamos a MI PC y hacemos clic derecho con el botón del mouse y vamos a Propiedades y después nos vamos a la pestaña donde dice Opciones Avanzadas. Damos Clic en Variable de entorno.

Luego buscamos la variable llamada "Path" en las Variables del Sistema y hacemos click en modificar. Al final del campo llamado "valor de variable" escribimos la ubicacion del compilador de JAVA, en nuestro caso escribimos ";C:\Java\jdk1.6.0_02\bin". Noten el ; que hay antes de c: esto separa nuestro directorio de los otros valores ya ingresados

En la misma ventana de Variable de entorno. Creamos una variable llamada Classpath, en entradad tendrás que ingresar la dirección de la variable. En este caso la dirección es ;C:\Java\jdk1.6.0_02\src.zip\ Para terminar hacemos clic en Aceptar y cerramos todas las ventanas

Ahora vamos al Menu Inicio -> Todos los programas -> Accesorios -> Simbolo del sistema.
Aparecera ante nosostros una Consola de DOS, en ella escribimos java y hacemos un enter y después tecleamos javac para ver si el sistema encuentra el interprete de JAVA. Si nos sale algun error, hay que volver atras a revisar la configuracion de las variables de entorno del sistema.

Y eso es todo para poder compilar algún código Java en Windows XP, un buen IDE para compilar código Java, les recomiendo uno llamado JCreator, que es muy bueno, solamente lo instalan y toma todos estos valores para poder compilar igual.

miércoles, 14 de enero de 2009

Manual SSH: El dios de la administración remota

Y es que no se merece un titular peor. ¿Has estado alguna vez en el trabajo o en casa de y has necesitado o te has acordado de un archivo que no tienes en ese momento pero sí en tu ordenador? Existen los escritorios remotos, de hecho Ubuntu trae uno instalado por defecto, pero puede que no queramos hacer más que mandarnos un archivo o hacer algo en el ordenador remoto. Para esto -y mucho más- existe SSH, con un inmenso potencial.

SSH son las siglas de Secure SHell. Lo que te ofrece es una consola en un ordenador remoto con los privilegios que tenga la cuenta con la que conectes. Es decir, si en tu PC tienes varias cuentas, puedes conectar desde otro ordenador al tuyo con cualquiera de esas cuentas y sus respectivos privilegios, como pudiera ser la cuenta root, la de tu administrador sudo o la de un usuario normal sin poder de administración. Y todo esto con encriptación de datos.

En este tutorial os voy a mostrar algunas facetas de su uso, pero antes debéis saber que tener el servidor de SSH corriendo es de cierto riesgo, ya que si no tocáis la configuración por defecto para aumentar la seguridad a un nivel más que aceptable, puede ser un agujero para que alguien pueda entrar en vuestro sistema. Pero no os preocupéis, si seguís estos pasos es difícil que suceda, nunca imposible, pero sí difícil.

El manual es algo extenso debido a que he intentado hacer que resulte bastante completo y que, como llevo haciendo en el resto de tutoriales, quiero que sepáis lo que estáis haciendo, los porqués y lo que significa cada cambio que hacéis. De esta forma tendréis criterio propio para vuestras modificaciones personales.

Instalar

En vuestros repositorios ya tenéis SSH dispuesto a instalar, así pues:

$ sudo aptitude install ssh

Una vez instalado se autoiniciará el demonio que ejecuta el servidor SSH y gestiona las solicitudes de login remoto.

Configuración: Mayor seguridad

Como decía antes no es muy inteligente usar SSH sin modificar el fichero de configuración del servidor. Vamos a modificar algunas opciones para conseguir una seguridad aceptable.

$ sudo gedit /etc/ssh/sshd_config

(nota) Si algunas de las opciones que aquí comento no aparecen en vuestro sshd_config, simplemente agregadlas. Podéis hacerlo donde queráis, aunque lo suyo es que lo hagáis al principio o al final para que sepáis cuales son las opciones que vosotros habéis agregado.

Vemos un fichero de configuración típico basado en “opción valor”. Vamos a comenzar las modificaciones por el puerto que es lo primero que vemos y una de las cosas más importantes. SSH usa por defecto el puerto 22. Esto significa que si no lo cambiamos estamos entregando a un caco que sabe la dirección de dónde vivimos (nuestra IP) también la llave del portal.

Cambiaremos el puerto para evitarlo. Esto no quita que el caco pueda intentar averiguar “el portal” si sabe cómo hacerlo pero al menos le ponemos impedimentos. También hay scripts que atacan directamente el puerto 22, por lo que el cambio de puerto es algo obligatorio. Poned el que queráis y abridlo también en el router para que podáis acceder a vuestro ordenador desde otro. Usaremos por ejemplo el 4321, podéis poner el que queráis. Así pues en el fichero de configuración:

port 4321

Un poco más abajo buscad la opción “Protocol” debe estar a valor 2, si no es así (valor 1 ó 2,1 ponedla. Hay dos versiones de protocolo SSH. La primera está ya en desuso y tiene varias vulnerabilidades. Así debéis dejarlo en vuestra configuración:

Protocol 2

Buscad la sección “Authentication”. Sus dos primeras opciones son también importantes. La primera es el número de segundos que tendrá el usuario remoto para hacer login en tu máquina. Poned ese valor a pocos segundos, no tardamos mucho en hacer login si sabemos la cuenta y la password. De esta forma evitamos ciertos scripts que se aprovechan de ese tiempo. El valor típico en términos de seguridad es 30, aunque podéis poned incluso menos si estáis más conformes.

LoginGraceTime 30

Justo debajo tenéis otras de las opciones más importantes, PermitRootLogin. Si antes usé la metáfora del caco y el portal, esta opción viene a ser que le digáis también en qué planta del bloque de pisos vivís y qué puerta, faltándole sólo la llave. Con esto lo que insinúo es que si sabe por qué puerto entrar, tan sólo le queda averiguar dos datos: el nombre de una cuenta y su contraseña.

Si tenemos esta opción habilitada (yes) el caco ya tiene la mitad del trabajo hecho, pues el usuario “root” existe en todas las máquinas GNU/Linux, tan sólo le queda averiguar la contraseña. Por eso es más que recomendable deshabilitar esta opción. No os preocupéis los que tenéis en mente usar SSH para hacer un uso administrativo, podéis hacerlo con vuestra cuenta y sudo sin problema alguno. Así pues…

PermitRootLogin no

También podéis señalar con el dedo las cuentas que tienen permitido el uso SSH (AllowUsers). Pongamos un ejemplo, que es como mejor se entienden las cosas: Supongamos que tienes un amigo con el que quieres compartir algo vía SSH y además tiene un hermano que es un enreda y en el que no confías por si te la puede liar. Llamaremos a las cuentas “amigo” y “pesado” respectivamente. Para restringir el uso de SSH a tu amigo y a tu propia cuenta (llamémosla “pepino”) podemos indicárselo mediante configuración. Incluso podemos indicar también que tu amigo sólo se pueda conectar a tu ordenador desde el suyo, sabiendo su IP (supongamos que es 83.45.258.21). Pondríamos en la configuración:

AllowUsers pepino amigo@83.45.258.21

De esta forma tú podrías usar tu cuenta (pepino) para conectar a tu equipo desde cualquier lugar, tu amigo podría hacerlo sólo desde su ordenador (si tiene esa IP) y tu hermano no podría conectar a tu máquina vía SSH, si no tiene tu cuenta.

Otra opción interesante es el número de intentos que tiene el usuario remoto para hacer login (MaxAuthTries). Como comenté antes, quien intente conectar debe acordarse de su login y password, por lo que es tontería darle un número grande de intentos. En principio con dos son más que suficientes. Si al segundo intento no lo ha conseguido se cortará la conexión SSH. Siempre se puede volver a conectar y reintentarlo, pero así nos quitamos de encima ciertos scripts que intentan encontrar el login por fuerza bruta a base de ensayo y error.

MaxAuthTries 2

Por último hay otra opción que define el número máximo de usuarios conectados simultáneamente a tu máquina. Esto ha de adaptarse a tus propias necesidades. Si estamos hablando de un ordenador personal donde sólo vas a conectar tú, pues lo lógico sería que como mucho hubiera una. Si estamos hablando de un ordenador que hará las veces de servidor compartiendo una carpeta a varias máquinas, deberás decidir cuántos son. Cuanto tengas claro el número indícalo en la opción siguiente en lugar de la ‘X’:

MaxStartups X

Ya podéis guardar y cerrar gedit. Con esto tenéis un servidor SSH bastante seguro. Como comenté antes nunca es 100% seguro pero a priori podéis estar bien tranquilos. Sólo resta reiniciar el propio servidor SSH para que tome los cambios que hemos efectuado en su configuración. Escribid en consola:

$ sudo /etc/init.d/ssh restart

Un último consejo. Como habéis visto podemos poner trabas al caco en cuanto a nuestra dirección y puerta, pero ¿podemos ponerle problemas con la llave? La llave se entiende que es la contraseña. Y la respuesta es afirmativa. Podéis hacerlo pero vosotros mismos. Poned claves en condiciones a vuestras cuentas. Usad como poco 5 ó 6 caracteres y a ser posible que se entremezclen mayúsculas, minúsculas y números, por ejemplo: entr3TuXeSyp3p1n0s.

Es un ejemplo exagerado, enrevesado a la hora de escribir e incómodo para meterlo en sudo cada dos por tres, pero intentad que sea del estilo y procurad que no sea algo tan simple como vuestro nombre, el de vuestra mascota, vuestra fecha de nacimiento, grupo favorito, etc.

Uso de SSH en consola
  • Conectar

Ahora que tenemos SSH bien seguro es hora de que veais para qué sirve. Parto de que tenéis dos equipos, el que tenéis delante y al que queréis conectar. Obviamente debéis tener una cuenta en el segundo para poder entrar. La forma de conectar por defecto es la siguiente:

$ ssh tu_cuenta@ip_del_ordenador_remoto

Esto sería si no hubiéramos cambiado el puerto, ya que intentaría conectar por el puerto 22 que es el puerto por defecto del cliente. Podéis cambiarlo si queréis para que conecte por defecto por el puerto que le digáis en lugar del 22 editando el fichero /etc/ssh/ssh_config. Descomentáis (si está comentada) la opción “Port” y en lugar de “22″ ponéis el que queráis.

La otra opción, que es lo más normal, es simplemente indicarle en la línea de conexión qué puerto ha de usar:

$ ssh -p puerto tu_cuenta@ip_del_ordenador_remoto

Para que lo veais más claro os voy a poner un ejemplo. Mi portátil está en la ip 192.168.1.4 y el puerto SSH que tengo para el mismo es el 4884. La cuenta que voy a usar para conectarme es “pepino”, así que para conectar desde mi PC de sobremesa al portatil sería:

$ ssh -p 4884 pepino@192.168.1.4

Tras esto me pedirá la contraseña:

pepino@192.168.1.4's password:

La introducimos y tras un texto de “bienvenida” veremos que nuestro prompt ha cambiado a “nombre_cuenta@nombre_manquina”. Mi portatil se llama salamandra, así pues mi prompt es:

pepino@salamandra:~$

A partir de este instante tu consola está controlando el equipo remoto. Estarás en el home de tu cuenta en la máquina remota. ¿Qué podemos hacer?

  • Copiar ficheros

Seguramente es lo primero que se os ha pasado por la cabeza a algunos. Efectivamente podemos copiar ficheros fácilmente desde el ordenador remoto al que estamos usando en este momento, y es fácil (es una sóla línea):

$ scp ruta/archivo cuenta_en_ordenador_presente@ip_ordenador_presente:ruta/fichero

Complicado a priori, ¿verdad? En el fondo no lo es, una vez sabéis qué es cada cosa. ruta/fichero es el lugar donde está el archivo a copiar en la primera aparición, y el lugar donde se va a copiar en la segunda. cuenta_en_ordenador_presente es la cuenta que estáis usando (u otra) en el ordenador que tenéis delante (no el remoto). La ip_ordenador_presente es precisamente la ip de vuestro ordenador. Pero como siempre mejor con un ejemplo.

Supongamos que quiero copiarme un fichero llamado pepino.jpg que está en el escritorio de la cuenta “pepino” del portátil (el ordenador remoto) y quiero copiármelo en el home de la cuenta “tux” de mi ordenador presente, cuya ip es 192.168.1.6. Ya que estoy quiero aprovechar y cambiarle el nombre. Quiero que se llame pepinaceo.jpg en lugar de pepino.jpg. Escribiremos en el SSH (es una sóla línea):

$ scp /home/pepino/Desktop/pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

¿No funciona? ¿Sabes por qué? El puerto, recordad que lo cambiamos y aquí también tenemos que indicárselo. En el ordenador de sobremesa tengo abierto el puerto 8448, así pues (es una sóla línea):

$ scp -P 8448 /home/pepino/Desktop/pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

Nos pedirá la contraseña de la cuenta “tux” en el ordenador que tenemos delante y copiará el archivo:

pepino@192.168.1.4's password:
pepinaceo.png 100% 292KB 291.7KB/s 00:00

Y si ya estuvieramos en el escritorio (prompt: pepino@salamandra:~/Desktop$) no habría que poner toda la ruta si no queremos ya que tomaría la ruta relativa a la actual:

$ scp -P 8448 pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg

(Nota) Ojo con la ‘P’ que en este caso debe ser mayúscula.

Otra gracia del asunto es que no tienes por qué copiarlo a tu equipo actual. Si tienes acceso a otro ordenador más, puedes copiar algo de uno al otro del mismo modo, es decir, teniendo login en ambos y sabiendo su IP. Por otro lado si lo que queremos copiar es una carpeta, basta con añadirle el parámetro ‘-r’ para que copie todo su contenido (r=recursivo).

  • Otros usos

Básicamente cualquiera que se os pase por la cabeza. Daros cuenta que para un sistema GNU/Linux el interfaz no lo es todo, de hecho es prácticamente una aplicación que está corriendo bajo el propio sistema operativo, por lo que podéis administrar perfectamente vuestro equipo desde una consola y con acceso remoto vía SSH. Dentro de una conexión SSH, podéis reiniciarlo:

pepino@salamandra:~$ sudo reboot
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:45 …
The system is going down for reboot NOW!

O apagarlo:

pepino@salamandra:~$ sudo halt
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:51 …
The system is going down for halt NOW!

O usar cualquier otra aplicación de texto, como podría ser una que os presenté hace poco y que os podría venir muy bien en este caso: links. De esta forma si queréis podeís navegar en la consola y descargaros algo en vuestra máquina estando en otra.

El abanico de posibilidades es realmente inmenso.

SSH en Nautilus

Lo cierto es que si lo que queremos es simplemente copiar archivos o ver el contenido de alguno de ellos que están en otra máquina, podemos usar nautilus que siempre será más amigable para algunos que a través de consola.

No hay mucho cambio al respecto. Alt+F2 y escribid dentro “nautilus”. Se os abrirá el navegador de archivos. Nautilus tiene dos formas de mostrarte dónde estás dentro de la jerarquía de directorios. Una es a través de botones donde cada carpeta es un botón que puedes pulsar para volver atrás:

Y otra que te indica la ruta en modo texto:

Para cambiar de un modo al otro pinchad en el icono que está a la izquierda del todo que es un folio escrito y un lápiz. Nos quedaremos en el segundo modo y en la caja de texto de “Lugar:” escribiremos la orden de conexión:

ssh://tu_cuenta@ip_pc_remoto

Siguiendo con los ejemplos anteriores:

ssh://pepino@192.168.1.4

Esto sería si el puerto es el que está por defecto, como nosotros lo cambiamos tenemos que indicárselo con “:puerto” tras la ip. En nuestro ejemplo:

ssh://pepino@192.168.1.4:4884

Ahora nos pedirá la contraseña de la cuenta. Tenomos estas tres opciones:

Tomad la decisión que queráis. Personalmente yo soy de los prefieren tomarse la molestia de introducir la clave en cuestiones tan importantes como es la seguridad de SSH.

Tras esto nos colocará en la raíz de la máquina remota. Si lo que queríamos era que nos dejara en una carpeta determinada se lo podemos indicar en la línea de conexión. Por ejemplo en el escritorio de nuestra cuenta:

ssh://pepino@192.168.1.4:4884/home/pepino/Desktop/

Ahora podéis copiar archivos y carpetas con total comodidad desde vuestro escritorio GNOME.

Ejecutar aplicaciones gráficas remotamente

Otra cosa muy práctica que podemos hacer gracias a SSH es ejecutar una aplicación que no tenemos en el equipo actual pero sí en el remoto y trabajar allí. Es decir, puedes mirarlo como un servidor de trabajo gráfico. Si aún no queda claro os pongo otro ejemplo:

Mientras estábais fuera de casa el pesado de tu hermano se ha hecho con tu ordenador porque tiene que hacer algo y si no “se lo dice a mamá“. Sin embargo tú también tienes cosas que hacer en él. No hay problema. Te pones en el equipo de tu hermano y abres la aplicación que necesites de tu propio ordenador en el PC de tu hermano.

Práctico, ¿verdad? Pues es muy sencillo, basta con añadir un argumento más (-X) y el nombre de la aplicación que queremos usar. Por ejemplo imaginemos que queremos jugar a Doom en DOSBox, y en el ordenador de tu hermano no tenemos ninguna de las dos cosas. Podemos instalar DOSBox, copiar la carpeta de Doom, montarla y jugar. O también podemos ejecutar directamente DOSBox remotamente y montar el juego que ya tenemos en nuestro equipo:

$ ssh -X -p 4884 pepino@192.168.1.4 dosbox

Ahora tan sólo resta montar la carpeta como ya os mostré. Podéis introducir la ruta de vuestro PC pues en el fondo es en vuestro PC donde se está ejecutando todo.

Cambiar el mensaje de bienvenida

Ya saliendo de la parte práctica, he querido hacer esta pequeña sección dentro del manual para los fanáticos de la personalización como yo. Si recordáis cuando os expliqué la conexión por consola, os comenté que tras introducir la clave nos daba una especie de texto de bienvenida. Este texto de bienvenida es modificable y puedes poner lo que quieras. Este es el de mi equipo de sobremesa:

Para hacerlo es simple. Tienes que editar (con privilegios de administrador) el archivo /var/run/motd y escribir dentro lo que quieras que aparezca cuando alguien se conecte. Es decir:

$ sudo gedit /var/run/motd

Lo modificamos a nuestro gusto, guardamos y cerramos gedit.

Hace unos días mi amigo Kasual me pidió una y otra vez algún articulo que hablara un poco de la Terminal de Linux. Se que a todo el mundo no le agrada mucho el teclear comandos bajo la terminal pero hay gente que esto le empieza a ser apasionante y quieren aprender un poco mas. Para mi el teclear es algo que todavía no ha perdido su atractivo y me gusta defenderme en sistemas que no tienen un entorno gráfico para tirar de ratón.
En este articulo os voy a enseñar algo muy curioso y muy sencillo. Se trata de comunicarse entre Terminales.

¿ Para que puede servirnos ?

Imaginemos que estamos conectados a un servidor por ssh y necesitamos hacer algo sin interrupciones por parte de otro usuario que esté conectado desde otra Terminal como por ejemplo editar un archivo o simplemente compilar algún programa sin que el otro usuario nos modifique nada cuando nosotros estemos operando. Para esto podemos hacer dos cosas, llamar por teléfono a los que creamos que pueden conectarse o mirar nosotros mismos quien hay conectado a el servidor y enviarle un mensaje. Esta técnica también podríamos aplicarla para saber si hay algún intruso conectado a nuestro servidor y tomar medidas.

En mi caso he usado Linux Ubuntu aunque esta técnica funciona en la mayoría de distribuciones Linux actuales. Para ello usaremos el comando ” Who ” que es capaz de mostrarnos información sobre los usuarios que hay conectados y desde que Terminal.

Para comenzar vamos a abrir una Terminal desde el menú Aplicaciones -> Accesorios -> Terminal y vamos a teclear el comando …

who

entreterminales1

Como podemos ver se muestra el usuario, el numero de Terminal, la fecha y la hora en la que fue conectado. En estos momentos representa que nosotros estámos conectados a la Terminal ” pts/0 “. Ahora para hacer la prueba vamos a abrir otra Terminal y tecleamos de nuevo el comando …

who

entreterminales2

Como veis ha aparecido otro usuario nuevo llamado ” forat ” y con el nombre de Terminalpts/1 “. Dentro del directorio /dev/pts es donde nuestras terminales se van creado y es hay donde tenemos que mandar el mensaje.

Para enviar un mensaje a la nueva Terminal llamada ” pts/1 ” vamos a usar el comando ” echo ” que como muchos de vosotros ya sabéis es para enviar un texto a una salida estándar como puede ser una Terminal.

La forma que usaremos para enviar un texto a la otra Terminal es tan sencilla como la siguiente …

echo ” hola que tal, necesito reiniciar ¿ Estas haciendo algo ? ” >> /dev/pts/1

De este modo la Terminalpts/1 ” vera el siguiente mensaje …

entreterminales4

Aprender los secretos de la Terminal no es estrictamente necesario a la hora de usar Linux y menos si usamos Linux Ubuntu pero siempre es bueno tener nociones y saber hacer algo en concreto en el momento exacto que podamos necesitarlo.

Compartiendo carpetas con equipos Windows en Ubuntu Hardy Heron

1.- En la primera maquina elegís la carpeta a compartir, haces botón derecho de mouse arriba y te vas a opciones de compartición. Si no tenes el SAMBA instalado te guía como hacerlo.

2.- Marcas compartir esta carpeta, escribís el nombre de la carpeta compartida o le dejas el que tiene. Le das al botón crear compartición. y listo.

3.- En la otra PC para buscar la carpeta compartida, buscas en la dirección IP de la primera PC directamente en la barra del navegador de archivos poniendo por ejemplo: smb://192.168.1.1 ... ya deberias ver las carpetas compartidas.



La versión 8.04 de Ubuntu mejora un poco lo que es el compartir carpetas con usuarios de sistemas operativos Windows. Por desgracia, aún contiene ciertos detalles menores, aunque es mucho más cómodo que en versiones anteriores una vez que configuramos todo correctamente. A continuación se explica como compartir carpetas en Ubuntu.

Primero, vamos a la carpeta que queremos compartir, y elegimos Opciones de compartición.



Saldrá una nueva ventana, donde podemos configurar las opciones de compartición de la carpeta elegida. Si es la primera vez que lo hacemos, nos mostrará un diálogo indicándonos que el servicio de compartición no está instalado, y si deseamos instalarlo. Elegimos Instalar el servicio, seguido de lo cual, nos pedirá nuestra contraseña de usuario para instalar los paquetes necesarios (samba y libpam-smbpass).


Después de esto, ya podremos configurar las opciones para compartir la carpeta con los usuarios Windows, como el nombre compartido, y si deseamos que otros usuarios puedan escribir en ella.
No nos interesa el tema de la seguridad, asi que habilitamos el acceso de invitado, para que cualquier usuario dentro de nuestra red tenga acceso a la carpeta. Después de esto presionamos el botón de Crear compartición.

Aqui vendría el primer mensaje de error. Ubuntu nos diria algo como lo siguiente:

La «red compartida» devolvió el error 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error Permiso denegado You do not have permission to create a usershare. Ask your administrator to grant you permissions to create a share.

Cerramos la ventanita de Opciones de compartición. Hay dos maneras de solucionar esto:

1) Reiniciando el demonio de samba. Para ello, escribimos en una terminal lo siguiente:

sudo /etc/init.d/samba restart

2) En caso de que lo anterior no funcione, reiniciar todo el sistema.

Yo me decanté por la segunda opción. Después de ello, ya deberíamos de ser capaces de compartir carpetas sin problemas. Pero antes de esto, editamos el archivo smb.conf para poner el nombre de la red que usamos para trabajar. Escribimos en una terminal:

sudo gedit /etc/samba/smb.conf

En la sección [global], buscamos la opcion workgroup y cambiamos su valor al valor que usemos para el Grupo de trabajo de la red de Windows (click derecho en Mi PC - Propiedades - pestaña de Nombre de equipo). Guardamos los cambios, y reiniciamos samba con:

sudo /etc/init.d/samba restart

Después de ello, los equipos con Windows ya deberian de ser capaces de ver a nuestro equipo y lo que compartimos, y viceversa.

Pero, ¿qué pasa si queremos compartir carpetas de unidades NTFS montadas en nuestro equipo?

Si elegimos compartir alguna carpeta dentro de una unidad NTFS, nos mostraría el siguiente mensaje al intentar hacerlo:

La «red compartida» devolvió el error 255: net usershare add: cannot share path /media/Data/ISO as we are restricted to only sharing directories we own. Ask the administrator to add the line "usershare owner only = False" to the [global] section of the smb.conf to allow this.

Básicamente ahi mismo nos da la explicación del problema y su solución. En Ubuntu, las unidades son montadas por root. Nosotros somos usuarios de a pie, y por lo tanto no tenemos privilegios sobre éstas, entre los cuales está el poder compartirlas. Pero podemos decirle a samba que 'ignore' esto y baje su nivel de seguridad modificando el archivo smb.conf.
En una terminal escribimos:

sudo gedit /etc/samba/smb.conf

Nos vamos a la sección inicial, la [global], y agregamos:

usershare owner only = False


Cerramos guardando los cambios, y reiniciamos samba con:

sudo /etc/init.d/samba restart

Después de esto, podremos compartir cualquier carpeta que podamos ver, incluyendo las que estan dentro de unidades NTFS a las que tengamos acceso.

Un detalle: en mi caso, por alguna razón, al momento de agregar las carpetas que comparto, e inmediatamente después de iniciar el sistema Ubuntu, no veo nada en la Red en Ubuntu. pero pasado un minuto o dos, ya se puede ver lo que esté compartido. Este problema solo existe en modo gráfico, porque si quiero acceder a los shares en modo texto, no tengo el problema.

Ndiswrapper

Muchos de vosotr@s teneis problemas con Ubuntu porque no os detecta la tarjeta de red (ya sea interna o inalambrica tipo llave USB) y no podeis conectar a Internet. Esto en parte no es culpa de Ubuntu o de ningun otro Linux, le podriamos dar un pequeño tiron de orejas al fabricante del hardware, por no proporcionar un driver nativo para Linux. Con el tiempo ira cambiando, y seguramente dentro de poco no tengamos que pelearnos con compilar drivers, ni tonterias de esas para poder usar nuestro hardware en nuestro linux.

Pero para aquellos de vosotros que tengais problemas de conexion, tal vez esto os sirva de ayuda. Se trata de ndiswrapper y es una utilidad que nos permite usar la tarjeta de red en Linux a partir de los ficheros que se proporcionan con el driver de Windows. Es decir, usaremos el driver de Windows para poder conectar, pero usados dentro de nuestro Linux. A muchos no os servira, porque no estan soportadas todas las tarjetas, pero es cuestion de probar.

Me hubiera gustado comentar todo esto con un tutorial de los “buenos” pero por motivos temporales no podre escribirlo hasta dentro de unas semanas. De todas formas os dejo el siguiente video que cuenta paso a paso como instalar Ndiswrapper y configurar una tarjeta de red para poder usarla en Linux mediante esta aplicacion.

El video, por desgracia, esta en ingles, pero al ser grafico no es muy complicado de seguir. Asi que intentare hacer un resumen rapido.

Lo primero que hace el autor es usar el comando: “lspci” o “lsusb”. El primero es por si tienes una tarjeta de red interna, el segundo es para tarjetas basadas en USB. Con estos comandos nos aseguramos que el sistema las haya detectado correctamente y podamos utilizarlas.

Por ejemplo, en mi caso tengo un adaptador conceptronics inalambrico, asi que ejecuto:

jose@soledad:~$ lsusb
Bus 001 Device 001: ID 0000:0000
Bus 004 Device 002: ID 14b2:3c02 Atheros Communications Inc

Y veo que el sistema, al menos me la detecta y reconoce. Algo es algo.

Despues lo que hace es conectar a la pagina de ndiswrapper para bajarse el codigo de la aplicacion y compilarlo con el comando “make”.
Sin embargo y de acuerdo a lo leido en el blog de tac, ndiswrapper esta en el CD de ubuntu, asi que podriamos instalarlo siguiendo los siguientes pasos (no probado):

Después de instalar, y con el cdrom dentro del equipo se ejecuta

$ apt-cdrom add

para añadirlo a sources.list. A continuación, lo típico

$ apt-get install ndiswrapper-common ndiswrapper-utils-1.9

Bien, con ndiswrapper instalado. el autor del video se vuelve a conectar a la pagina de ndiswrapper y se descarga el driver de su tarjeta.

Listado de tarjetas soportado por Ndiswrapper

Aqui tu tendrias que buscar por la tuya (a ver si tienes suerte).
Te descargas el driver de tu tarjeta y lo descomprimes. Se te generara entonces una serie de ficheros, el que nos interesa es aquel que tenga extension .inf.

Para instalarlo con ndiswrapper se ejecuta con la opcion “-i”:

$ ndiswrapper -i fichero_con_extension_inf

Por ejemplo:

$ ndiswrapper -i bcmwl5.inf

Con esto se instalaria el driver para poder usarlo.
Ahora nos queda añadir ese interface de red. Para ello ejecutamos:

$ ndiswrapper -n

Se crea un alias llamado wlan0

Ahora levanta ese interface de red:

$ sudo ifconfig wlan0 up

Y si no hay problemas ya tienes ip nueva. Con ifconfig puedes ver la configuracion de red:

$ ifconfig

Prueba a hacer un ping para ver que tienes conexion:

$ ping www.google.com

Bueno y esto seria todo, lamento no poder detallarlo mas, pero espero que al menos sirva para que investigueis un poco, y consigais que funcione esa tarjeta de red puñetera.

jueves, 20 de noviembre de 2008

Wifi en ubuntu intrepid

Ya ha salido la nueva versión de Ubuntu y bueno ya se sabe… el lío de volver a configurar todo de nuevo, pero bueno, vamos a instalar el wifi y como Intrepid Ibex incluye DKMS no tendremos que volver a compilar drivers cada vez que se actualice el kernel. Y por cierto, como ya sabeis tengo un Samsung R60 Plus con una ATI X1250 (creo que era) y sus conocidos problemas con las distribuciones Live, pues con esta nueva versión ha cargado el Live!, bueno ¡vamos a instalar el wifi de una vez!

Tenemos que deshabilitar (si lo tenemos habilitado) lo referente al chip Atheros en Sistema > Administración > Controladores de hardware e instalamos los headers del kernel y el paquete con los compiladores

$ sudo apt-get install build-essential linux-restricted-modules-$(uname -r)

Ahora debemos crear una carpeta donde dejar los drivers y no borrarlos para que el DKMS pueda recompilar los drivers desde allí. Yo los voy a meter en /home/chipi/Drivers/Wifi

$ mkdir -p ~/Drivers/Wifi

$ cd ~/Drivers/Wifi

Ahora, en lacarpeta que hemos creado nos descargamos los drivers

$ wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6/madwifi-hal-0.10.5.6-r3861-20080903.tar.gz

Los descomprimimos y entramos en la carpeta

$ tar zxvf madwifi-hal-0.10.5.6-r3861-20080903.tar.gz && cd madwifi-hal-0.10.5.6-r3861-20080903

Ahora compilamos el driver y lo instalamos

$ make && sudo make install

Cargamos los módulos

$ sudo modprobe ath_pci && sudo modprobe ath_hal

Añadimos ath_pci a /etc/modules para que se cargue al inicio

$ echo ath_pci | sudo tee -a /etc/modules

Ahora reiniciaremos y listo, y podeis borrar el archivo .tar.gz, pero no borreis la carpeta o tendreis que compilar el driver cada vez que se actualice el kernel.

miércoles, 29 de octubre de 2008

Cifrado WEP

Las herramientas que vamos a utilizar son Kismet y la suite aircrack-ng. Necesitamos una tarjeta inalámbrica capaz de inyectar paquetes en la red. En mi caso, el chipset de la tarjeta es Atheros, por lo que los drivers utilizados son los de madwifi. Por desgracia, los drivers que trae Ubuntu de madwifi no están preparados para la inyección, por lo que hay que parchearlos. Podéis descargar la última versión de madwifi aquí.

Una vez los tengáis descomprimidos, debéis editar el fichero ath/if_ath.c y añadir las dos lineas en negrita:

struct ath_softc *sc = dev->priv;
struct ieee80211com *ic = &sc->sc_ic;
struct ath_hal *ah;
HAL_STATUS status;
[…]

wh = (struct ieee80211_frame *) skb->data;
try0 = ph->try0;
try0 = (ic->ic_opmode == IEEE80211_M_MONITOR) ? 1 : ph->try0;

También tenéis parches para madwifi con aircrack aquí. Una vez hecho esto, volvemos al directorio padre y ejecutamos make, si todo va bien, ejecutamos make install y tenemos los drivers listos. Ahora un modprobe ath_pci cargará el módulo de los drivers en el kernel. Se puede añadir una entrada en /etc/modules para que el módulo se cargue cada vez que arranque el sistema.

Bien, tenemos los drivers instalados y parcheados, ahora toca instalar kismet y configurarlo. Este paso es opcional, ya que uso kismet sólo por comodidad, puesto que me da más información sobre las redes y los clientes conectados. En fin, si decides usar kismet, lo primero que tienes que hacer es descargarlo (aptitude install kismet) y configurarlo editando kismet.conf. Son sólo dos cosas las que hay que tocar en este fichero, en primer lugar:

suiduser=adrian
source=madwifi_b,wifi0,kismet

Estos son los valores en mi caso. El suiduser es el nombre del usuario de tu máquina. Source incluye chipset, nombre de interfaz, nombre de servidor (este último que sea siempre kismet). El chipset se puede consultar en la documentación de kismet, en el punto 12. Los usuarios de atheros, aseguraos de poner la interfaz wifiX, no athX, o no funcionará. Una vez hecho esto, debemos ejecutar kismet como root desde la terminal. Igual la interfaz asusta un poco, pero es sencilla, podemos ver las redes: verde encriptada, amarillo abierta. Con ’s’ podemos ordenar las redes en función de la calidad de la señal, del número de paquetes capturados… Con ‘i’ te muestra toda la información de una red en concreto, y con ‘c’ el número de personas conectadas a esa red. Se retrocede con ‘q’.

0. Poner la interfaz en modo monitor

Los usuarios de chipset atheros, debemos iniciar el modo monitor con:

airmon-ng start wifiX

donde X es el número de la interfaz. Esto creará una interfaz ath1 en modo monitor, que será la que usaremos a partir de ahora. Otros chipsets pueden funcionar con:

iwconfig ethX mode monitor

Este paso es imprescindible, si no, no podrás capturar los paquetes de las redes que haya a tu alrededor.

1. Capturando paquetes

Usaremos airodump-ng para este propósito. Existen cantidad de opciones para según cómo queramos realizar la captura. Como ya hemos fijado el objetivo con kismet, podemos reducir la captura a un canal determinado y a una red en concreto con:

airodump-ng -bssid XX:XX:XX:XX:XX:XX –channel N -w captura.cap ath1

NOTA: channel va precedido de guión doble, pese a que no se vea.

Analicemos esto. La opción -bssid indica la red a la que queremos capturar paquetes, donde las X representan la dirección mac del punto de acceso, que podemos obtener del kismet. Fijamos el canal en el que escuchamos con –channel e indicamos al programa en qué fichero realizar las capturas con -w. Si no se va a utilizar aircrack-ptw (recomiendo usarlo, es más rápido) se puede añadir la opción –ivs, ya que aircrack-ng sólo hace uso de las IVs.

Capturando paquetes

2. Atacando

Tenemos varias técnicas a nuestro alcance para llevar a cabo nuestro objetivo. En realidad son 5, pero veremos las 3 más útiles (las otras dos os las dejo de deberes)

  • 2.1. Desautenticación

Este ataque desconecta a los usuarios de la red, provocando tráfico ARP cuando tienen que volver a conectarse. Como habréis adivinado, es un ataque inútil si no hay clientes conectados.

aireplay-ng -0 5 -a XX:XX:XX:XX:XX:XX -c ZZ:ZZ:ZZ:ZZ:ZZ:ZZ ath1

Bien. El -0 indica el tipo de ataque (desautenticación), las X son la mac del punto de acceso contra el que realizaremos el golpe, y las Z el cliente al que queremos desconectar. Si no se especifica -c, el ataque se realiza contra todos los clientes conectados a la red. Este ataque es útil para averiguar el ESSID en redes con ESSID oculto, ya que al generar una petición de autenticación nueva podremos capturar ese dato.

  • 2.2. Falsa autenticación

¿Cómo atacamos una red sin clientes? Fácil, nos autenticamos contra el AP y capturamos nuestro propio tráfico. Tened en cuenta que en realidad esto no es que hayamos accedido a la red, sino que de alguna manera nos hemos “vinculado” al router.

aireplay-ng -1 0 -e ESSID -a XX:XX:XX:XX:XX:XX -h ZZ:ZZ:ZZ:ZZ:ZZ:ZZ ath1

El -1 indica el tipo de ataque. El 0 indica cada cuanto tiempo se realizará el ataque, en este caso cada 0 segundos indica una sola vez. Si se sustituye por 10 intentará autenticarse cada 10 segundos. Con -e se indica el ESSID, con -a la mac del AP (punto de acceso) y con -h la mac que vamos a utilizar. En principio la mac especificada con -h no tiene porque ser la nuestra, ni tiene por qué ser real, si bien algunos AP no aceptan falsas macs, para los que sí lo hagan es más seguro utilizar una falsa. Existen varios motivos por los que la autenticación puede fallar, que yo haya visto:
Distancia: Estamos demasiado lejos del AP. Podemos probar a reducir la velocidad de la tarjeta con:

iwconfig interfaz rate 1M

Esto puede producir que el ataque no termine. Con la opción 0 es probable que llegue a acabar, pero con un valor distinto, puede que se trate de autenticar de nuevo antes de haber terminado la autenticación anterior. Si este es el caso, lo mejor es realizar el ataque con la opción 0 repetidas veces, con un pequeño script en bash o similar.

Filtrado MAC: La cosa se ha puesto difícil, pero no del todo. Si está activo un filtro mac, el AP rechazará nuestra autenticación, salvo que utilicemos una mac admitida. Podemos fijarnos en las macs de los clientes y anotarlas para autenticarnos con ellas cuando se hayan desconectado. También podemos realizar el ataque 0, desautenticarlos y conectarnos nosotros, pero es una manera innecesaria de dar la nota (¡el cliente real se queda sin red!).

Si funciona, obtendremos una salida similar a “Association succesfull :)”

  • 2.3. Reinyección de paquetes ARP.

El airodump-ng está capturando, pero va despacio. Depender sólo de los paquetes del cliente conectado o de los que generamos nosotros con autenticaciones falsas podría alargar el proceso ad aeternum, o hacemos algo o el valor de la columna Data (el que realmente interesa) nos hará desesperar. El asunto será recoger una serie de paquetes ARP generados por el AP con los ataques 0 o 1 y los reinyectaremos para generar tráfico adicional.

aireplay-ng -3 -b XX:XX:XX:XX:XX:XX -h ZZ:ZZ:ZZ:ZZ:ZZ:ZZ ath1

El -3 indica, como siempre, el tipo de ataque, con -b indicamos la mac del AP y con -h la de algún cliente conectado a la red (Podemos ser nosotros mismos con una mac falsa del ataque 1). Adicionalmente se puede añadir con -x el número de paquetes por segundo. Suele funcionar mejor cuando se fija un valor distinto al default, que si no recuerdo mal es 400. Es importante realizar el ataque 0 o 1 para que este ataque pueda obtener algún ARP que reinyectar. Podemos poner a correr este ataque en una terminal y en otra tratar de desautenticar algún cliente o autenticarnos con una mac falsa. Si funciona, el número que hay entre paréntesis debería empezar a aumentar, y en airodump-ng, la columna Data debería crecer con rapidez.

Reinyectando ARP

3. Obteniendo la clave

Si usamos aircrack-ng en lugar de aircrack-ptw (recordad no usar –ivs para este método) necesitaremos alrededor de 400 000 paquetes para una clave de 64 bits, y cerca de 1 000 000 para una clave de 128 bits. Con aircrack-ptw los números son bastante menores. En cualquier caso, la ventaja es que no hace falta parar de capturar paquetes para poner a trabajar aircrack (cualquiera de los dos). Abrimos una terminal mientras se está capturando tráfico y probamos suerte con:

aircrack-ng -a 1-n 64 captura.cap

Existen otros parámetros adicionales, como -f que indica el nivel de fuerza bruta del ataque, con -a el tipo de encriptación (1 para WEP), y con -n el número de bits de la clave. Por defecto busca claves de 128 bits, así que si queremos que busque 64 se le especifica. Al buscar claves de 128 bits, también encontrará las de 64, aunque tardará algo más. Si queremos usar aircrack-ptw:

aircrack-ptw captura.cap

Bueno, eso ha sido todo por hoy, que ya me parece bastante. Espero que sea útil y si hay alguna duda o alguna puntualización, usad los comentarios que para eso están.

domingo, 21 de septiembre de 2008

Ubuntu: actualizar a la última versión estable de Compiz Fusion desde los repositorios

Acabo de leer en el blog de Tom Dryer que el proyecto Compiz Fusion mantiene un repositorio de Ubuntu en su espacio de Launchpad. En él están los paquetes correspondientes a la última versión estable liberada de Compiz Fusion, la 0.7.6. El escritorio como un cilindro o esfera, nuevos efectos de escritorio, mejoras en el rendimiento y la estabilidad… muchas novedades con respecto a versiones anteriores, pero esta vez sin tener que instalar versiones que están en plena fase de desarrollo.

Ya comentamos cómo instalar la última versión de desarrollo del gestor de efectos de escritorio usando un script que automatiza el proceso de instalación. Sin embargo, para actualizar a esta última versión estable sólo tendremos que añadir este repositorio a la lista de orígenes del software y actualizar el sistema.

Podemos hacerlo fácilmente siguiendo estos pasos:

1. Seleccionar y copiar una de las tres líneas de repositorios que vienen a continuación, dependiendo de en qué sistema se vaya a instalar (Hardy, Intrepid o Gutsy):

deb http://ppa.launchpad.net/compiz/ubuntu hardy main

deb http://ppa.launchpad.net/compiz/ubuntu gutsy main

deb http://ppa.launchpad.net/compiz/ubuntu intrepid main

2. Ir a Menú principal -> Sistema -> Administración -> Orígenes del Software y en la pestaña de Software de terceros hacer click sobre el botón “Añadir”. Pegar la línea del repositorio anteriormente copiada.

3. Recargar la lista de orígenes y comprobar que el gestor de actualizaciones quiere descargar los paquetes referentes a la última versión de Compiz Fusion.

4. Reiniciar.

Teniendo seleccionado el nivel Personalizado en el menú de Preferencias -> Apariencia -> Efectos Visuales, para tener un pleno control de todos los efectos y sus diferentes opciones es vital usar el CompizConfig Settings Manager, que puedes instalar fácilmente ejecutando el comando:

sudo apt-get install compizconfig-settings-manager

También es recomendable tener instalado Fusion Icon, el icono del área de notificación desde el que controlar todo lo referente a Compiz Fusion a golpe de ratón.