GuíaPaquetesObelisco
Esta es una simple guía para usuarios linux principiantes, como yo, que les interese sacarle mas provecho a sus routers con Obelisco.
los siguiente paquetes (programas) y scripts fueron probados en:
- Linksys WRT54GS v2
- Plataforma: Broadcom 4712 @ 200MHz
- Memoria: 8MB Flash, 32MB de RAM
- Sistema operativo: Obelisco v20080819 instalado según Obelisco/Docs
SSID: y04@buenosaireslibre.org canal: 6
Antena OmniSimple en el conector main
Se iran agregando mas a medida q los pruebe. se aceptan sugerencias de paquetes y scripts útiles.
Firewall con protección por fuerza bruta en SSH y registro en el syslog
tuve q instalar los siguientes paquetes:
#ipkg install kmod-ipt-extra #ipkg install iptables-mod-extra
verificar el archivo de módulos:
#cat /etc/modules wl ipt_recent
si no esta 'ipt_recent' o 'ipt_LOG' agregar con las siguientes lineas respectivamente:
#echo "ipt_recent" >> /etc/modules #echo "ipt_LOG" >> /etc/modules
rebootear:
#reboot
Ejemplo de como usar iptables con los módulos nuevos:
extracto de archivo '/etc/firewall.user' original de Obelisco con el SSH modificado:
### Open port to WAN # SSH protegido con 5 minutos segundos despues de 2 conexiones del mismo IP iptables -t nat -A prerouting_wan -p tcp --dport 22 -m state --state NEW -m recent --name ATTACKER_SSH --rsource --update --seconds 300 --hitcount 2 -j DROP iptables -t nat -A prerouting_wan -p tcp --dport 22 -m state --state NEW -m recent --name ATTACKER_SSH --rsource --set iptables -A input_wan -p tcp --dport 22 -m state --state NEW -j LOG --log-prefix "iptables> conexion ssh:" --log-level info iptables -A input_wan -p tcp --dport 22 -m state --state NEW -j ACCEPT
Al ver el syslog encontraremos lineas como las siguientes:
#logread Mar 10 02:34:37 y04 kern.info kernel: iptables> conexion ssh:IN=ppp0 OUT= MAC= SRC=88.42.172.243 DST=200.55.89.195 LEN=60 TOS=0x00 PREC=0x00 TTL=48 ID=39909 DF PROTO=TCP SPT=29139 DPT=22 WINDOW=32120 RES=0x00 SYN URGP=0
DNS dinámico
en este caso es para el servicio brindado por dyndns.org
instalar:
ipkg install ez-ipupdate
configurar:
#vi /etc/ez-ipupdate.conf service-type=dyndns user=USUARIO:CONTRASEÑA host=SUBDOMINIO.dyndns.org interface=ppp0 max-interval=2073600 #quiet # Do not change the lines below cache-file=/tmp/ez-ipupdate.cache pid-file=/var/run/ez-ipupdate.pid
Para actualizar ahora:
#ez-ipupdate -c /etc/ez-ipupdate.conf
Guía de scripts útiles
Tipo de participación o cantidad de enlaces indicado por la luz 'cisco' del frente del Linksys
Este script permite saber cuantos enlaces hay activos hacia otros nodos desde el nuestro, o sea indica el tipo de participación en la RedBal.
Si tenemos 1 enlace activo es un AP-Conectado la luz encenderá blanca, si tenemos 2 enlaces es Nodo la luz encenderá blanca-naranja, si tenemos 3 es NodoPlus la luz encenderá naranja.
Primero desactivamos la función por defecto del botón y el led:
#nvram set obelisco_button_enable=false #nvram commit
Creamos y editamos el archivo donde escribiremos lo siguiente:
#vi /etc/cron.5min/tiponodo-ledses.sh
#!/bin/sh
#
# /etc/cron.5min/tiponodo-ledses.sh
# 20090315 yairadi@buenosaireslibre.org
enlaces=$(echo $(route | grep -e 'UGH' | sort | uniq -f5 | wc -l))
case $enlaces in
0) echo 0
echo "0" > /proc/diag/led/ses_white
echo "0" > /proc/diag/led/ses_orange;;
1) echo 1
echo "1" > /proc/diag/led/ses_white
echo "0" > /proc/diag/led/ses_orange;;
2) echo 2
echo "1" > /proc/diag/led/ses_white
echo "1" > /proc/diag/led/ses_orange;;
3) echo 3
echo "0" > /proc/diag/led/ses_white
echo "1" > /proc/diag/led/ses_orange;;
*) echo nada;;
esachacemos ejecutable el script:
#chmod +x /etc/cron.5min/tiponodo-ledses.sh
ahora esperamos a que el cron ejecute el archivo, que lo hará dentro de los 5 minutos
Uso del CPU del router indicado por la luz 'cisco' del frente del Linksys
Este script permite saber en q rango de uso del CPU esta nuestro router utilizando el led blanco y ámbar detrás del logo de cisco
estos son los rangos establecidos y el comportamiento del led:
LEDs off < 0.20 < blanco < 0.50 < naranja-blanco < 0.80 < naranja <1.1 < flash naranja lento <1.7 < flash naranja rápido
o sea, menor a 0.20 apagado, mayor a 0.20 led blanco solo, mas de 0.50 leds banco y naranja encendidos, etc.
Primero desactivamos la funcion por defecto del boton y el led:
#nvram set obelisco_button_enable=false #nvram commit
Creamos y editamos el archivo donde escribiremos lo siguiente:
#vi /usr/sbin/loadmon.sh
#!/bin/sh
#
# /usr/sbin/loadmon.sh
# 20090304 yairadi@buenosaireslibre.org
# based on SysLoadLED wiki.openwrt.org
DELAY=1
ULTRAHIGHLOAD="170"
VERYHIGHLOAD="110"
HIGHLOAD="80"
MEDLOAD="50"
LOWLOAD="20"
while sleep $DELAY; do
load=$(cat /proc/loadavg | cut -d " " -f1 | tr -d ".")
if [ "$load" -gt "$ULTRAHIGHLOAD" ]; then
echo "0" > /proc/diag/led/ses_white
orange_state=$(cat /proc/diag/led/ses_orange)
if [ "$orange_state" = "f" ]; then
echo "Ultra High Load >170"
else
echo "f" > /proc/diag/led/ses_orange
fi
elif [ "$load" -gt "$VERYHIGHLOAD" ]; then
echo "0" > /proc/diag/led/ses_white
orange_state=$(cat /proc/diag/led/ses_orange)
if [ "$orange_state" -gt "0" ]; then
echo "0" > /proc/diag/led/ses_orange
else
echo "1" > /proc/diag/led/ses_orange
fi
elif [ "$load" -gt "$HIGHLOAD" ]; then
echo "0" > /proc/diag/led/ses_white
echo "1" > /proc/diag/led/ses_orange
elif [ "$load" -gt "$MEDLOAD" ]; then
echo "1" > /proc/diag/led/ses_white
echo "1" > /proc/diag/led/ses_orange
elif [ "$load" -gt "$LOWLOAD" ]; then
echo "1" > /proc/diag/led/ses_white
echo "0" > /proc/diag/led/ses_orange
else
echo "0" > /proc/diag/led/ses_white
echo "0" > /proc/diag/led/ses_orange
fi
donehacemos ejecutable el script:
chmod +x /usr/sbin/loadmon.sh
agregamos "#!/bin/sh" y creamos el archivo /etc/init.d/S60loadmon para q cargue al arraque:
echo "#!/bin/sh" > /etc/init.d/S60loadmon
agregamos "/usr/sbin/loadmon.sh &" al archivo
echo "/usr/sbin/loadmon.sh &" >> /etc/init.d/S60loadmon
hacemos ejecutable /etc/init.d/S60loadmon
chmod +x /etc/init.d/S60loadmon
reiniciar
Enlazado a la RedBal indicado por el led DMZ
Este script chequeará cada 5 minutos las rutas q genera OLSR al estar enlazado a otro nodo y encenderá el led DMZ del frente del router.
Para eso el otro nodo también tiene que tener instalado OLSR:
#vi /etc/cron.5min/enlace-dmzled.sh #!/bin/sh # # /etc/cron.5min/enlace-dmzled.sh ver 2.0 # 20090304 yairadi@buenosaireslibre.org redbal=$(grep '# 10' /var/run/hosts.olsr | head -1 | cut -c -2) if [ "$redbal" = 10 ] then echo "1" > /proc/diag/led/dmz else echo "0" > /proc/diag/led/dmz fi
ahora esperamos a que el cron ejecute el archivo, que lo hará dentro de los 5 minutos
lista de Nodos y rutas
este script facilita la visualización y chequeo de enlaces y rutas, limpiando y ordenando los datos:
#vi /usr/sbin/enlaces.sh echo "hosts.olsr: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " cat /var/run/hosts.olsr | grep -v _ | grep 10 | sort echo "rutas: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " route | sort | grep -v 224 | grep -e 0 echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
lo hacemos ejecutable
#chmod +x /usr/sbin/enlaces.sh
Se usa desde cualquier directorio ejecutandolo por su nombre completo:
#enlaces.sh