Proxmox pve-firewall Control-Script

Aus 1awww.com - Plesk-Server 1
Wechseln zu: Navigation, Suche

PVE-Firewall blockiert im Host plötzlich alle Verbindungen in und out:

Analyse, warum dies paSsierte

dies ist noch in Arbeit in unserem Test-System

Workarround firewall_control.sh

Wir haben ein einfaches ScrIPt entwickelt, daß bei einem Blocking ALLER Verbindungen, die Firewall abschaltet und den Administrator darüber informiert!
Dies ist in jedem Fall besser, als daß ein Host in Produktion neu gestartet werden muß, alleine schon aus folgenden Gründen:

  • ein Neustart (Kaltstart) schließt nicht die geöffneten Dateien korrekt
  • bei einem Neustart benötigt der Host extrem viel Zeit, um die Festplatten nach einem Kaltstart zu prüfen
  • Inode-Fehler können auftreten und die Konsistenz ist womöglich nicht vorhanden
  • ggf. wird ein neuer Kernel aktiviert, der nicht vollständig sauber programmiert ist und weitere Probleme verursacht

Das nachfolgende ScrIPt kann vom Hoster unter Proxmox in der Anzahl der Fehler etc. leicht angepaßt werden!

Das ScrIPt wird installiert in einem Unterverzeichnis von /Root mit dem Namen scrIPte, also /Root/scrIPte.
ScrIPtname ist: firewall_control.sh

#!/bin/bash
#
# IMPORTANT: check, that you have installed sendEmail or install with apt-get install sendEmail !!!
#
#
# When your firewall was open and you have resolve the problem, stop the warnings via Log-Rotate:
#
# /usr/sbin/logrotate --force /etc/logrotate.conf
#
# (c) under GPL by Detlef Bracker, 1awww.com - 07.05.2015

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
tail -n 1000 /var/log/syslog | grep "error (host unreachable)" | wc -l > /var/log/firewall_defunc.cnt
COUNTER=$(cat /var/log/firewall_defunc.cnt)
if (( $COUNTER > 6 )); then
pve-firewall stop
cat firewall_defunc.cnt | sendEmail -f Root@YOURHOSTNAME -t YOURMAILADDRESS -u "URGEND - YOURHOSTNAME FIREWALL STOPPED."
fi


Als nächstes muß das ScrIPt ausführbar gemacht werden mit chmod 700 /Root/scrIPte/firewall_control.sh

und anschließend muß ein Cronjob wie folgt angelegt werden:
*/1 * * * * /Root/scrIPte/firewall_control.sh

Bitte achten Sie darauf, daß das Programm sendEmail installiert ist!
Ersetzen Sie in der vorletzten Zeile YOURHOSTNAME / YOURMAILADDRESS jeweils mit Ihren eigenen Daten
Prüfen Sie, ob das ScrIPt in der syslog immer automatisch ausgeführt wird!
Im ScrIPt selbst befindet sich ein Hinweis, wie Sie nach einem Vorfall, wo sich die Firewall abgeschaltet hat, die Meldungen und das Abschalten der Firewall wieder auf Normal-Betrieb zurück geschaltet werden kann!