sábado, 31 de agosto de 2013

Como rutear todo el tráfico de tu PC o tu router por un tunel SSH

Como rutear todo el tráfico de tu PC o tu router por un tunel SSH

Otro título sugerido: Como hacerle la vida imposible a tu sysadmin – parte 2

Si no leyeron el artículo anterior: Como hacerle la vida imposible a tu sysadmin deberían empezar por ahí para entender de que estoy hablando. Para los cortos de tiempo resumo brevemente:
Por un lado: Tenés acceso a una PC que remotamente corre Linux, puede ser un servidor que administres o la PC de tu casa, da lo mismo. No hace falta disponer de privilegios de super-usuario en la PC remota. Esta PC remota corre un servidor SSH que te permite login remoto.
Por el otro: La persona que administra la red de tu trabajo te tiene impedido, no te permite chatear, usar Facebook o Twitter, no podés navegar por ciertas páginas o usar ciertos servicios.
Otra posibilidad: Estas conectado desde una red “pública” en un bar, aeropuerto o simplemente robándole internet el vecino y no tenés ninguna manera de saber quien podría estar olfateando los paquetes de datos que van y vienen, sobre todo ahora, que herramientas como Firesheep hacen que un ataque man-in-the-middle que siempre fue cosa reservada para unos pocos elegidos sea coser y cantar.
También podrías usar este sistema (o un buen tunel SSH por cada servicio a rutear haciendo las veces de Socks Proxy con todas las incomodidades que conllevaría) si estás conectado desde un enlace poco fiable en donde la pérdida de paquetes está fuera de discusión.
O si ninguna de las anteriores te convence: Simplemente por que nunca se es lo suficientemente paranoico, otro mini tutorial: Como encriptar TODO el tráfico que genera tu PC y rutearlo remotamente para evitar cualquiera de los escenarios anteriores.

Usando SSH para rutear todo el tráfico TCP que se genere en tu PC hasta un host remoto.

¿Y por que no simplemente una VPN o un tunel SSH pensarán ustedes? Por todo lo siguiente:

  • No necesitas instalar una VPN en ambas puntas.
  • No necesitas privilegios administrativos en el servidor.
  • El servidor no necesariamente tiene que correr Linux.
  • Ni siquiera Hamachi es lo suficientemente simple en comparación.
  • Nunca vas a perder paquetes, la sesión SSH puede que pierda paquetes, inconveniente que TCP se encargará de solventar por vos con lo que tu conexión se vuelve mucho mas confiable.
  • No necesitás instalar nada en ninguno de los dos extremos, solo el interprete de comandos Python (Si llegaste hasta acá, sabés de que estoy hablando y obviamente tenés Python instalado).
  • Si quisieras routear mas de un servicio por medio de un tunel SSH deberías establecer una sesión SSH por cada uno de ellos y hacer uso de la tabla nat de iptables para redirigir paquetes, muy complicado de implementar cuando lo único que necesitás es una conexión fiable y encriptada y la necesitás ya mismo.

Ahora si, a los bifes:

Toda la magia radica en una maravillosa pieza de software escrita en Python por un tal Avery Pennarun que ha sido dada en llamar sshuttle (que conveniente) que se encarga de crear un tunel SSH a modo de proxy transparente y reenviar todo el tráfico que generan todas tus aplicaciones -salvo por las peticiones a los servidores de DNS, seguramente pensando en un relay local con caché, pero inclusive esto último también se puede enviar por el tunel llegado el caso- hasta un script también basado en Python que sshutlle se encargó previamente de subir y poner a correr en el servidor remoto. Este script es el que recibe el tráfico y lo reenvía de ida y vuelta. Todo lo anterior a su vez gracias a un par de reglas de redirección basadas en iptables con lo cual ni haría falta que te lo especifique pero va por las dudas, los requisitos:
  • Git
  • Python
  • Iptables
Complicadísimo, ¿No?
Salvo contadas excepciones, lo mas probable es que el Linux desde el que me estás leyendo ya venga con todo lo anterior preinstalado de serie así que ni te molestes. Si por otro lado, usás Windows, he aquí otra excusa mas de entre las tantas para tener siempre un Linux a mano.

¿Como se usa?

Mas facil, imposible: Primero, descargar sshuttle en cualquier lugar en donde te quede cómodo, se creará el directorio sshuttle automáticamente, como siempre:
git clone git://github.com/apenwarr/sshuttle
Habéndote posicionado en el directorio sshuttle -como root- lo ejecutás:
./sshuttle -r <usuario>@<servidor>:<puerto> 0/0
Y eso es todo. Para configuraciones mas complejas basta con ejecutar ./sshuttle para hacerse de la ayuda en pantalla.
El 0/0 del final no es mas que la abreviatura de 0.0.0.0/0 y hace referencia a subred desde la cual se considerará tráfico como permitido para transitar el túnel, esto es útil cuando por ejemplo la PC que establece el túnel es además el router de toda una subred con lo que podés cambiar el número de IP WAN de toda tu red en un santiamén para saltear las restricciones de algún servidor de descargas mal habido. Restringir el tráfico solo a una porción de tu subred puede servirte también para esos casos en que no confiás en todos tus usuarios.
Que les sea leve.

Como hacerle la vida imposible a tu Administrador de red

Como hacerle la vida imposible a tu Sysadmin

Y no naufragar en el intento

¿Se entendió el chiste? Lo opuesto de navegar = naufragar, hoy estoy iluminado.
El caso mas típico: El administrador de la red de tu trabajo te bloqueó twitter, facebook, msn messenger y cuanta otra página adicional pudiera dar por tierra con tu productividad.
¿Se entendió el chiste? Lo opuesto a navegar = por tierra, hoy estoy realmente iluminado.
Otro ejemplo, estás navegando desde una red pública accediendo a contenido sensible sin saber quien pudiera estar a la escucha del tráfico entrante o saliente. O peor aún, estás navegando desde una red inalámbrica sin cifrar, donde cualquiera en varios metros a la redonda podría estar jugando con su placa de red wi-fi en modo monitor.
Ya sea que te bloquearon el MSN messenger y no podes chatear o que te vino el ataque mensual de paranoia y no te animás a usar Home Banking desde esa red de dudosa procedencia, he aquí una de las tantas alternativas viables para solventar el problema.
Ingredientes:
  1. Linux con el servicio SSH corriendo.
  2. Si la PC con facebook bloqueado corre windows, entonces necesitarás además de PuTTY
Si, solo eso. Nada como un buen Linux en casa para pasarse por el ***** el sistema de filtrado de contenidos del 90% de los servidores corporativos, así que si todavía no lo hiciste, ya tenés otro motivo mas para ir instalando Linux en esa PC viejita y en desuso que quedó tirada por ahí.

¿Como funciona?

Se trata de establecer el famoso tunel SSH entre la PC bloqueada y la PC de afuera corriendo Linux.
Si bien hay varias formas de traspasar un firewall restrictivo, la mas eficiente y la única que encontré –la única que conozco, por que seguro habrá unas cuantas formas mas de hacerlo- que permite acceder al contenido de varias páginas web de forma dinámica sin tener que andar retocando la configuración de ningún servicio o conectar y desconectar nada, es llegando hasta el servidor por SSH por un túnel haciendo de socks proxy.
Si llegaste a leer hasta este punto, es por que realmente te interesa el artículo y sabés mas o menos de que estoy hablando, así que voy a presuponer que ya tenés una distribución de Linux instalada y que esta distribución tiene OpenSSH instalado y en ejecución como servicio.
De no ser así, hay miles de guías al respecto por ahí, no voy a detallar la configuración desde el principio por que no viene al caso.

Puesta en marcha:

En Linux:
ssh –D 3128 usuario@servidor
En windows, con PuTTY en ejecución toda la ciencia radica en agregar el puerto 3128 como dinámico en la sección Connections / SSH / Tunnels y luego loguearse en la PC remota:
eseesehache

Por último, configurar el navegador.

Una vez establecido el túnel, solo es cuestión de especificarle al navegador de cabecera que use como servidor de socks (normalmente en la sección “proxy” de las opciones del mismo) a 127.0.0.1 en el puerto 3128 o cualquiera sea el número de puerto arbitrario que se hubiera especificado. (Usé 3128 por costumbre, por ser el puerto por defecto en donde corre Squid pero se puede usar cualquier número de puerto).
proxy
Desde ese momento y hasta tanto se le indique otra cosa al navegador o se cierre el túnel, todo el tráfico será enviado a través de este último hasta la PC que corre Linux, que será la encargada de establecer y gestionar la sesión HTTP. De paso se cifra por completo la conexión, por otro lado además se saltea cualquier restricción que hubiera respecto a este tipo de tráfico.
Para el webserver que recibe la petición, todo el tráfico aparentará estar originado en la PC que corre Linux.

domingo, 11 de agosto de 2013

log de linux

/var/log/messages
Este es el archivo principal de registros y almacena la mayoria de 

los mensajes de interes.
/var/log/auth.log

Muestra mensajes sobre autenticacion de usuarios y permisos
/var/log/daemon.log

Muestra mensajes sobre demonios (permisos) o servicios corriendo en el sistema.
/log/dmesg

Muestra mensajes del nucleo Linux.
/var/log/dpkg.log

Muestra un registro de los paquetes binarios instalado.
/var/log/kern.log

Muestra mensajes del Kernel
/var/log/boot.log

Muestra mensajes referentes al arranque del sistema.
/var/log/debug

Muestra mensajes de depuracion.
/var/log/lpr.log

Muestra mensajes sobre la impresora
/var/log/mail.err

/var/log/mail.info

/var/log/mail.warn

/var/log/mail.log
Archivos varios que muestran mensajes sobre error, informacion, alertas y registro (respectivamente) para los correos (requiere tener un servicio de correos funcionando).
/var/log/mysql.*

Archivos varios de registro para el servicio mysql (requiere tener un servicio mysql).
/var/log/user.log

Muestra informacion acerca de los procesos usados por el usuario
/var/log/Xorg.0.log

Muestra registros de Xorg
/var/log/apache2/*

Estos archivos tambien pueden variar dependiendo de la distribucion Linux que se use.

Un tips importante es que podemos ver estos archivos desde la terminal usando comandos como tail, cat, less o grep. un ejemplo podria ser tecleando en la terminal:
 
tail -f  /var/log/message

Con esto podriamos dejar abierta la terminal y detectar en tiempo real cualquier nuevo registro en el archivo log

Espero que les sirva

sábado, 3 de agosto de 2013

Entendiendo el comando top

Top es una herramienta que nos proporciona información de los procesos que se estan corriendo en ese momento en tiempo real con valors de uso de CPU, memoria, swap y la posibilidad de manupular procesos. Presenta una interfaz simple que cuenta con varias partes.
Para ejecutar este comando solo tenemos que colocar en la consola:
# top
Y nos vamos a encontrar con algo como esto:
Se divide en dos la interfáz entre la cabecera y la lista de procesos corriendo en ese momento. La cabecera además se divide en 5 lineas:
  • Primera linea: Muestra una serie de datos referidos al sistema.
    • “02:51:37″: Es la hora actual de este caso
    • “up 59 min”: Es el tiempo en minutos que el sistema esta corriendo en este caso
    • “2 users”: Cantidad de usuarios conectados en ese momento
    • “Load average”: Los numeros indican el estado de uso del CPU. Si los numeros son menores a “1″ esto quiere decir que el CPU no tiene que esperar para poder ejecutar una instruccion. Si esta por encima de “1″ quiere decir que es necesario que el CPU necesite esperar para ejecutar una instruccion. Los tres numeros muestran el average cada 5, 10 y 15 minutos respectivamente.
  • Segunda linea: Muestra el total de procesos corriendo y los divide por estados, “Running”, “Slepping”, “Stopped”, “Zombie”.
  • Tercera linea: Muestra el uso de CPU en ese momento.
    • “%us”: muestra el uso de cpu del usuario
    • “%sy”: muestra el uso de cpu del sistema.
    • “%id”: muestra el uso de cpu disponible para utilizar.
    • “%wa”: muestra en porcentaje el tiempo en espera del cpu para manejo de I/O.
  • Cuarta linea: Muestra valores referentes a la memoria fisica del equipo (los valores pueden ser algo enañosos).
    • Tota: Es el valor total de la memoria fisica
    • Used: Es el valor de la memoria utilizada
    • Free: Es el valor de la memoria libre
    • Buffered: Es el valor de memoria fisica que esta en el buffer de memoria.
  • Quinta linea: Muestra valores referentes al uso de la memoria SWAP. Es similar a la cuarta linea en cuanto a los datos que proporciona salvo por un solo cambio que al final de la linea muestra la memoria que esta cacheada.
Ahora bien, como puedo calcular la memoria libre que tengo en el sistema?. Para eso lo que tenemos que hacer es sumar una serie de valores que nos presenta el comando top. La memoria disponible es la suma del valor “buffered” en la cuarta linea y el valor cached” de la quinta linea:
Memoria RAM disponible = Cached(12964k) + Buffered(153762k)
Para averiguar cuanta memoria estan utilizando los programas:
Memoria RAM utilizada por programas = Used (1942256) – (Cached(12964k) + Buffered(153762k))
Luego, en la parte inferior de la pantalla se encuentra la lista de procesos corriendo en el sistema en orden descendente. Cada linea cuenta con los siguientes datos:
  • PID: Process ID del proceso
  • USER: Usuario que esta corriendo dicha aplicacion
  • PR: Prioridad del proceso
  • NI: Valor por el cual se establece una prioridad para el proceso
  • VIRT: Total de la memoria virtual usada
  • RES: Resident task size
  • SHR: Estado del proceso. S (sleeping), D (uninterruptible sleep), R (running), Z(zombies), or (stopped or traced)
  • %CPU, %MEM: Porcentajes de memoria y cpu utilizados en ese momento
  • Time: El tiempo de uso del procesador para ese proceso
  • Command: El comando que esta siendo ejecutado por el Daemon
Dentro del programa podemos interactuar con el con varias opciones:
  • k -> Si se quiere matar el proceso, luego debemos ingresar el numero de su PID.
  • r -> Cambia la prioridad del proceso
  • O (upercase) -> Muestra las posibles columnas que podemos agregar a la lista de procesos
  • 1 -> Muestra la información de todos los cores
  • z o b -> Agregan colores a la interfaz
  • c -> Muestra el path absoluto del binario que se esta ejecutando.
  • n -> nos permite reducir la lista a “n” procesos.
  • N (upercase) -> Ordena los procesos por PID
  • A (upercase) -> Ordena los procesos por aparicion, primero se encuentran los mas nuevos
  • P (upercase) -> Ordena los procesos por uso de CPU, esta opcion es la default
  • M (upercase) -> Ordena los procesos por memoria residente
  • T (upercase) -> Ordena los procesos por tiempo.
  • W (upercase) -> Guarda la configuracion que hicimos
  • q -> Salir de Top
Además top cuenta con una serie de switches además de las opciones anteriores:
  • top -u usuario -> Muestra los procesos que estan corriendo con ese usuario y sus valores
  • top -p PID -> muestra el proceso seleccionado y sus valores
  • top -n numero -> Numero es la cantidad de iteraciones que va a tener el comando y luego se cerrara
  • top -d numero -> “Numero” es el tiempop en segundos que va a esperar el comando para refrescar la lista.
  • top -b -> Batch mode, ideal para mandar resultados desde top a otros programas
Existen muchisimos mas switches y opciones para utilizar con top solo puse algunas de ellas, pero si quieren saber mas de lo que puede hacer esta herramienta pueden ingresar el siguiente link:

martes, 30 de julio de 2013

Tarjeta de red inalámbrica en Ubuntu con Ndiswrapper

Tarjeta de red inalámbrica en Ubuntu con Ndiswrapper


En este tutorial explicaré como podemos instalar una Tarjeta de red inalámbrica que no ha sido detectada por Ubuntu, o que ha sido detectada pero por alguna razón u otra no funciona en el sistema. Para hacer trabajar nuestra tarjeta haremos uso de un programa llamado Ndiswrapper (también puedes seguirlo si ya lo tienes instalado pero no haz podido hacer funcionar la tarjeta). Con el y gracias a los drivers de Windows podemos hacer que Ubuntu pueda trabajar con nuestra tarjeta, ya que el programa es una especie de traductor entre el driver de Windows y Ubuntu.

Para poner las cosas más claras y por si alguien tiene la misma tarjeta queEnuwi-g on Ubuntu yo lo haré en base a la mía que es una ENUWI-G de Encore. Este procedimiento fue lo primero que hice cuando instalé Ubuntu por primera vez, no tenía idea de que era la terminal, para que servía y que significaba tanto comando que andaba metiendo para hacer funcionar mi tarjeta, por eso es que me he decidido por hacer este tutorial y tratar de explicarles, así que empecemos:
  • Comprobar compatibilidad
Antes de empezar y para evitar calentarnos la cabeza por nada, hay que revisar que Ndsiwrapper tiene soporte para nuestra tarjeta, mejor dicho para los drivers, y así poderla hacer funcionar.
|Enlace: Lista de tarjetas compatibles
Si ya comprobaste que tu tarjeta si esta soportada y que se puede habilitar con Ndiswrapper para tener acceso a Internet, puedes seguir con el tutorial.
  • Instalando Ndiswrapper
Como ya les mencioné Ndiswrapper es un intermediario entre los drivers de Windows de nuestra tarjeta y Ubutnu o algún otro distro. Para poder instalarlo explicaré dos métodos. el primero es iinstalando mediante Synaptic:
  1. Abre el Gestor de paquetes Synaptic (Sistema/Adminstración/Gestor de paquetes Synaptic)
  2. Da clic en Buscar y escribe ndiswrapper
  3. De los paquetes que salgan marca para instalar:
    • ndiswrapper-common
    • ndiswrapper-utils-1.9
  4. Aplica los cambios y espera a que termine la instalación
  5. Cuando finalice da cierra Synaptic y abre una Terminal (Aplicaciones/Accesorios/Terminal) para seguir con el procesos de instalar los drivers.
buscar synaptic ndiswrapper
  • Método dos: Compilando Ndsiwrapper
Si ya seguiste el método anterior sigue con el proceso más adelante.
La ventaja de compilarlo es que tendrás la versión más reciente con mejoras y tal vez mayor compatibilidad con programas como Network Manager (ya instalado en Gutsy y Festy) Para compilar requerimos de varias cosas, la principal (aparte de las librerías para compilar) es el código fuente del programa que vamos a instalar:
Actualizado: Ha sido liberada la versión 1.50 de Ndiswrapper y es recomendable instalar esta a la que ya estaba en el tutorial. Si ven que la fecha de este post es muy vieja revisen la posible salida de una versión dando clic en la versión más reciente en caso de que no lo haya actualizado.
|Descarga:Ndiswrapper 1.50
Antes de compilar necesitaremos la herramienta build-essential, abre una terminal e instalala con:
sudo apt-get install build-essential
Cuando termine la instalación tendrás lo necesario para compilar cualquier programa que este disponible mediante código fuente, no solo para este.
Instalación:
  1. Tenemos que descomprimir el archivo, clic derecho extraer aquí, o en terminal mediante:
  2. "tar -xvf /paquete/a/descomprimir"
  3. Ahora abre una terminal (Aplicaciones/Accesorios/Terminal) y ve hasta el directorio en el que se descomprimió el archivo. Para ello ocuparemos el comando cd: cd /directorio/archivo/descomprimido
    O utilizando la opción de nautilus Abrir en un Terminal (para instalar esta opción sigue este tutorial).
  4. Una vez en la carpeta en la que descomprimiste el archivo, compilaremos Ndiswrapper escribiendo en al terminal lo siguiente:
  5. ./configure
    make
    sudo make install
    El segundo paso es importante no debemos de tener ningún error en él, si genera un error debido a algún paquete tenemos que ir al Gestor de paquetes Synaptic y buscarlo, si ya esta instalado verifica que tengas los paquetes con el mismo nombre pero con extensión -dev, si no los tienes marcalos e instalalos.
  • Instalando el driver-conrolador
Cuando ya tengas instalado Ndiswrapper, ahora solo tendremos que instalarle el driver de la tarjeta. Primero tenemos que conseguir los archivosSiS163u Enuwi-G necesarios ya sea del disco de instalación de la tarjeta o de la pagina web del fabricante. SiS163u Enuwi-G DiscoSiempre será mejor la primera opción. El archivo que estamos buscando es el aquel que tenga la extensión .inf (en mi caso fue SiS163u.INF), ya que es el necesario para poder hacer trabajar la tarjeta.
  1. Guarda el archivo .INF en tu disco duro de preferencia en el escritorio.
  2. Abre una terminal (Aplicaciones/Accesorios/Terminal) y ejecuta “ndiswrapper” (sin las comillas), debe aparecer una lista de los comando de las funciones del programa
  3. Para agregar el nuevo driver ejecuta:
  4. ndiswrapper -i /ubicación/del/driver.INF
    En mi caso fue ndiswrapper -i /home/eduardo/Desktop/SiS163u.INF.
    No debe marcar ningún error, por eso es que revisaron que su tarjeta fuese compatible.
  5. Para verificar que el driver esta instalado ejecutamos:
  6. ndiswrapper -l
  7. En la terminal aparecerá algo como esto:
  8. eduardo@Dlinx:~$ ndiswrapper -l
    sis163u : driver installed

    Lo que aparece es la lista de drivers instalados hasta el momento, verifica que el driver que acabas de agregar esté en esa lista, sustituyendo sis163u, por el nombre de tu driver.
  9. Una vez hecho conecta tu tarjeta wireless, y si vuelves a ejecutar el comando deberá de aparecer con la frase hardware present:
  10. eduardo@Dlinx:~$ ndiswrapper -l
    sis163u : driver installed
    device (0457:0163) present

  11. Ejecutamos:
  12. sudo ndiswrapper -m
  13. Y para que se cargue cada vez que iniciemos el sistema escribimos:
  14. modprobe ndiswrapper
En este momento (al menos con mi tarjeta), el foco que indica que ya esta funcionando ya parpadea (que feliz me puse cuando vi eso), por lo que ya podemos ocuparla, pero aun no terminamos. Para comprobar que ya está instalado el adaptador de la red escribe en una terminal lo siguiente:
iwconfig
Como resultado debe de aparecer tu tarjeta de red entre los dispositivos con algunas características. Esto es lo que aparece en mi caso pero la mía ya esta configurada:
eduardo@Dlinx:~$ iwconfig
lo no wireless extensions.

eth0 no wireless extensions.
wlan0 IEEE 802.11g ESSID:"2WIRE526"
Mode:Managed Frequency:2.442 GHz Access Point: 00:12:88:96:9C:81
Bit Rate=24 Mb/s Tx-Power:17 dBm Sensitivity=0/3
RTS thr=2312 B Fragment thr=2312 B
Power Management:off
Link Quality:56/100 Signal level:-60 dBm Noise level:-96 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:967410 Invalid misc:60614 Missed beacon:0

  • Configurando la red
Existen muchos programas que nos ayudan a cambiar de red, en especial si estamos en un portátil (yo no estoy en un portátil, pero tengo wifi, es más cómodo), para mi fue más sencillo modificar la red manualmente. Explicaré dos métodos, con la configuración de redes de Ubuntu y modificando el archivo interfaces mediante el editor de texto.
  • Network-Manager (ya viene instalado en Festy)
Si estas en Gutsy o incluso en Festy, por lo general Network manager (el icono que se encuentra en el area de notificación del panel de Gnome), ya detecta la instalación de tarjetas con Ndiswrapper y puedes tratar a conectarte desde él.
Area de notificación
Da clic en el icono de las dos computadoras pequeñas y debería estar disponible alguna red inalámbrica a la cual conectarte seleccionala, si esta encriptada necesitarás seleccionar el tipo de protección e introducir la clave respectiva al modem para poder conectarte. Si no lo está solo elije la red y ya te podrás conectar.
Seleccionar red
  • Red-Ubuntu
Ve a Sistema/Administración/Red, ahí tendrás la aplicación de Ubuntu para configurar la red, en ella debería aparecer tu dispositivo y las opciones para poder modificarlo. Si tienes un módem encriptado debes colocar el tipo (WEP, WPA, etc.), y la contraseña del mismo. También es importante colocar el tipo de asignación de IP, si tu módem te asigna una ip dinámica es decir que cada vez que te conectas tienes una distinta debes elegir “Configuración automática”. Si es estática simplemente agrega los datos que se te piden.
Abre Red configurared ubuntu
  • Modificar archivo /etc/network/interfaces
Este es el modo con el que configuré mi tarjeta, una vez que lo hice no la volví a tocar simplemente enciendo la PC y ya tengo internet y creo que no debí haber tocado la red por que se des configuró así nada más y ahora utilizo Network Manager pero es más sencillo. Tengo que aclarar que me asigné una IP fija, aun de este modo mi router y las demás computadoras de la red están configuradas con IP dinámica DCHP.
  1. Abre una terminal (Aplicaciones/Accesorios/Terminal) y escribe lo siguiente:
  2. sudo gedit /etc/network/interfaces
  3. Introduce tu contraseña (aunque no se escriba) y en la parte final del texto escribe lo siguiente:
auto wlan0
iface wlan0 inet static
address xxx.xxx.x.xx
netmask xxx.xxx.xxx.x
network xxx.xxx.x.xx
broadcast xxx.xxx.x.xxx
gateway xxx.xxx.x.xxx
dns-nameservers xxx.xxx.x.xxx
wireless-mode Managed
wireless-essid Nombre de tu red
wireless-keymode configuración de la clave (en mi caso open)open
wireless-key xxxxxxxxxx

Llena cada una de los datos con la información que te pide, muchos los obtienes directamente del router entrando a su pagina de configuración. Si eres usuario de telmex escribe http://home (no se si funcione para otros países, tal vez es cosa del router, un 2WIRE). O si tienes un PSP (como yo lo hice), pues entra a las características de tu red y copia los datos de ahí.
Si tienes una portátil o simplemente quieres probar puedes instalar:
  • wifi-radar
Instalalos mediante Synaptic buscándolos por su nombre.
Espero que les haya servido.
Saludos
|Enlace: Ndiswrapper Home page

sábado, 27 de julio de 2013

configurar nagios

Configurar Nagios en Ubuntu

Hola a todos  hoy os voy a enseñar como configurar Nagios el popular programa de monitorización de la red para Ubuntu.

Una vez lo hayais instalado y este todo listo hay varios ficheros que tenemos que conocer:

  • Comands.cfg
  • localhost.cfg
  • windows.cfg
  • nagios.cfg(este se encuentra en /usr/local/nagios/etc
Empezemos con comands.cfg aquí vienen todos los servicios que va a monitorizar Nagios, por lo que si queremos añadir alguno adicional es aqui donde teneis que añadirlo.
Localhost.cfg es el que contiene la configuración para la monitorización de la maquina local así como para cualquier otra maquina de Linux que queremos monitorizar. Por tanto, si queremos llevar el control de otras maquinas de Linux tendremos que copiar este archivo y cambiarle de nombre en vez de reescribir el original ya que podríamos tener problemas en un futuro. Podeis usar la orden cp para hacerlo.
Windows.cfg es un fichero similar al ya mencionado anteriormente y sirve para lo mismo, pero con la diferencia que este se aplica para maquinas con Windows.
Y por último tendremos que modificar el fichero nagios.cfg, que es el que se encarga de leer los ficheros mencionados anteriormente, por lo que si por ejemplo hemos copiado el fichero de windows.cfg y lo hemos llamado de otra manera, pese a estar en el mismo directorio no lo leera porque no se lo hemos indicado.
Aqui tendreis que añadir la ruta del fichero(conviene que sea la misma que la de los demás). 

Creo que esta bien claro donde tenéis que poner la ruta del archivo para las maquinas que quereis monitorizar ( debajo de donde pone Linux las de Linux y debajo de donde pone Windows las de Windows). Como vereis hay un archivo llamado barbara.cfg, que use para monitorizar una maquina de Windows que tenia y otro que esta comentado ( para los que no lo sepan, las lineas que empiezan con #, no son tenidas en cuenta).

Ahora os voy a enseñar que es lo que teneis que cambiar en cada archivo. Los archivos a modificar serán: localhost.cfg, windows.cfg y por último nagios.cfg. Este último sencillamente hay que tocarlo si quereis monitorizar maquinas distintas a vuestro servidor y como ya he mencionado antes que es lo que hay que hacer pasamos a los siguientes.

Para monitorizar maquinas Linux editamos localhost.cfg y cambiamos la dirección ip( donde pone address) por la de la maquina que queramos:

Ahora vamos al windows.cfg y lo que haremos será exactamente lo mismo que con el anterior:
Pero para Windows no es suficiente, ya que habra que instalar un cliente llamado Nsclient++, que es el que se encargará de autorizar a Nagios para monitorizar ciertos servicios. A la hora de instalarlo no le pongais contraseña ya que si no tendréis que ir al fichero commands.cfg( si no me equivoco), buscar el servicio y especificarle la contraseña. 
Durante la instalación os saldrá esta ventana, y tendreis que dejarla igual que esta:
Por último una vez instalado, os dirigiréis a la carpeta de instalación del programa y editareis el archivo que esta en la raiz llamado nsclient o nsclient.ini . Una vez hecho esto descomentareis o lo que es lo mismo borrareis el punto y coma a todas las lineas que ponga check:
Con esto ya estaría el apartado de configuración, lo único que os queda es poner los nombres y los grupos a vuestro gusto, un saludo.

miércoles, 24 de julio de 2013

Instalación Nagios Ubuntu 12.04

Instalación Nagios Ubuntu 12.04

Instalamos los siguientes paquetes:

root@Nagios:~# apt-get install apache2 libapache2-mod-php5 build-essential mysql-server mysql-client php-pear rrdtool librrds-perl php5-gd php5-mysql libssh2-1-dev libssh2-php libgd-graph-perl libgd2-xpm-dev


Creamos el usuario y el grupo para Nagios y sus asociaciones con el usuario de ejecución de apache www-data:

root@Nagios:~# useradd -m -s /bin/bash nagios
root@Nagios:~# passwd nagios
root@Nagios:~# groupadd nagcmd
root@Nagios:~# usermod -a -G nagcmd nagios
root@Nagios:~# usermod -a -G nagcmd www-data 



Ahora descargaremos la última versión de nagios disponible (en nuestro caso la 3.5.0) y la descomprimimos:

root@Nagios:~# wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.5.0/nagios-3.5.0.tar.gz
root@Nagios:~# tar -xzf nagios-3.5.0.tar.gz 


***PD: en caso de que haya una version más actual visita: http://www.nagios.org/download/core/thanks?t=1365520288



Podemos definir donde instalar los servicios con el parámetro “--prefix=ruta_que_quiera”, (si se omite la instalación por defecto se realizará en “/usr/local/nagios”):

root@Nagios:~# cd nagios/
root@Nagios:~/nagios# ./configure --prefix=/usr/local/nagios --with-command-user=nagios --with-command-group=nagcmd --with-nagios-user=nagios --with-nagios-group=nagcmd
root@Nagios:~/nagios# sed -i 's:for file in includes/rss/\*;:for file in includes/rss/\*.\*;:g' ./html/Makefile
root@Nagios:~/nagios# sed -i 's:for file in includes/rss/extlib/\*;:for file in includes/rss/extlib/\*.\*;:g' ./html/Makefile
root@Nagios:~/nagios# make all
root@Nagios:~/nagios# make install
root@Nagios:~/nagios# make install-init
root@Nagios:~/nagios# make install-commandmode
root@Nagios:~/nagios# make install-config
root@Nagios:~/nagios# make install-webconf
root@Nagios:~/nagios# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin (esto crea el usuario de acceso a la interfaz web)
root@Nagios:~/nagios# make install-exfoliation
root@Nagios:~/nagios# chmod 660 /usr/local/nagios/etc/htpasswd.users
root@Nagios:~/nagios# chown nagios:nagcmd /usr/local/nagios/etc/htpasswd.users
 


Ahora instalaremos los plugins (en nuestro caso la version 1.4.16 ) que son los comandos linux que se lanzarán cada intervalo de tiempo predeterminado:

root@Nagios:~/nagios# wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz
root@Nagios:~/nagios# tar -xzf nagios-plugins-1.4.16.tar.gz
root@Nagios:~/nagios# cd nagios-plugins-1.4.16/
root@Nagios:~/nagios/nagios-plugins-1.4.16# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
root@Nagios:~/nagios/nagios-plugins-1.4.16# make
root@Nagios:~/nagios/nagios-plugins-1.4.16# make install 



***PD: Si no está disponible la version descargarla de: http://www.nagios.org/download/plugins



Ahora configuraremos el inicio de nagios, primero comprobamos que no hay errores de configuración y establecemos el usuario y grupo para el directorio /usr/local/nagios:

root@Nagios:~/nagios/nagios-plugins-1.4.16# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Añadimos nuestro script de inicio al inicio del sistema, iniciamos el servicio y reiniciamos el apache para que coja los cambios:

root@Nagios:~# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
root@Nagios:~# /etc/init.d/nagios start
root@Nagios:~# /etc/init.d/apache2 restart 



Si todo ha ido bien podremos acceder a la interfaz web mediante la dirección: http://tu_ip/nagios

Nombre de usuario: nagiosadmin
Contraseña: la que hayamos puesto



Ya estamos dentro



En el apartado "Services" veremos las monitorizaciones que existen por defecto para el host de nagios.