jueves, 2 de agosto de 2012

Monitoreando Tuneles IPSec con Nagios en Pfsense

Volvi, aunque no me hayan extrañado.....

Hoy les voy a explicar como hacer para monitorear IPSec/Racoon en pfsense 2.x

Elementos
1 instalacion de Pfsense (http://pfsense.org)
1 instalacion de Nagios (http://nagios.org)
1 cliente ssh / sftp

No voy a explicar como instalar nagios ni pfsense, si no sabes esta pagina no es para vos y podes volver a taringa o al twitter de tn tecno (!)...

Primero... se debe instalar el agente de nagios para pfsense, esto es una pavada, hay que ir a System > Packages
 luego en Available buscar el que dice NRPE V2, como se muestra en la foto





Hacer click en el "+" y blablabla

Ahora, con nuestro cliente ssh favorito debemos subir el archivo que chequea los tuneles IPSec, que es el siguiente (NOTA: aclaro que parte del script me lo robe de por ahi porque soy de madera haciendo scripts...)


PARM1="$1"
WARN="$2"
PARM2="$3"
CRIT="$4"

if [ $PARM2 != "-c" -o $CRIT = "" ] ; then
    echo "UsageL $0 -w -c "
if [ "$PARM1" != "-h" ]; then
        exit 3
    else
        echo ""
        echo " -w = Minimum Ipsec tunnel Numbers warning."
        echo " -c = Critical Ipsec tunnel number."
        echo " -h = help."
        exit 3

    fi
fi


NUMBER=$(sudo racoonctl -l show-sa isakmp | awk 'int ($9)' | wc -l)

HOSTNAME=$(hostname)


if [ $NUMBER -le $CRIT ]; then
    echo "Critical  - Total IpSec detected tunnels: $NUMBER"
    exit 2
else
    if [ "$NUMBER" -le "$WARN" ]; then
        echo "Warning  - detected tunnels: $NUMBER"
        exit 1
    else
        echo "OK: \"$HOSTNAME\" is running: $NUMBER Ipsec Tunnels"
        exit 0
    fi
fi

Basicamente lo que hace este script es usar el comando racoonctl para ver que tuneles estan activos y con awk hago la cuenta de cuantos han pasado phase2.




Se debe copiar en la carpeta /usr/local/libexec/nagios/ con el nombre check_ipsec

Ahora lo que falta es, como se ve en el script editar el sudoers, peeeeero.. pfsense NO tiene sudo, asi que tendremos que instalarlo. Dentro del equipo ejecutar:

PARA 32 BITS:

# pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/sudo.tbz

PARA 64 BITS:

# pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8-stable/Latest/sudo.tbz


Listo, instalado el visudo,  seguramente les dara un warning, pero no pasa nada. Ahora se debe editar el sudoers,

#/usr/local/sbin/visudo

y en la ultima linea agregar lo siguiente:

nagios ALL=(ALL) NOPASSWD: /usr/local/sbin/racoonctl
nagios ALL=(ALL) NOPASSWD: /usr/local/libexec/nagios/check_ipsec



honestamente, no se si hace falta el check_ipsec, yo por las dudas lo puse

Una vez hecho esto, hay que configurar el plugin desde la gui del pfsense, va una captura como ejemplo, los valores de warning y critical manejenlos de acuerdo a lo que necesiten





y listo el pollo pelada la gallina, espero que les sea util ya que esto no lo vi por ningun lado

hasta la proxima cyberamigos, que les garue finito y ojo con los hackers