lunes, 13 de mayo de 2013

Comandos básicos en linux sobre las conexiones wireless

También incluiremos algunos comandos que permiten una mayor comodidad de trabajo dentro del entorno linux.  Observaciones
Somos muchos los que hemos pasado a linux para poder poner nuestra tarjeta made in nosedonde.Si directamente nos reconoce la tarjeta perfecto pero sino amigo hay que arreglarselas. Y no obsesionarse con una instalación rápida para poder navegar de forma gratuita.
 
Muchos nos encontramos con diferentes problemas, pero la mayoría no son debido a que nuestratarjeta no este reconocida en linux, si no que no damos con el driver adecuado. Esto es lo mas importante.
Y además lo mas de lo mas:
Tener en cuenta que hay que tener instaladas la fuentes de kernel y/o las cabeceras correctas, sin esto lo del típico make all,make y make install no vale para nada.
Sin las fuentes instaladas y al ejecutar make nos da un error (lógicamente) la mayoría piensa que no les funciona su tarjeta y lo dejan estar, pero amigo no es ese el problema, la realidad es otra.
Así que perder un poco de tiempo en ver como funciona este nuevo mundo.

Cada distribución o live cd linux presenta formas diferentes de instalar y/o bajar sus fuentes y/o cabeceras (headers), así que en función de lo que tengan, necesitaran actuar de una forma u otra.
También hay distros que ya instalan de serie estos requisitos pero la mayoría no, así que hay que tener cuidado.

Por lo tanto, al instalar un modulo de un driver en cualquier linux recuerden, primero hay que comprobar que se tengan las cosas bien instaladas, así como las herramientas de compilación.

En /lib/modules/tukernel debe de existir un fichero build, pero es un enlace simbólico. Es como un acceso directo en Windows en el escritorio.
Y ese enlace debe de apuntar a /usr/src/tukernel si no es así, no se puede seguir.

Una vez superado esto hay que leer siempre el fichero Readme de los drivers que no hemos bajado y seguir los pasos, pues a veces es recomendado ejecutar otros comando antes que el típico make && make install por ejemplo la ejecución de:
./configure

Comandos básicos

Solo pretende ser una guía para principiantes en el mundo wireless a través de linux.
Hay que decir que no todas las opciones se permiten para todas las tarjetas.
También citar que en función de una configuración se podrán utilizar o no otros comandos, sol es probarlo.
Mediante comando --help encontramos todas la posibles entradas. Para algunos comandos como iwconfig y iwlist es necesario tener instaladas correctamente las linux-wireless-extensions (yo he trabajado con la versión 26). Y obviamente la tarjeta correctamente instalada y con sus drivers correctos. Recuerden que muchas acciones hay que hacerlas como administrador. Tecleamos su (dependieondo de la distro) y posteriormente cuando nos pida Password lo introducimos.
------------------- iwconfig --------------------

iwconfig : esto nos dira las interfaces que tenemos.
iwconfig [interface] [opción]

[interface] = tipo eth0, ath0 ejemplo iwconfig ath0

Nos dará información de como esta configurada la tarjeta inalámbrica.

iwconfig [interface]: ejemplo iwconfig ath0

Nos dirá toda la información de la configuración de red inalámbrica (nombre de red, canal, nivel de señal, velocidad, potencia, encriptación de wep, punto de acceso.

Si es FF23F5F87F3F12F es que no esta asociado a ninguno.

iwconfig --versión

Nos dirá la versión que utilizamos de las wireless-extensions y la recomendada para nuestro interface inalámbrico.

[opción]

essid Nombre_red: ejemplo iwconfig ath0 essid "Wireless 1"

Nos servirá para configurar nuestra red con el nombre que queramos o a la que queramos asociarnos. Nombre de red.

mode monitor: ejemplo iwconfig ath0 mode monitor

Para capturar trafico de redes externas.

mode managed: ejemplo iwconfig ath0 mode managed

Lo que venia siendo en Windows modo infraestructura mediante puntos de acceso y/o router.

mode ad-hoc: ejemplo iwconfig ath0 mode ad-hoc

Para conectar varios PCS sin puntos de acceso.

channel número _ canal: ejemplo iwconfig ath0 channel 6

Fijamos el canal elegido para nuestra tarjeta.

Podemos también utilizar la frecuencia.

freq ValorGhz: ejemplo iwconfig ath0 freq 2.412G

Fijamos el valor de frecuencia para nuestra tarjeta. Podemos también utilizar el canal .

Tenemos para:

canal 1= 2.412G canal 2= 2.417G canal 3= 2.422G canal 4= 2.427G canal 5= 2.432G canal 6= 2.437G
canal 7= 2.442G canal 8= 2.447G canal 9= 2.452G canal 10= 2.457G canal 11= 2.462G canal 12= 2.467G
canal 13= 2.472G canal 14= 2.484G


rate valorvelocidad: ejemplo iwconfig ath0 rate 11M

Fijamos la velocidad en las comunicaciones para 802.11b. Podemos también utilizar 54M. O ponerlo en modo automático.

iwconfig ath0 rate auto

Para que la tarjeta elija la velocidad adecuada, incluso iwconfig ath0 rate 54M auto

frag valorfragmentación: ejemplo iwconfig ath0 frag 4096

power period :ejemplo iwconfig ath0 power period 60

Tiempo actividad la tarjeta cuando no se utiliza alguna conexión a red. Por lo tanto en modo monitor la captura de datos caería a la hora.

-------------------- iwlist --------------------


iwlist [interface) [opción]

Acordaros de que podéis poder obtener todas los argumentos posibles para este y casi todo los comandos mediante iwlist --help
Igual que antes interface=ath0, eth0 la que tengamos y salga con el iwconfig o el ifconfig.

[opción]

scan: ejemplo iwlist ath0 scan

Nos mostrara información de todas las redes inalámbricas que nuestra tarjeta detecta. Obviamente en modo monitor dará cero resultados. La diferentes redes que se detectan pueden cambiar, por lo tanto no vamos a estar todo el rato introduciendo este comando. Hay herramientas que dan información de lo que hay en tiempo real. El airodump en modo monitor puede hacer un barrido en tiempo real de las redes próximas. Además graba en un fichero todas las detecciones aunque solamente haya sido en un momento puntual, esto sirve para saber si necesitamos colocar una antena para recibir con mayor calidad y señal posible redes a analizar. El airodump hace más cosas y hay mas herramientas para la detección como el kismet, etc.

frequency: ejemplo iwlist ath0 frequency

Nos mostrara los diferentes valores de frecuencia y su correspondencia en el numero de canal validos para nuestra tarjeta así como la frecuencia y el canal en el que se encuentra en esos momentos la tarjeta. Ejemplo: Mediante aviso en pantalla current frequency =2.412GHz (Channel 1). En modo monitor al hacer un barrido de diferentes canales y si ejecutamos este comando varias veces veremos que la frecuencia actual (current frequency) va cambiando.

channel: ejemplo iwlist ath0 channel

Es igual que el anterior

rate: ejemplo iwlist ath0 rate

Nos indica las velocidad de comunicación que nuestra tarjeta soporta así como la velocidad actual (mediante current bit rate).

Para un ping igual que en windows: ping 192.168.1.1

-------------------- ifconfig --------------------


Para observar la configuración de la red tanto inalámbrica como ethernet.

Ejemplo: ifconfig o ifconfig eth0

Para levantar la red: ifconfig eth0 up. Este es muy importante.

Para bajar la red: ifconfig eth0 down

Para reiniciar la red: /etc/rc.d/init.d/network restart

Para cambiar la dirección MAC:

ifconfig <interface> down hw ether xx:xx:xx:xx:xx

ifconfig <interface> up

Donde XX corresponde a 2 dígitos hexadecimales.

Ejemplo:

ifconfig ath0 down hw ether 11:22:33:44:55:66

ifconfig ath0 up

Para obtener ip por dhcp, si esta configurada para ello:

pump -i eth0 si el tipo de cliente para obtener ip por dhcp es ese

Para diversas configuraciones podemos atacar sobre el archivo situado en: /etc/sysconfig/network_scripts/ y que corresponda al tipo ifcfg-(interface)/

Ejemplo ruta completa: /etc/sysconfig/network_scripts/ifcfg-eth0

Vamos y lo modificamos.

Por ejemplo para obtener dhcp debemos tener o colocar BOOTPROTO=dhcp y el tipo de cliente para dhcp ejemplo: DHCP_CLIENT=pump, también tenemos dhclient, dhcpcd y dhcpxd.

Ejemplo de fichero en /etc/sysconfig/network_scripts con el nombre ifcfg-ath0

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
MII_NOT_SUPPORTED=no
WIRELESS_MODE=managed
WIRELESS_ESSID=WIRELESS
WIRELESS_FREQ=2.437G
WIRELESS_RATE=54M
DHCP_CLIENT=pump
NEEDHOSTNAME=yes
PEERDNS=yes
PEERYP=no
PEERNTPD=no


Por comandos se determina la ip, la mascara y el broadcast de la siguiente manera:

ifconfig ath0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up

y la puerta de enlace como:

route add default gw 192.168.1.1

Tener en cuenta que si tenemos varias interface podemos asignar un default (puerta de enlace para cada interface). Como, así:

route add default gw 192.168.1.1 (tuinterface)

Ejemplos:

route add default gw 192.168.1.1 eth0

route add default gw 192.168.1.1 ra0


Es interesante hacer un route antes y después de añadir el ultimo comando. Ejemplo de lo que debe aparecer:


[root@halcon halcon]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 10 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 10 0 0 ra0
default 192.168.1.1 0.0.0.0 UG 0 0 0 ra0
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0


Como ven tengo 2 puertas de enlace para diferentes tarjetas.

Si queremos eliminar una de ellas para poder sobrescribirla tenemos:

route del default

Nos faltan los DNS:

Para esto editamos el fichero resolv.conf. Su ruta exacta debe de estar en /etc/resolv.conf

Ahí va un ejemplo:

Mi nombre de usuario es: cowper Entonces:

search cowper
nameserver 192.168.1.1


Esto es lo que debe aparecer en mi fichero para poder navegar correctamente.

En todo caso si modificamos el fichero después debemos de reiniciar la red con:

Para reiniciar la red: /etc/rc.d/init.d/network restart

Cualquier cambio con comandos no son para siempre es decir al iniciar el PC el sistema operativo siempre carga la configuración del fichero que he citado, al igual que cuando se reinicia la red, tenerlo en cuenta.

También es útil probar lo siguiente para verificar que no hay problemas:

modprobe wlan
modprobe [interfaz]
Ejemplo: modprobe ath0

Animarse a pasarse a linux

Cada cual es libre de trabajar con un determinado sistema operativo sea windows, una distro completa o un live cd, ya que cada uno se alimenta su propio cerebro y solo el determina su camino. Pueden trabajar en ambas plataformas, pero no se cierren en una sola, prueben todas las que puedan en la vida, y quédense con la mejor que se adapta a sus necesidades, y traten de ser de mentes abiertas... Es un consejo

Linux puede definirse como una herramienta de potencia brutal en entornos de auditoria inalámbricas, no lo descarten, y sobre todo tengan mucha paciencia, solo les pido que como mínimo, la misma pasiencia que hemos tenido con windows en el pasar de los años.

Pequeños trucos

Que nos serán muy útiles;

Interesante el comando lspci

Nos da información del hardware que reconoce nuestro linux.

Y el comando lsmod

Nos da información de los módulos instalados

pwd

Si en cualquier momento queremos comprobar en que directorio te encuentras en tu sistema linux puedes hacerlo ejecutando este comando (print working directory).

Traducido viene a ser "muestra el directorio de trabajo"

Ejemplo:

[root@wireless init.d]# pwd

/etc/init.d

shopt -s cdspell

Este me gusta mucho y seguro que a mas de uno. La opción cdspell corregirá automáticamente (haciendo uso de una herramienta de corrección ortográfica) los errores tipográficos cometidos en las ejecuciones del comando cd.

Ejemplos:

[root@wireless /]# cd /us1r/srcs/linnux-2.6.11-6mdk
/usr/src/linux-2.6.11-6mdk
[root@wireless linux-2.6.11-6mdk]# pwd
/usr/src/linux-2.6.11-6mdk

[root@wireless linux-2.6.11-6mdk]# cd /etcq/initd
/etc/init.d
[root@wireless init.d]# pwd
/etc/init.d


El sistema de corrección que añade la opción cdspell es muy interesante, pero en cualquier caso limitado, si se comete más de un error en una parte de la ruta no es capaz de corregirlo pero si lo corrige si se produce en partes diferentes.
Además, tener en cuenta que si realizamos la ejecución en línea de comandos, el efecto solo se mantendrá en la sesión de terminal en curso y no cuando lancemos nuevas sesiones.

Gzip, Bzip y Tar en modo texto
 A pesar de que muchos programas son distribuidos en paquetes RPM o DEB a veces (muchas, casi la mayoría) hay situaciones donde tenemos que compilar las fuentes del programa.
Por lo general son suministrados en ficheros con extensión .tar.gz o .tar.bz2 ( y también sus versiones abreviadas - .tgz o .tbz2). Para desempaquetarlos se necesita el programa Tar, así como los programas Gzip y Bzip2. Nos puede parecer raro que son necesarios 2 programas. Esto resulta del hecho de que el programa Tar únicamente une varios ficheros en uno (con extensión .tar), el cual no es sometido a ninguna compresión. En efecto, el archivo puede ocupar mas espacio que los archivos originales. Por esa razón, se crearon los programas Gzip y Bzip2, que ofrecen compresión.

El desempaquetado.

Tenemos el fichero archivo.tar.gz y nos preguntamos qué hacer con él. Es un archivo creado con el programa Tar (tiene la extensión .tar) y después comprimido con el programa Gzip (tiene la extensión .gz). Podemos llevar a cabo el proceso al revés. Primero descomprimimos el archivo con la instrucción :


gzip -d archivo.tar.gz

El argumento -d significa descompresión. Eventualmente podemos usar gunzip en lugar de gzip -d.
Como resultado obtenemos el archivo archivo.tar (notamos que el fichero archivo.tar.gz ¡desaparece!). Para desempaquetar este archivo lanzamos la instrucción:


tar -xvf archivo.tar

Los argumentos que se encuentran detrás del guión significan que debe llevarse a cabo el desempaquetado (x - extract) de los ficheros, cuyos nombres deben ser visualizados en la pantalla (v - verbose), y se hallan en el archivo con el nombre dado después del parámetro f (file). El guión no es obligatorio en esta instrucción.
Toda la operación se puede realizar con una instrucción, y eso gracias a la cooperación de los programas Tar y Gzip. Basta con utilizar en la instrucción tar la opción -z, para que el archivo antes de desempaquetarlo sea descomprimido con el programa Gzip, es decir, nuestra instrucción puede tener la siguiente forma definitiva:

tar -xzvf archivo.tar.gz

tar xzvf archivo.tar.gz

Probar los dos.

En el caso de Bzip2 la situación es prácticamente idéntica. en las instrucciones anteriores basta con cambiar gzip por bzip2 y gunzip por bunzip2, y el argumento z de la instrucción tar por el argumento -j. Por supuesto, también cambian las terminación de los nombres de los ficheros z (.gz por .bz2). La instrucción final puede verse así:

tar xjvf archivo.tar.bz2

tar -xjvf archivo.tar.bz2


Para entornos gráficos tenemos más posibilidades.

Para servidor gráfico tipo KDE tenemos el programa ARK, y esta totalmente integrado, es decir podemos usar el botón secundario del ratón para desempaquetar y descomprimir de forma directa este tipo de archivos. Realmente es muy útil y el que más uso.
En modo grafico obtendremos 2 ficheros el original y el completamente desempaquetado y descomprimido y colocado en la ruta que deseamos. Si Ark encuentra algún obstáculo en la extracción nos lo avisara y nunca procederá a la extracción automática.
Pero no todos desean usar KDE, por suerte existe File Roller, el cual cumple las mismas funciones que Ark, incluso tiene algunas y más mejoras.

No me arranca el entorno grafico

Para saber los posible errores que ocurren al intentar iniciar el entorno grafico lo mejor es ir a los logs, que normalmente se encuentran en /var/log/ con el nombre de XFree86.N.log ( donde N es un numero igual o mayor a 0).
El archivo de configuración del ratón, monitor, resolución, tarjeta grafica, es:

/etc/X11/XF86Config ó /etc/X11/XF86Config-4

La forma mas cómoda de configurar los periféricos que antes he dicho es a través del comando:

xf86cfg -textmode

Aunque también se puede hacer directamente sobre el fichero de configuración que antes he dicho mediante cualquier editor de texto, como podría ser: nano, pico, emacs, vi, gedit...

Una vez reconfigurado el entorno grafico es necesario iniciar el entorno grafico ( las X's ), esto se hace a través del comando: startx

Configurando una red local en linux

Para configurar la red lo primero que tenemos que saber es que interfaz de red usamos, por lo normal suele ser eth0 pero también podéis estar usando eth1 así que vais cambiando hasta que os funcione.

Primero nos damos permisos de root y despues manos a la obra. Supongamos que nuestra interfaz de red es eth0 y que no estamos usando DHCP.

* Configurando la tarjeta: *

ifconfig eth0 <ip_privada> broadcast <ip_broadcast> netmask <ip_netmask> up

Creo que esta claro lo que hace esta línea pero por si acaso...:

<ip_privada>: Hay que sustituir esto por nuestra IP privada.

<ip_broadcast>: Hay que sustituir esto por nuestra IP broadcast que por lo general suele ser la misma que la IP privada solo que varían los últimos tres dígitos que se cambian por 255.

Ejemplo: IP-PRIVADA = XX.X.XXX.XXX pues entonces la IP-BROADCAST quedaría XX.X.XXX.255.

<ip_netmask>: Esta es la mascara de red y casi siempre suele ser 255.255.255.0 a no ser que lo encuentren reconfigurado.

Si queremos observar los cambios ponemos: ifconfig

* Colocando las DNS en su sitio...: *

Ahora tan solo tenemos que añadir las DNS al archivo resolv.conf para que nos funcione (siempre como super usuario):

echo "nameserver 80.58.0.33" > /etc/resolv.conf
echo "nameserver 80.58.32.97" >> /etc/resolv.conf


Con la primera línea lo que hacemos es enviar la línea nameserver 80.58.0.33 al archivo resolv.conf y si no existe lo crea automáticamente.
Con la segunda línea lo que hacemos es añadir la línea nameserver 80.58.32.97 al archivo resolv.conf

Cuidado cuando pongan ">" y ">>" porque el primero sirve para crear el archivo y si lo volvemos a poner igual sustituimos el archivo y por eso se ponen dos ">>" para indicarle que "añada" al archivo esa línea a continuación de lo que ya hay en resolv.conf.

* Resumen:

ifconfig eth0 10.7.191.176 broadcast 10.7.191.255 netmask 255.255.255.0 up
route add default gw 10.7.191.1
echo "nameserver 80.58.0.33" > /etc/resolv.conf
echo "nameserver 80.58.32.97" >> /etc/resolv.conf


CONFIGURANDO UNA RED LOCAL MEDIANTE "DHCP" (Dynamic Host Configuration Protocol):


En este caso es muy similar solo que tenemos que tener instalados los paquetes dhcp y dhcp-client.

Ahora ponemos:

dhcpd eth0

Y ahora tenemos que configurar la puerta de enlace como arriba y añadir las DNS igual que arriba:

route add default gw <PASARELA>
echo "nameserver 80.58.0.33" > /etc/resolv.conf
echo "nameserver 80.58.32.97" >> /etc/resolv.conf

No hay comentarios:

Publicar un comentario