martes, 27 de octubre de 2015

Instalar wiithon en Debian Jessie

0 comentarios
En un post de 2009 os hablé de WBFS, y un tiempo después vimos como instalar wiithon en Debian Squeeze

Wiithon es una herramienta GPL que sirve para trabajar con backups de juegos Wii, permitiendo añadirlos a un disco duro, extraerlos, etc. 

Esta herramienta ha evolucionado y mejorado aún más con el tiempo. La última versión que podemos encontrar en launchpad es la 1.32, publicada en noviembre de 2014.


Disponer de wiithon en Debian Jessie es muy sencillo puesto que tan sólo hay que instalar el paquete Debian correspondiente a nuestra arquitectura:
Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 26 de octubre de 2015

Actualizar Debian Wheezy automáticamente mediante unattended-upgrades

0 comentarios
En un post de mayo de 2012 os mostré cómo actualizar los paquetes de Debian Squeeze automáticamente utilizando unattended-upgrades, una aplicación para realizar instalaciones automáticas de actualizaciones de seguridad, ideal para mantener actualizado el software de nuestro equipo de forma desatendida.

Como desde la versión que teníamos instalada en Debian Squeeze han cambiado algunas cosillas (por ejemplo: ya no corre como demonio), vamos a dar un repaso de nuevo a esta herramienta.

Instalar unattended-upgrades en Debian Wheezy sigue siendo igual de sencillo, puesto que el paquete se encuentra en los repositorios:
# apt-get install unattended-upgrades
Una vez instalado, echaremos un vistazo al principal fichero de configuración: /etc/apt/apt.conf.d/50unattended-upgrades:
// Automatically upgrade packages from these origin patterns
Unattended-Upgrade::Origins-Pattern {
// Archive or Suite based matching:
// Note that this will silently match a different release after
// migration to the specified archive (e.g. testing becomes the
// new stable).
// "o=Debian,a=stable";
// "o=Debian,a=stable-updates";
// "o=Debian,a=proposed-updates";
"origin=Debian,archive=stable,label=Debian-Security";
"origin=Debian,archive=oldstable,label=Debian-Security";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};

// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run
// dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
//Unattended-Upgrade::Mail "root";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
//Unattended-Upgrade::MailOnlyOnError "true";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if a
// the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";
Este fichero es muy fácil de entender, sobre todo teniendo en cuenta los comentarios que explican los parámetros. Como podéis comprobar, viene configurado para realizar tan sólo las actualizaciones de Debian-Security, pero podemos modificarlo para que se actualicen de forma desatendida los paquetes de todos nuestros repositorios.

El siguiente bloque del fichero de configuración permite definir los repositorios desde los que queremos actualizar automáticamente los paquetes:
// Automatically upgrade packages from these origin patterns
Unattended-Upgrade::Origins-Pattern {
// Archive or Suite based matching:
// Note that this will silently match a different release after
// migration to the specified archive (e.g. testing becomes the
// new stable).
// "o=Debian,a=stable";
// "o=Debian,a=stable-updates";
// "o=Debian,a=proposed-updates";
"origin=Debian,archive=stable,label=Debian-Security";
"origin=Debian,archive=oldstable,label=Debian-Security";
};
En este bloque podemos añadir nuevos patrones que permitan realizar instalaciones desatendidas desde otros repositorios. Para especificar repositorios utilizaremos los siguientes campos:
  • origin (formato corto: o).
  • label (formato corto: l).
  • archive (formato corto: a).
  • suite.
  • component (formato corto: c).
  • site.
Podemos encontrar los valores de cada uno de los campos de nuestros repositorios en los ficheros _Release alojados en /var/lib/apt/lists/.

Por ejemplo, supongamos que deseamos actualizar los paquetes del repositorio de Mozilla. Como ya tenemos configurado este repositorio en nuestra máquina, obtenemos las primeras líneas del siguiente archivo, donde veremos los datos que vamos a necesitar:
# head /var/lib/apt/lists/ldap_mozilla-backports_dists_wheezy-backports_Release
Origin: Debian Mozilla Team
Label: Debian Mozilla Team
Suite: wheezy-backports
Codename: wheezy-backports
Date: Fri, 16 Oct 2015 05:45:52 UTC
Architectures: i386 amd64
Components: iceweasel-release iceweasel-esr
Description: Debian Mozilla team APT archive for wheezy-backports
MD5Sum:
8fe44fc8853db9b7df27b21016257761 86467 iceweasel-release/binary-i386/Packages
Viendo la salida del comando anterior, podríamos construir un patrón de origen como el siguiente:
        "o=Debian Mozilla Team,suite=wheezy-backports";
Y añadirlo al fichero /etc/apt/apt.conf.d/50unattended-upgrades, para que se actualicen también los paquetes del repositorio de Mozilla de forma desatendida:
// Automatically upgrade packages from these origin patterns
Unattended-Upgrade::Origins-Pattern {
// Archive or Suite based matching:
// Note that this will silently match a different release after
// migration to the specified archive (e.g. testing becomes the
// new stable).
// "o=Debian,a=stable";
// "o=Debian,a=stable-updates";
// "o=Debian,a=proposed-updates";
"origin=Debian,archive=stable,label=Debian-Security";
"origin=Debian,archive=oldstable,label=Debian-Security";
"o=Debian Mozilla Team,suite=wheezy-backports";
};
Por otra parte, "descomentaremos" las líneas de las opciones que nos interese aplicar.
Por ejemplo, sería interesante aplicar esta opción para solucionar el problema de que en una ejecución anterior de dpkg se hubiera interrumpido el proceso:
Unattended-Upgrade::AutoFixInterruptedDpkg "true";

Una vez hecho ésto, creamos el fichero /etc/apt/apt.conf.d/02periodic con el siguiente contenido:
// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";

// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";

// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";

// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";

// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "7";
Este fichero nos servirá para configurar las actualizaciones periódicas. Veamos lo que significa cada opción con un ejemplo: 
  • APT::Periodic::Enable "1";  Activamos las actualizaciones automáticas poniendo el valor a 1 o las desactivamos poniendo el valor a 0.
  • APT::Periodic::Update-Package-Lists "1"; Hacemos un apt-get update. Si ponemos el valor a 0 lo desactivamos.
  • APT::Periodic::Download-Upgradeable-Packages "1"; Descargamos los paquetes actualizables. Si ponemos el valor a 0 lo desactivamos.
  • APT::Periodic::AutocleanInterval "7"; Hacemos un apt-get autoclean cada 7 días. Si ponemos el valor a 0 lo desactivamos.
  • APT::Periodic::Unattended-Upgrade "1"; Ejecutar el script"unattended-upgrade" cada día. Si ponemos el valor a 0 lo desactivamos.    
unattended-upgrades se ejecuta mediante cron (/etc/cron.daily/apt). No obstante, si queremos, podemos forzar la ejecución manualmente mediante el script unattended-upgrade:
# unattended-upgrade
Además, podemos ejecutar unattended-upgrade en modo debug:
# unattended-upgrade -d
O simular la ejecución de unattended-upgrade sin llegar a actualizar:
# unattended-upgrade -d --dry-run
Publicado por primera vez en http://enavas.blogspot.com.es

Cómo hacer que ssh utilice una determinada interfaz de red

0 comentarios
Algunas veces tenemos máquinas con varias interfaces de red y en ocasiones puede que coincida el rango de direcciones de algunas de ellas. 

En ese caso, si queremos realizar una conexión con ssh a una máquina de uno de los rangos de red que coinciden, podemos especificar la dirección IP de la interfaz de red por la que estamos conectados a su red utilizando el parámetro --bind (-b) de ssh:
# ssh --bind 192.168.1.16 root@192.168.1.35
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 23 de octubre de 2015

Resetear punto de acceso UniFi a sus valores por defecto

0 comentarios
En la parte trasera del punto de acceso, junto al conector de red ethernet, hay un pequeño agujero con un botón de reset.  

Para resetear el punto de acceso:
  1. Pulsamos y mantenemos pulsado con un clip el botón de reset durante 10 segundos.
  2. A continuación soltamos el botón. El led de color del punto de acceso se apagará. y comenzará el proceso de reinicio.
Una vez hecho ésto, no debemos desconectar el punto de acceso del alimentador POE y el punto de acceso se restaurará a sus valores por defecto.
 
Una vez que el led vuelva a encenderse de color naranja y permanezca fijo sin parpadear, podremos comenzar el proceso de adopción por parte del controlador.

Este procedimiento sirve para los siguientes puntos de acceso:
  • UAP
  • UAP-Pro
  • UAP-LR
  • UAP-AC
  • UAP-Outdoor
  • UAP-Outdoor+
Publicado por primera vez en http://enavas.blogspot.com.es

Configurar SMTP en controlador UniFi para recibir notificaciones

0 comentarios
En un post anterior, os mostré como  instalar el controlador UniFi en Debian Jessie para controlar todos nuestros puntos de acceso y gestionar nuestra red wifi desde un único lugar. No he publicado como realizar la instalación en Debian Wheezy porque el procedimiento es exactamente el mismo.

Es muy recomendable configurar SMTP en el controlador UniFi para recibir notificaciones del controlador. Y qué mejor manera de hacerlo que usando el SMTP de gmail, si no tenéis un servidor SMTP en vuestra red.

En la siguiente captura de pantalla podéis ver los valores que es necesario configurar para que nuestro controlador UniFi pueda enviarnos notificaciones mediante el SMTP de Gmail:


Básicamente se trata de acceder a la sección Controller, que he marcado con un (1) en la imagen e introducir los valores como se muestran en la imagen:
  • Activamos la casilla "Enable mail server".
  • En host escribimos el nombre del servidor SMTP de Gmail: smtp.gmail.com
  • En puerto especificamos el puerto 587.
  • Marcamos la casilla "Enable SSL"
  • Marcamos la casilla "Enable Authentication".
  • Escribimos el nombre del usuario que se va a utilizar para enviar el e-mail. En mi caso podéis ver que he introducido la dirección de correo completa. Pues bien, eso es porque he utilizado una cuenta de mi dominio de Google Apps.
  • Escribimos el password del usuario que se va a utilizar para enviar el e-mail.
  • Si marcamos la casilla "Specify sender address" podemos especificar la dirección de correo que queramos se muestre en la dirección de envío.
 Por último, tan sólo me queda decir que podéis testear si el envío funciona introduciendo una dirección en la casilla " Send test email to"
Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 22 de octubre de 2015

Encender y apagar la wifi de nuestro router A4001N utilizando el botón de reset/wps

0 comentarios
Si echáis un vistazo al siguiente howto, veréis que es muy sencillo asignar funciones a los botones de nuestro router wifi con OpenWRT:
http://wiki.openwrt.org/doc/howto/hardware.button

Para este post, he utilizado un A4001N, pero es perfectamente aplicable a otros routers con OpenWRT.
La idea es que podamos apagar el wifi si mantenemos presionado el botón de reset/wps durante un intervalo de tiempo y volver a encenderlo de nuevo del mismo modo.

Vamos a hacer todo ésto desde la línea de comandos, así que nos conectamos al router mediante ssh.

Una vez conectados, lo primero que tenemos que hacer es identificar los botones.  Para ello, creamos una carpeta en el directorio /etc/hotplug.d a la que llamaremos button:
# mkdir /etc/hotplug.d/button
Dentro de esa carpeta creamos un script al que podemos llamar buttons, por ejemplo, con el siguiente contenido:
/etc/hotplug.d/button/buttons
#!/bin/sh
logger the button was $BUTTON and the action was $ACTION
El script lo que hará será crear una entrada en el registro de logs con un mensaje que nos informa del botón que pulsó y la acción que se realizó.

Una vez lo hayamos guardado, pulsamos un botón (en nuestro caso hemos dicho que el botón de reset/wps, que por cierto, es el único que tiene nuestro router además del botón de apagado) y lo soltamos.

A continuación leemos los logs utilizando el comando logread:
# logread
Y entre los muchos mensajes de log, veremos algunos como los siguientes:
Thu Oct 22 20:30:37 2015 user.notice root: the button was wps and the action was pressed
Thu Oct 22 20:30:38 2015 user.notice root: the button was wps and the action was released
Que nos informa de dos cosas:
  • El botón llamando "wps" fué pulsado "presed".
  • El botón llamando "wps" fué soltado "released".
Pues bien. Con ésto ya hemos identificado el nombre del botón (wps) y sus dos acciones: "pressed" y "released".

El siguiente paso que daremos, una vez identificado el botón, será descargarnos un script que va a gestionar las acciones que se deben realizar cuando el botón se haya pulsado durante un intervalo de tiempo. Y lo vamos a descargar directamente en el router usando wget, así que si no tenéis instalado wget, lo instaláis:
# opkg update && opkg install wget
Una vez instalado wget, lo ejecutamos para que descargue el script 00-button y lo coloque en el directorio /etc/hotplug.d/button/ directamente:
# wget --no-check-certificate -O /etc/hotplug.d/button/00-button https://dev.openwrt.org/export/36332/trunk/target/linux/atheros/base-files/etc/hotplug.d/button/00-button
Y le damos permisos de ejecución:
# chmod 755 /etc/hotplug.d/button/00-button
Este script contiene el siguiente código:
. /lib/functions.sh
do_button () {
local button
local action
local handler
local min
local max

config_get button $1 button
config_get action $1 action
config_get handler $1 handler
config_get min $1 min
config_get max $1 max

[ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
[ -z "$min" -o -z "$max" ] && eval $handler
[ -n "$min" -a -n "$max" ] && {
[ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler
}
}
}

config_load system
config_foreach do_button button
Ahora que ya tenemos el script en su sitio, podemos crear configuraciones para ejecutar diferentes acciones en función del tiempo que el usuario deje pulsado el botón. 
Las configuraciones de los botones se almacenan en el mismo fichero que las configuraciones de los leds, es decir, en el archivo /etc/config/system. Así que editamos este fichero y le añadimos lo siguiente:
config button
option button wps
option action released
option handler "/usr/bin/wifionoff"
option min 0
option max 3
La configuración que estamos realizando se entiende por sí sola: Estamos definiendo un botón cuyo nombre es wps y la acción que se debe realizar (ejecutar el script /usr/bin/wifionoff) al soltar el botón cuando se haya pulsado durante un tiempo entre 0 y 3 segundos.

Por último, no nos queda más que crear el script /usr/bin/wifionoff, que se encargará de conmutar entre los estados de encendido y apagado del router:
#!/bin/sh
SW=$(uci -q get wireless.@wifi-device[0].disabled)
[ "$SW" == "1" ] && uci set wireless.@wifi-device[0].disabled=0
[ "$SW" == "1" ] || uci set wireless.@wifi-device[0].disabled=1
wifi
Si ahora quisiéramos hacer que el router se resetease a los valores por defecto al pulsar el mismo botón durante un tiempo de entre 20 y 25 segundos, añadiríamos la siguiente configuración al fichero /etc/config/system:
config button
option button wps
option action released
option handler "firstboot && reboot"
option min 20
option max 25
De este modo, podríamos configurar diferentes acciones dependiendo del intervalo de tiempo que se esté pulsando el botón.
Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 21 de octubre de 2015

Conectar un HUB USB a nuestro router OpenWRT para disponer de varios puertos USB

0 comentarios
Podemos conectar un HUB USB con alimentación externa a nuestro router OpenWRT para disponer de varios puertos USB a los que conectar diferentes dispositivos. Eso sí, es importante que el HUB disponga de alimentación externa porque si no, no va a funcionar. 


Una vez conectado, instalamos los siguientes paquetes:


Si  nos conectamos al router mediante ssh y ejecutamos:
# dmesg | grep -i hub
Comprobaremos que el hub ha sido detectado por el sistema.

Publicado por primera vez en http://enavas.blogspot.com.es

wibiya widget