OPNsense Forum
International Forums => German - Deutsch => Topic started by: blubern on July 04, 2022, 12:54:47 pm
-
Hallo zusammen,
kann mir jemand helfen und sagen wie ich über Monit meine WAN IP-Adresse (dynamisch) Monitore? Also das ich bei jedem Wechsel eine Email bekomme am besten noch mit der IP Adresse?
Grüße
::)
-
Das würde mich aktuell auch interessieren. Vielleicht weiß es ja jemand aus der Kommunity?
-
Auf der Suche nach einer Lösung bin ich über diesen Thread gestolpert. Da ich auch sonst nichts gefunden habe, habe ich das Folgende geschrieben:
Das folgende Skript überprüft, ob sich die öffentliche IPv4 (des Standardgateways) oder das IPv6 Prefix geändert hat und verschickt in diesem Fall eine Email:
(/tmp/igc0_prefixv6 anpassen auf die richtige Datei/Interface)
mkdir /usr/local/custom_scripts
vi /usr/local/custom_scripts/checknewip.sh
#!/bin/sh
CURRENT_IP=`curl -s https://ipv4.icanhazip.com/`
OLD_IP="${CURRENT_IP}"
CURRENT_PREFIX=$(cat /tmp/igc0_prefixv6)
OLD_PREFIX="${CURRENT_PREFIX}"
WORKDIR="/usr/local/custom_scripts"
cd "${WORKDIR}"
SUBJECT="opnsense01 - new ip detected"
CHANGED=0
echo "current ip: ${CURRENT_IP}"
if [ -f "${WORKDIR}/old_ip.txt" ]; then
echo "old_ip.txt found"
OLD_IP=$(cat "${WORKDIR}/old_ip.txt")
else
echo "no old_ip.txt found"
echo "${CURRENT_IP}" > "${WORKDIR}/old_ip.txt"
fi
echo "old ip: ${OLD_IP}"
if [ "${OLD_IP}" != "${CURRENT_IP}" ]; then
CHANGED=1
echo "ip changed"
echo "${CURRENT_IP}" > "${WORKDIR}/old_ip.txt"
fi
echo "current prefix: ${CURRENT_PREFIX}"
if [ -f "${WORKDIR}/old_prefix.txt" ]; then
echo "old_prefix.txt found"
OLD_PREFIX=$(cat "${WORKDIR}/old_prefix.txt")
else
echo "no old_prefix.txt found"
echo "${CURRENT_PREFIX}" > "${WORKDIR}/old_prefix.txt"
fi
echo "old prefix: ${OLD_PREFIX}"
if [ "${OLD_PREFIX}" != "${CURRENT_PREFIX}" ]; then
CHANGED=1
echo "prefix changed"
echo "${CURRENT_PREFIX}" > "${WORKDIR}/old_prefix.txt"
fi
MSG="old ip: ${OLD_IP}
new ip: ${CURRENT_IP}
old prefix: ${OLD_PREFIX}
new prefix: ${CURRENT_PREFIX}"
if [ "${CHANGED}" == 1 ]; then
"${WORKDIR}"/mailsender.py "${SUBJECT}" "${MSG}"
fi
exit 0
Das Python Skript zum Versenden der Email:
vi /usr/local/custom_scripts/mailsender.py
#!/usr/local/bin/python3
import smtplib
from email.message import EmailMessage
from email.utils import localtime
import sys
msg = EmailMessage()
msg.set_content(sys.argv[2])
msg['Subject'] = sys.argv[1]
msg['From'] = 'from@mailserver.xy'
msg['To'] = 'to@mailserver.xy'
msg['Date'] = localtime()
server = smtplib.SMTP('mailserver.xy', 25)
server.ehlo()
server.starttls()
server.ehlo()
server.login('from@mailserver.xy', 'mailpassword')
server.send_message(msg)
server.quit()
Dann noch für das OPNsense WebGUI einen Eintrag für die "Command"-Auswahl unter System->Settings->Cron anlegen:
vi /usr/local/opnsense/service/conf/actions.d/actions_own_checknewip.conf
[checknewip]
command:/usr/local/custom_scripts/checknewip.sh
parameters:
type:script
message:checking if ip4 or ip6 prefix has changed
description:check if ip4 or ip6 prefix has changed
und ein "service configd restart" durchführen, damit der neue Eintrag auch als Auswahl erscheint.
Dann einen neuen Cronjob angelegt mit "*/5" bei den Minuten (alle 5 Minuten ausführen) und als command "check if ip4 or ip6 prefix has changed". Description irgendwas eintragen (erforderlich).
Das Skript werde ich noch erweitern auf eine IPv4 / IPv6 Regex Üperprüfung und dann per API noch meine DNS Einträge bei OVH aktualisieren.
Hoffe das hilft jemandem.