Posts Tagged ‘openwrt’
Emular fonera conectada con OpenWrt
Written by blitous on Febrero 14, 2008 – 1:18 pm -Hiba a realizar un tuto sobre como hacerlo, pero encontre este otro en castellano que explica muy bien como hacerlo.
Sacado de http://www.fonera.info/index.php/topic,332.0.html
Como es interesante esto, por si alguien quiere probar hacer cosas con su foenra pues asi no le diran nada los de fon.
Aquí os pongo una modificación del thinclient que se encuentra en http://fon.freddy.eu.org/heartbeat/
Esta revisión está depurada y actualizada para que notifique como si tuvieramos una fonera con el último firmware de FON (actualmente 0.7.2-0).
Necesitareis la fonkey en /etc:
root@kamikaZe:~# wget http://fon.freddy.eu.org/heartbeat/fonkey -O /etc/fonkey
root@kamikaZe:~# crontab -e
Añadimos esto en el crontab:
Código:
0 * * * * /usr/bin/thinclient cron | logger
root@kamikaZe:~# crontab -e
Y creamos el script: /usr/bin/thinclient
root@kamikaZe:~# vi /usr/bin/thinclient
Código:
#!/bin/sh
# config paths
ROOTHOME=”/tmp”
SSHPATH=”/usr/bin/ssh”
KEY=”/etc/fonkey”
THINCLIENT=”/tmp/.thinclient.sh”
# script and firmware info
THCLVER=”1.0″
CHILLVER=”1.0-1″
FONREV=”0″
FIRMWARE=”0.7.2″
DEVICE=”fonera”
MODE=”$1″
# fon.com info
USER=”openwrt”
SERVER=”download.fon.com”
PORT=”1937″
FONSIG=”$SERVER ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0zJFtj5NtrVsj8+qG0dtPE8WpHHDpTXp5+d3vvtSS7Hx7vYHyrfN/8PBVrrYOgl4dySY65sGtq34EU04VN4a7xQHSKJBunDUSQ/2Xz+eyo53LCVeFy1zNRCmB6jrFlJQvl5yviLvXmMtOGxG8Z1dfu4qavfGtBxwtwxKPKuiyhs=”
# mac info
if [ ! -z "$3" ]
then
WLMAC=”$2″
ETMAC=”$3″
else
WLMAC=$(ifconfig ath0 | grep HWaddr | sed -e “s/^.*HWaddr //” | sed -e “s/ //g”) >> /dev/null 2>&1
ETMAC=$(ifconfig eth0 | grep HWaddr | sed -e “s/^.*HWaddr //” | sed -e “s/ //g”) >> /dev/null 2>&1
fi
export HOME=”$ROOTHOME”
check_mac () {
if [ -z "$WLMAC" ] || [ -z "$ETMAC" ]
then
echo “Ooops! Error getting MAC Addresses!”
exit 0
fi
}
check_env () {
[ -d "$ROOTHOME/.ssh" ] || mkdir $ROOTHOME/.ssh
[ -f "$ROOTHOME/.ssh/known_hosts" ] || touch $ROOTHOME/.ssh/known_hosts
[ `grep -c $SERVER $ROOTHOME/.ssh/known_hosts` = "0" ] && echo $FONSIG >> $ROOTHOME/.ssh/known_hosts
}
send_data () {
DATA=”mode=’$MODE’ wlmac=’$WLMAC’ mac=’$ETMAC’ fonrev=’$FONREV’ firmware=’$FIRMWARE’ chillver=’$CHILLVER’ thclver=’$THCLVER’ device=’$DEVICE’”
echo $DATA | $SSHPATH -T ${PORT:+ -p $PORT}${KEY:+ -i $KEY} “${USER}@${SERVER}” > $THINCLIENT
echo “sent: $DATA”
}
exec_start_mode () {
check_mac
sleep “$((0x$(head /dev/urandom | hexdump | awk ‘$2 > 0 {print $2}’ | head -n1) % 60 + 60))”
check_env
send_data
exec_check_thinclient
}
exec_cron_mode () {
check_mac
sleep “$((0x$(head /dev/urandom | hexdump | awk ‘$2 > 0 {print $2}’ | head -n1) % 3600))”
check_env
send_data
exec_check_thinclient
}
exec_check_thinclient () {
if [ -f $THINCLIENT ]
then
THINSIZE=”$(wc -c < $THINCLIENT)”
if [ $THINSIZE = "0" ]
then
echo “Ooops! $THINCLIENT is empty! No Internet available?”
elif [ $THINSIZE != "33" ]
then
echo “Something is different in $THINCLIENT:”
cat $THINCLIENT
else
echo “$THINCLIENT is the default one, deleted.”
rm -f $THINCLIENT
fi
else
echo “Ooops! $THINCLIENT does not exist!”
fi
}
case “$1″ in
start)
exec_start_mode
;;
cron)
exec_cron_mode
;;
check)
exec_check_thinclient
;;
*)
echo “Usage: `basename $0` {start|cron|check} [WLMAC ETMAC]”
exit
esac
Le damos permiso de ejecución:
root@kamikaZe:~# chmod +x /usr/bin/thinclient
Creamos /etc/init.d/thinclient
root@kamikaZe:~# vi /etc/init.d/thinclient
con el siguiente contenido:
Código:
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=60
start() {
/usr/bin/thinclient start &
}
Le damos permiso de ejecución:
root@kamikaZe:~# chmod +x /etc/init.d/thinclient
Habilitar este script de inicio (esto creará automáticamente /etc/rc.d/S60thinclient):
root@kamikaZe:~# /etc/init.d/thinclient enable
Y reiniciamos la fonera.
root@kamikaZe:~# reboot
———————-
02/Jul/2007:
He añadido la posibilidad de simular múltiples foneras. Para ello teneis que pasarle la WLMAC y la ETMAC como en el siguiente ejemplo:
/usr/bin/thinclient start 00:18:11:11:11:11 00:18:11:11:11:10
Es decir, se le añaden las MAC de la otra Fonera al final como parámetros.
Si no se le indícan estos parámetros, cojerá las MAC de la Fonera actual.
Para obtener la WLMAC y ETMAC de nuestras Foneras, lo podemos hacer así:
root@kamikaZe:~# echo “WLMAC:” `ifconfig ath0 | grep HWaddr | sed -e “s/^.*HWaddr //” | sed -e “s/ //g`
root@kamikaZe:~# echo “ETMAC:” `ifconfig eth0 | grep HWaddr | sed -e “s/^.*HWaddr //” | sed -e “s/ //g`
Debeis añadir una línea más en el crontab para cada una de las Foneras indicando su WLMAC y ETMAC, como en el siguiente ejemplo:
Código:
0 * * * * /usr/bin/thinclient cron 00:18:11:11:11:11 00:18:11:11:11:10 | logger
Y otra en el /etc/init.d/thinclient:
Código:
/usr/bin/thinclient start 00:18:11:11:11:11 00:18:11:11:11:10 &
Con la colaboracion de Seguridadwireless.net

