Welcome to Pandora FMS Community!

Find answers, ask questions, and connect with our community around the world.

  • Plugin Pandora

    Posted by ansator3 on July 6, 2017 at 18:42

    Hola,

    He creado un plugin que se encarga de realizar una consulta API sobre un firewall.

    Este plugin son una serie de consultas, que se encargan de generar un fichero, leer un valor, volver a realizar una consulta y devuleve otro fichero.

    Al final extrae un valor que es lo que devuelve. Si ejecuto este script desde la consola de linux del Pandora funciona perfectamente.

    Os cuento el proceso para ver si me podéis ayudar:

    Fichero  pandora_paloalto2.sh:

    #!/bin/bash

    # Default values
    datetime_old=$(date +”%Y/%m/%d 00:00:01″)
    datetime_now=$(date +”%Y/%m/%d %H:%M:%S”)
    #echo $datetime_old
    #echo $datetime_now

    QUERY=”( receive_time geq ‘$datetime_old’ ) and ( receive_time leq ‘$datetime_now’ ) and ( severity eq critical )”
    ID=”LUFRPT1Wekxxc2IadfaffxNXBieHRPcDBQR0R2TXRXVklERmc9Zm1tSGVkL3dafafRjK1BGOWxTVzc2MUcyZURYck9qblZtNlRoSUlucUg3bjd3QT0=”
    IP=10.0.53.1
    function help {
        echo -e “Test Plugin for Pandora FMS Plugin server. http://pandorafms.com
        echo -e “Syntax:”     
        echo -e “tt-p ip”
        echo -e “tt-id id firewall”
        echo -e “tt-q query string ‘n”
        echo -e “Samples:”
        echo ”   ./pandora_paloalto2.sh -p 10.0.53.1 -i dfadfafafafaf  -q  “( receive_time geq ‘$datetime_old’ )”
        echo “”
        exit
    }

    while getopts ‘i:p:q:’ optname
      do
        
        case “$optname” in
          h)
        #    echo “opcion h”
        #    echo $OPTARG
                help
        ;;
          p)
         #   echo “opcion ip”
          #  echo $OPTARG
             IP=$OPTARG
            ;;
          i)
        #    echo “opcion id”
        #    echo $OPTARG
            ID=$OPTARG
            ;;
          q)
        #    echo “opcion q”
        #    echo $OPTARG
            QUERY=$OPTARG
            ;;
            ?)
        #    echo “opcion interrogante $OPTARG”
        #    echo “resto de argumentos: $*”
            help
            ;;
          default)
           #    echo “opcion help $OPTARG”
           #    echo “resto de argumentos: $*”
            help
        ;;
         
        esac
     

    done

    # Execution

    #echo “id -> ” $ID
    #echo “ip -> ” $IP
    #echo “query -> ” $QUERY

    curl –tlsv1 -sS -k –data-urlencode “query=$QUERY” “https://$IP/api/?type=log&logtype=threat&nlogs=1000&skip=0&key=LUfgRPT1Wekxxc2IxNXBieHRPcddaddaaaDBQR0fgR2TXRffXVklERffmc9Zm1tSGVkL3RjKdfdf1BGOWxTVzc2MUcyZURYck9qblZtNlRoSUlucUg3bjd3QT0=” > /tmp/fichero.txt
    job=$(grep -oPm1 “(?<=)[^<]+"<<< cat /tmp/fichero.txt) #echo "$job" sleep 70 | curl --tlsv1 -sS -k "https://$IP/api/?type=log&action=get&job-id={$job}&key=$ID" > /tmp/log.xml
    result=$(cat /tmp/log.xml | grep ‘count=’ | cut -d ‘”‘ -f 2)
    echo $result
    #echo “fin”

    #exit 0;

    El resultado es 0 o un número > 0

    Este fichero lo copio en /usr/share/pandora_server/util/plugin

    Le doy permisos 0755 para poder ejecutarlo.

    Luego en Pandora voy a Plugins y creo el plugin (adjunto imágenes.)
    Luego voy al dispositivo y creo un módulo plug-in. Pero nunca se inicaliza.

    No sé la causa. He aumentado el tiempo de timeout. Porque le cuesta un poco obtener la información. Pero ya he puesto un comando sleep en el código y desde el cli de linux funciona perfectamente.

    No sé, si existe un log donde poder ver lo que hace.

    He probado con diferentes tipos de datos num,num_inc,string. En todos los casos no funciona. También he jugado con el time-outs.

    Tengo habilitado en el archivo de configuración del servidor Pandora que ejecute los plugins.

    Tengo Pandora 6 sp1 y acabo de actualizar a pandora 6 sp6 con el mismo resultado.

    Agradecería cualquier tipo de ayuda.

    Gracias

    Nota: Adjunto imágenes y los valores que hay son inventados.

    vic replied 7 years, 7 months ago 2 Members · 1 Reply
  • 1 Reply
  • vic

    Administrator
    July 10, 2017 at 12:51
    1558 Karma points
    Community awards: bulb Bright ideas
    Community rank: tentacle_master_icon Tentacle Master
    Like it
    Up
    0
    Down
    Drop it
    ::

    Buenas ansator,

    ¿Podrías enseñarme el contenido del fichero de logs de Pandora?

    Se encuentra en:

    /var/log/pandora/padora_server.log

    Para aumentar la cantidad de información que se muestra se debe modificar el fichero:

    /etc/pandora/pandora_server.conf

    Dentro del fichero modificar el parámetro verbosity de 1 a 10 (1 la máxima información posible, 10 nada)

    verbosity 1

    Saludos.

    vic.