Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Plugin Pandora
#1
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 "\t\t-p ip"
    echo -e "\t\t-id id firewall"
    echo -e "\t\t-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 "(?<=<job>)[^<]+"<<< 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.


Attached Files


.png   Screenshot_1.png (Size: 24.36 KB / Downloads: 8)
.png   Screenshot_2.png (Size: 21.63 KB / Downloads: 6)
.png   Screenshot_3.png (Size: 17.12 KB / Downloads: 6)
.png   Screenshot_4.png (Size: 5.4 KB / Downloads: 6)
.png   Screenshot_5.png (Size: 36.69 KB / Downloads: 7)
.png   Screenshot_6.png (Size: 24.89 KB / Downloads: 5)
 Reply
#2
Buenas ansator,

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

Se encuentra en:
Code:
/var/log/pandora/padora_server.log

Para aumentar la cantidad de información que se muestra se debe modificar el fichero:
Code:
/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)
Code:
verbosity 1


Saludos.

vic.
 Reply


Users browsing this thread: 1 Guest(s)


(c) 2006-2018 Artica Soluciones Tecnológicas. Contents of this wiki are under Create Common Attribution v3 licence. | pandorafms.com | pandorafms.org

Theme © MyBB Themes