Emular fonera conectada con OpenWrt
De Seguridad Wireless
Emular fonera conectada con OpenWrt
Instalación
wget http://www.tufonera.com/ftp/paquetes_instalacion_fonera/hearbeat.tar.gz cd hearbeat ./instalar.sh
Thinclient para kamikaze
Nota: Con la instalación anterior es suficiente. Aquí queda explicado el método antiguo.
| Link alternativo: |
Actualizada para la versión de Fon 0.7.2-0
Situamos 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:
0 * * * * /usr/bin/thinclient cron | logger
root@kamikaZe:~# crontab -e
Y creamos el script: /usr/bin/thinclient
root@kamikaZe:~# vi /usr/bin/thinclient
#!/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:
#!/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