Firewall-Kontroll-Skript

greenghost

FiSi in Lauerstellung
http://bsdforen.pastebin.com/559264

# /bin/sh
if((pfctl -s info | grep "Disabled") && (ifconfig xl3 | grep "8943"))
then
echo "FIREWALL-AUSFALL auf FW1\nInterfaces wurden heruntergefahren" | mail root -s "FIREWALL-MELDUNG"
ifconfig xl0 down
ifconfig xl1 down
fi

Irgendwie will er nicht. Ich vermute, dass cron mit grep nicht zusammenarbeiten will.
Da ich aber weder der cron-freak noch ein shellscript-fan bin, komme ich hier leider nicht weiter.
 
geb mal den vollen pfad zu pfctl, grep etc an.
cron lässt jedes script normal mit einem leeren $PATH rennen.

vielleicht ist das bereits des rätsels lösung. funktioniert das script denn ohne cron?
 
Dammit sowas nicht passiert

definiere doch einfach am Anfang des Skriptes die Pfade.

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin

Es gibt unter Umstaenden immer einen Fehler, auch wenn Du einen absoluten Pfad benutzt.

Zum Beispiel gorwisofs oder rsync, die zusaetzliche Programme aufrufen machen dann "Fehler", auch wenn Sie mit absolutem Pfad gestartet werden.

Ich habe da schon mal seeeeeeehr lange einen Fehler gesucht.
Nachdem ich den Pfad einfach definiert habe war alles gut.


CAT
 
greenghost schrieb:
http://bsdforen.pastebin.com/559264

# /bin/sh
if((pfctl -s info | grep "Disabled") && (ifconfig xl3 | grep "8943"))
then
echo "FIREWALL-AUSFALL auf FW1\nInterfaces wurden heruntergefahren" | mail root -s "FIREWALL-MELDUNG"
ifconfig xl0 down
ifconfig xl1 down
fi
von der genauen fehlersuche mal abgesehen, koenntest du mal bitte in worten beschreiben, was das script machen soll? klar, man sieht, dass es prueft, ob pf disabled ist oder ob xl3 eine bestimmte kombination von flags hat, aber der tiefere sinn fehlt mir irgendwie.

wie sollte zb pf von sich aus auf einmal abgeschaltet werden? und wieso der check auf genau eine spzifische flagkombination?

ich glaube, hier machst du irgendwas, was man so nicht machen sollte.

was ist der "grosse plan" dabei? :)
 
Der große Plan

Hi,

der Plan ist eigentlich recht simpel:
Ich möchte, dass, wenn die Firewall nicht mehr aktiv ist und die Interfaces aktiv sind, die Interfaces runterfahren und vorher noch 'ne mail an die Admins rausschicken.

sry: xl3 soll eigentlich xl1 heissen.

Gruß
green
 
ja, aber machst du denn noch was anderes, dass die firewall irgendwann mal nicht aktiv sein koennte? die schaltet sich doch nicht von selbst ab.

ausserdem ist ein pruefen auf komplette flags, wobei es wichtig ist, dass ein flag gesetzt ist, doch humbug. so koennen doch andere flags das script beeinflussen. wenn schon, dann solltest du genau ein flag pruefen. das ist zwar etwas komplizierter, dafuer exakter.
 
Mit der Firewall ist das so, dass ich die auf versehentliches Abschalten hinprüfen will/muss, damit keiner das Ding ausmacht und die Kiste ist komplett offen.
Wenn der dann die Interfaces abschaltet, dann springt die Backup-Firewall ein, die das ganze per carp mitbekommen sollte. Das gleiche Skript läuft da dann, wenn es mal funktioniert auch drauf.

Sollten alle Stricke reissen und irgendwer hat alles totgeschaltet in der Firewall ... oder nen Fehler in die conf gebaut, dann ist die Firewall tot, meldet sich vorher noch und macht anschliessend ganz dicht.
 
naja gut, klingt fuer mich zwar alles etwas wacklig, aber ok. nur die flagueberpruefung solltest du aendern.

was genau willst du pruefen? ob das interface "up" ist? auf anhieb faellt mir da ifconfig -u ein:
Code:
ifconfig -u xl3 | grep '^xl3:'
ist zwar auch nicht schoen, prueft allerdings nur genau das, was du wissen willst, naemlich ob das interface up ist. ich habe auf anhieb in meinem ifconfig nichts gefunden, was "up" oder "down" per return code anzeigen koennte. das geht maximal fuer den media-status, d.h. ob ein kabel drinsteckt oder nicht.
 
Hmm, irgendwie habe ich den Eindruck, dass ifconfig -u unter OpenBSD nicht geht, darum war ich auf die Geschichte mit den Flags umgestiegen.

Was aber wichtiger ist:
Die Geschichte mit dem Cron geht immernoch nicht.
Wenn ich das Skript händisch starte, dann klappts, ansonsten nicht. Gestartet wirds, aber der Kram mit dem grep klappt nicht.
 
aha, dass es um openbsd geht, wusste ich bis eben gar nicht.

in deiner umgebung ist es also wichtig, dass die firewall einen server um jeden preis schuetzt. trotzdem laufen da leute rum, die das ding "versehentlich" ausschalten oder manipulieren koennten? irgendwas passt da nicht ganz zusammen, und du solltest das ganze lieber vernuenftig machen anstatt mit wackeligen scripts hinterherzufrickeln.

wenn dein chef das ganze so will, solltest du ihm mal erklaeren, dass das so nicht gehen kann.
 
Nein, solche voll-Hondos, die das nicht gebacken kriegen, die Firewall vernünftig zu konfigurieren haben wir hier eigentlich nicht. Nur ich will halt allen Eventualitäten vorbeugen. Weil vorbeugen ist besser als auf die Schuhe kotzen.
Abgesehen davon gehe ich mit dem Skript einer Menge unangenehmer Fragen aus dem Weg.
 
Zurück
Oben