Haga que OSSEC ban ip en el firewall remoto

3

Estoy desplegando el modo de servidor de agente de arquitectura OSSEC. Quiero que el servidor prohíba ip no solo en el agente sino también en un firewall remoto (servidor iptables dedicado).

Busqué en la documentación de OSSEC pero no encontré la manera de hacerlo hasta ahora ...

    
pregunta 0x1gene 26.08.2013 - 09:57
fuente

3 respuestas

4

Puede hacer esto haciendo una respuesta activa personalizada . Esto requerirá que escriba un script que pueda agregar direcciones IP a su cortafuegos remoto. Sugiero leer sobre los documentos vinculados, ya que explican esto bastante bien.

    
respondido por el Lucas Kauffman 26.08.2013 - 10:02
fuente
4

Si tiene un agente OSSEC ejecutándose en el cortafuegos remoto, puede usar los comandos ossec nativos.

El < ubicación > La opción define dónde debe ejecutarse la respuesta activa. Normalmente está configurado para ejecutar la respuesta activa en el host que generó el evento ("local"), pero también puede configurarse para ejecutar la respuesta activa en cualquier host que tenga un agente ("agente definido").

Un ejemplo de una configuración de respuesta activa que siempre debe ejecutarse en un host específico, sin importar desde dónde se activó (en este ejemplo, el AR dispara las reglas del grupo ar_central_firewall y se ejecuta en el agente 123).

<active-response>
    <command>firewall-drop</command>
    <location>defined-agent</location>
    <agent_id>123</agent_id>
    <rules_group>ar_central_firewall</rules_group>
    <timeout>900</timeout>
</active-response>

La documentación de OSSEC ofrece una descripción general de todas las opciones de configuración posibles para respuestas activas.

    
respondido por el RSchulze 30.09.2013 - 15:50
fuente
1

Para las personas que están en el mismo caso que yo, aquí hay un pequeño guión que escribí para la ocasión:

remoteipdrop(){
    local client=$(cut -d':' -f1<<<"$1")
    local vuser=$(cut -d':' -f2<<<"$1")
        local vserver=$(cut -d':' -f3<<<"$1")
    cmd="ssh ${vuser}@${vserver} /sbin/iptables -A INPUT -s ${client} -j DROP"
    $cmd
}

remoteipundrop(){
    local client=$(cut -d':' -f1<<<"$1")
    local vuser=$(cut -d':' -f2<<<"$1")
        local vserver=$(cut -d':' -f3<<<"$1")
    cmd="ssh ${vuser}@${vserver} /sbin/iptables -L INPUT -vn --line-number | \
        grep ${client} | cut -c 1 | xargs /sbin/iptables -D INPUT"
    $cmd
}

usage(){
    echo "Usage: $0 {drop} \"clientIP:serverIP:sshUser:sshServer\""
    echo "Exemples:"
    echo -e "\t$0 drop \"1.2.3.4:root:www.example.com\""
    echo -e "\t$0 open \"1.2.3.4:443:eth0:202.54.1.5:root:www03.example.com\""
    exit 1
}

line="$2"

[ $# -ne 2 ] && usage

case $1 in
    open) remoteipadd "$line";;
    close) remoteipdelete "$line";;
    drop) remoteipdrop "$line";;
    undrop) remoteipundrop "$line";;
    *) usage
esac

Agregaré aquí cómo vincularlo con una respuesta activa.

    
respondido por el 0x1gene 27.08.2013 - 09:21
fuente

Lea otras preguntas en las etiquetas