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

wrt54gs.png

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;;
esac

hacemos 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
done

hacemos 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


YairAdi


CategoryDocuments

Wiki: GuíaPaquetesObelisco (last edited 2012-04-03 11:18:14 by Vampii)

USLA