OPNsense
  • Home
  • Help
  • Search
  • Login
  • Register

  • OPNsense Forum »
  • International Forums »
  • German - Deutsch (Moderator: Patrick M. Hausen) »
  • Automatische Benachrichtigungen durch Opensense
« previous next »
  • Print
Pages: [1]

Author Topic: Automatische Benachrichtigungen durch Opensense  (Read 5583 times)

docb

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 3
    • View Profile
Automatische Benachrichtigungen durch Opensense
« on: June 02, 2018, 11:22:27 am »
Hallo Gemeinde,
ich nutze OpenSense jetzt schon ein paar Monate und bin mehr als zufrieden. Eines geht mir allerdings noch ab - kann man OpenSense dazu bringen, sich aktiv bei bestimmten Systemevents zu melden - also entweder eine Email zu schicken oder zB. über Pushover. Ich hätte z.B. gerne eine Benachrichtigung, wenn sich ein neues Gerät im Netzwerk anmeldet (ein neuer DHCP Lease erstellt wird). Gibt es da eine Möglichkeit, die ich bislang noch nicht gefunden habe? Also über System -> Einstellungen -> Benachrichtigungen kann man ja zumindest SMTP einrichten, aber wie kann ich denn steuern, dass ich bei bestimmten Events aktiv benachrichtigt werde?
Viele Grüße
doc
Logged

fabian

  • Hero Member
  • *****
  • Posts: 2769
  • Karma: 200
  • OPNsense Contributor (Language, VPN, Proxy, etc.)
    • View Profile
    • Personal Homepage
Re: Automatische Benachrichtigungen durch Opensense
« Reply #1 on: June 02, 2018, 06:51:57 pm »
Quote from: docb on June 02, 2018, 11:22:27 am
Ich hätte z.B. gerne eine Benachrichtigung, wenn sich ein neues Gerät im Netzwerk anmeldet (ein neuer DHCP Lease erstellt wird). Gibt es da eine Möglichkeit, die ich bislang noch nicht gefunden habe?
Meines wissens nach nein - monit ist derzeit das beste Überwachungswerkzeug auf OPNsense zur Überwachung von Diensten.

Quote from: docb on June 02, 2018, 11:22:27 am
Also über System -> Einstellungen -> Benachrichtigungen kann man ja zumindest SMTP einrichten, aber wie kann ich denn steuern, dass ich bei bestimmten Events aktiv benachrichtigt werde?
Das könnte in Zukunft entfernt werden, da es kaum verwendet wird und oft Probleme macht (insbesondere im Bezug auf TLS).
Logged

faunsen

  • Full Member
  • ***
  • Posts: 102
  • Karma: 17
    • View Profile
Re: Automatische Benachrichtigungen durch Opensense
« Reply #2 on: June 06, 2018, 04:35:47 pm »
Bei den DHCP Leases könnte Dir dieser Thread vielleicht weiter helfen.
Logged

docb

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 3
    • View Profile
Re: Automatische Benachrichtigungen durch Opensense
« Reply #3 on: June 09, 2018, 10:44:09 am »
Ja super, das hat mir weitergeholfen - falls es mal jemand braucht, mein Code scheint zu funktionieren ;-)
Und ja - das geht bestimmt eleganter, aber ich bin absoluter Linux/FreeBSD Noob.
Ich bin vorgegangen wie in dem Link beschrieben und habe nur das Skript angepasst.

Code: [Select]
#!/bin/csh
set FILE = "/var/dhcpd/var/db/dhcpd.leases"
set LeaseCount = `grep -c "binding state active" $FILE`
echo "Active LeaseCount: $LeaseCount"
if ($LeaseCount > 0) then
 set LINE = ( `grep -n "binding state active" $FILE | cut -d: -f1` )
 foreach L ($LINE)
  echo "##################"
 # set EL = `expr $L + 8`
  set CL = `expr $L - 5`
  while ( $CL < `expr $L + 8` )
   if ( `sed -n "$CL p" $FILE | cut -d ' ' -f1` == "lease" ) then
    echo IP: `sed -n "$CL p" $FILE | cut -d ' ' -f2`
   endif
   if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "starts" ) then
    echo Start: `sed -n "$CL p" $FILE | cut -d ' ' -f5,6`
   endif
   if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "ends" ) then
    echo Ende: `sed -n "$CL p" $FILE | cut -d ' ' -f5,6`
   endif
   if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "hardware" ) then
    echo MAC: `sed -n "$CL p" $FILE | cut -d ' ' -f5`
   endif
   if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "client-hostname" ) then
    echo Name: `sed -n "$CL p" $FILE | cut -d ' ' -f4-`
   endif
   if ( `sed -n "$CL p" $FILE | cut -d ' ' -f3` == "set" ) then
    echo Device: `sed -n "$CL p" $FILE | cut -d ' ' -f6-`
   endif
   if ( `sed -n "$CL p" $FILE | cut -d ' ' -f1` == "}" && $CL > $L ) then
    set CL = `expr $CL + 8`
   endif
   @ CL++
  end
 end
 exit 1
else
 exit 0
endif



Viele Grüße
doc
« Last Edit: June 10, 2018, 11:58:24 am by docb »
Logged

faunsen

  • Full Member
  • ***
  • Posts: 102
  • Karma: 17
    • View Profile
Re: Automatische Benachrichtigungen durch Opensense
« Reply #4 on: June 11, 2018, 08:54:16 am »
Für einen Noob gar nicht mal schlecht   ;)

Und danke für den Beitrag im Monit How-To  :)
Logged

docb

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 3
    • View Profile
Re: Automatische Benachrichtigungen durch Opensense
« Reply #5 on: June 11, 2018, 06:11:03 pm »
Danke ;-) Was man in 5!!! Stunden und dank Tante Google alles hinbekommt ;-)
Logged

NilsS

  • Full Member
  • ***
  • Posts: 176
  • Karma: 19
    • View Profile
Re: Automatische Benachrichtigungen durch Opensense
« Reply #6 on: June 13, 2018, 08:29:34 am »
Falls es jemand gebrauchen kann. Hatte mal ein dhcpd.leases2json in awk gebaut.

Code: [Select]
#!/bin/sh
awk 'BEGIN{RS = "}";FS = "\n"; printf "[";} END {printf "]";}{
    for (I=NF;I>0;I--) {
        split($I, lineArray, " ");
        if( lineArray[1] == "lease" ){
            ipaddr=lineArray[2];
            if(hascontent == 1) {
                printf ",";
            }
            hascontent=1;
            printf "{\"ipaddr\":\""ipaddr"\", \"state\":\""bindingstate"\", \"mac\":\""mac"\", \"hostname\":\""hostname"\", \"start\":\""start"\", \"end\":\""end"\", \"cltt\":\""cltt"\"}";
        }
        if( lineArray[1] == "binding" && lineArray[2] == "state") {
            bindingstate=lineArray[3];
            gsub(/\;/,"",bindingstate);
        }
        if( lineArray[1] == "hardware" && lineArray[2] == "ethernet") {
            mac=lineArray[3];
            gsub(/\;/,"",mac);
        }
        if( lineArray[1] == "client-hostname") {
            hostname=lineArray[2];
            gsub(/\;|"/,"",hostname);
        }
        if( lineArray[1] == "starts") {
            start=lineArray[3]" "lineArray[4];
            gsub(/\;/,"",start);
        }
        if( lineArray[1] == "ends") {
            end=lineArray[3]" "lineArray[4];
            gsub(/\;/,"",end);
        }
        if( lineArray[1] == "cltt") {
            cltt=lineArray[3]" "lineArray[4];
            gsub(/\;/,"",cltt);
        }
    }
}' /var/dhcpd/var/db/dhcpd.leases
« Last Edit: June 13, 2018, 09:41:31 am by NilsS »
Logged

  • Print
Pages: [1]
« previous next »
  • OPNsense Forum »
  • International Forums »
  • German - Deutsch (Moderator: Patrick M. Hausen) »
  • Automatische Benachrichtigungen durch Opensense
 

OPNsense is an OSS project © Deciso B.V. 2015 - 2024 All rights reserved
  • SMF 2.0.19 | SMF © 2021, Simple Machines
    Privacy Policy
    | XHTML | RSS | WAP2