Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Anregungen & Feature Requests
touro411
Posts: 25
Joined: March 8th, 2014, 10:00 am
Location: Frankfurt

Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by touro411 » September 16th, 2014, 12:48 pm

Hallo,

da ich eine Anregung habe, werde ich diese nun mal schreiben... :

Die Openvpn Zugänge(Zertifikate) sind ja nach einer gewissen Zeit abgelaufen und dann muss ein neuer User bzw. neues Zertifikat erstellt werden.

Wäre es möglich eine Funktion "einzubauen", die eine Erinnerungsemail an eine deffinierte Emailadresse schickt, mit einer Übersicht, welche Zertifikate bald ablaufen? Emailversand über SMTP-Relay...

VG

Touro411
Image

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » September 19th, 2014, 5:50 pm

Hallo touro411,
schau dir doch mal die index.txt (unter /var/ipfire/ovpn/certs zu finden) an. Da findest du in der 2. Spalte (die ersten 6 Ziffern geben YYMMDD an) den revocation date. Vielleicht lässt sich der mittels if Loop in einer for Schleife mit einem entsprechenden date command auf entsprechende Tage Korrelieren.

Zum verschicken von Emails über Skripte empfiehlt sich sendEmail --> http://wiki.ipfire.org/de/optimization/ ... mail/start .

So als erste Idee. Was hast du bist jetzt schon entwickelt ?

Grüsse,

UE
Last edited by ummeegge on September 20th, 2014, 2:58 pm, edited 1 time in total.
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » October 4th, 2014, 1:39 pm

Hallo Touro411,
ich hab da mal ein Shellskript vorbereitet was den Job event. für dich machen kann.

Code: Select all

#!/bin/bash -

# cert_check.sh
#
# ummeegge 01.09.2014
##################################################################
# This script checks OpenVPNs index.txt for how much time is left
# until a client certificate will be expired.
# Also the host and N2N certificates are excluded.
# Time should be configured by the individual needs,
# but is currently configured to 5 days.
# In here --> https://forum.ipfire.org/viewtopic.php?f=17&t=11513 ,
# a topic can be found for corrections or enhancements.
#

set -x

## How much days should be left until an alert should be fired
# ----- PLEASE EDIT HERE YOUR DESIRED DAYS -----
ALERT="5";

## Paths
FILE="/var/ipfire/ovpn/certs/index.txt";
MAIL="/tmp/list";

## Searcher
certs_date=$(awk '/^V/ {print $2}' ${FILE} | cut -c1-6 | grep '^1');

## Time values
NOW=$(date +%s);
# 24 hours in seconds
DAY="86400";

## Mail preparation
# Copy reduced index.txt list to /tmp.
# Without already revoked and host certificate
echo -e "\033[1;36m List of OpenVPN certificate expiration dates from $(date) \033[0m" > ${MAIL};
echo >> ${MAIL};
echo "These days are from the following copy of index.txt in listing order calculated." >> ${MAIL};
echo >> ${MAIL};
awk '/^V/ {print $2"\t", $3"\t", $5"\t"}' ${FILE} | sed '/^4.*Z/d' >> ${MAIL};

# Clarification of the content
echo >> ${MAIL};
echo -e "\033[1;36m Time until expiration in days: \033[0m" >> ${MAIL};
echo  >> ${MAIL}

## Calculation
for i in ${certs_date}
do
    # Convert index.txt time to UNIX time
    UNTIL=$(date -d "${i}" +%s)
    # Calculate differences
    DIFF=$(expr ${UNTIL} - ${NOW})
    # Convert UNIX time to days
    REST=$(expr ${DIFF} / ${DAY})
    # Text with integrated result
    echo "--------------------------------------------------------------------"
    echo "| Es sind noch ${REST} Tage uebrig bis das Zertifikat abgelaufen ist"
done >> ${MAIL}

# Clarification of the content
echo >> ${MAIL};
echo -e "\033[1;36m Already revoked hosts and N2N certificate are not listed in here.\033[0m" >> ${MAIL};
echo >> ${MAIL};

# Checks calculated time in list
MAILALERT=$(awk '/^\| / {print $5}' ${MAIL});

# Check if Mail should be fired
for m in ${MAILALERT}
do
if (( "${ALERT}" >= "${m}" )); then
#    /usr/bin/gpg --encrypt -a --recipient ED9991FC ${MAIL};
#    /usr/local/bin/sendEmail -f username@web.de -t username@web.de \
#    -o tls=yes -s smtp.web.de:587 \
#    -xu username -xp "Mein_kryptisches_passwort" \
#    -vvv \
#    -m "This list contains certificates which will be expires in ${ALERT} days." \
#    -u "Test" \
#    -a "${MAIL}.asc";
    echo "Ich schick dir eine Mail";
else
    echo "Ich schick dir nichts...";
fi
done

# Clean up /tmp
#rm -rf /tmp/list*;

# End of cert check



Du kannst oben unter "ALERT" die Tage eintragen die es noch braucht bis ein Zertifkat abgelaufen ist und du eine Email geschickt bekommen möchtest.
Ich habe zu Testzwecken die sendEmail Zeilen erstmal auskommentiert damit du es Testen kannst. Wenn du dann den nächsten Schritt machen möchtest, konfiguriere dir deine Daten für deine Email Adresse (würde vorzugsweise ein extra Email Account hierfür aufmachen). Ausserdem hab ich die Mail mal mit GPG auf dem Fire verschlüsselt, hierfür brauchst du einen Pubkey von deinem Mailclient den du auf Fire integrierst bzw. erst mal einrichten musst. Wie das geht kannst du im sendEmail Wiki finden. sendEmail verwendet hier ausserdem eine Transportverschlüsselung.

Wenn du dann alles mal eingerichtet und gecheckt hast, kannst du dir ein Cronjob auf einmal pro Tag o.ä. einrichten.

So als erste Idee.

Kannst ja mal schauen wie weit du kommst und ob das alles was ist für dich bzw. funktional ist.

UE

EDIT:
- Du findest dann unter /tmp ein File namens 'list' der dann deiner Email entspricht vorrausgesetzt das Limit ist erreicht.
- Host Zertifikat und N2N Verbindungen werden nicht berechnet oder angezeigt da hier das OpenSSL Max. vom WUI konfiguiriert wird.
- Debug angeschaltet.

Beispiel:

Code: Select all

V   160512093750Z      06   unknown   /C=DE/ST=HH/O=test/OU=FZeit/CN=test
V   150408093841Z      07   unknown   /C=DE/ST=HH/O=test/OU=FZeit/CN=testZwei
V   141229143922Z      0A   unknown   /C=DE/ST=HH/O=test/CN=testFuenf
V   141109144125Z      0C   unknown   /C=DE/ST=HH/O=test/CN=testSieben
V   141010144249Z      0D   unknown   /C=DE/ST=HH/O=test/CN=testAcht

These days where calculated from index.txt where a copy can be found above.

The revoked certificates the host and N2N certificate are not listed in here.

--------------------------------------------------------------------
| Es sind noch 585 Tage uebrig bis das Zertifikat abgelaufen ist
--------------------------------------------------------------------
| Es sind noch 185 Tage uebrig bis das Zertifikat abgelaufen ist
--------------------------------------------------------------------
| Es sind noch 85 Tage uebrig bis das Zertifikat abgelaufen ist
--------------------------------------------------------------------
| Es sind noch 35 Tage uebrig bis das Zertifikat abgelaufen ist
--------------------------------------------------------------------
| Es sind noch 5 Tage uebrig bis das Zertifikat abgelaufen ist


Wenn GPG eingerichtet und funktional ist, gibt es einen 2. File namens list.asc, der dann dem Infoblock in der Email entspricht die du zugeschickt bekommst.

Das sieht dann z.b. so aus:

Code: Select all

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.12 (GNU/Linux)

hQIMA34igplOlVkJARAAhxIoEeBbMykx84t4wsStIdg2CAgn807wjWCbvD5NZl+R
UXk8jSNUMgPJMDnx7PYK/acvh3yCLkrW6AkH1ul2gYKtvo0jn4lHywZayV0vSSsx
W+B59mNvfArDXwgWqsmwCCVZYOwM5+eBKj541NS8jzKpM5zronqm2NUuIQkR9kht
RqdsZXOewaJDHWIe+qH6i8G4ukBvXNt6zJ/2Tx5Wtu2EpQ2tHkdZ3Iqw4lfYSK5n
bujs9pLz8IyQR3aQxblOY5YaJuMqqMCTEafY0oFrpM9fYLBz/pWSTrgLKOIQzk6T
/eANMKrgUNiKgL/EQnuTsldLiLMFZFgLl3EZHeJvr+KjhIW8NYVqy52NxcEOioYu
EUTLFpEfO1+1smaPu2Czi0NbRSQ5Ko9Cjbg0Axsfqs3zXccywog1Xx3/qPDrcrw2
ETenVOIql0qperl7Sb0iZLpMlHa5TaEPjyjG00RwZL9CDML5hxGFqBaVWgTpfeQx
VzjtfrFCnb0OPgNSPcfDRy+dTvod/3UvDlt3z5X7j7Xr09DsqnI1EDVK+uYFCPv4
+RXCLjIZBSSIcAaBNnV56gmkxhkSxIL6muHO4EC2ztCTOFNJyrNEYM+3cIZzrde3
bbUhxRtQ257XEQ+QytEji3FPeMsmrsCm7VgvU43hhn7U/5VuuY0bcXVzuLrmHmbS
wLcB+2RND5jfomsoXB072vVvkmJkFVIF3kPc4Hyz0RQSA0vXjybXkN6xO1K3uf84
FnMnFiOE50xRd97NboBnfHOvv0e9Otc/BltuqAhMmxHjcjPwKM0buO3SZxREWBbS
5cCO16u3qmuaNRtzc/E+D3kRM9KLzuHESrF1k615YQUSJtXbTMikcLIMO2bKI0o0
3Eb5/4bn8HI2o/d5JW45nAcp0adeaHTTPZOrYuBoBOx3OPHWgqjW49NrqVa1ZmSd
tleptGD1MzOXqQ9aTYDLG8Nvxv7LfRb4ADrz3a4tlkZ7U91RqU9pbRWNLluuxNI9
pCYnxSlfXiKBOOzqdJKgBbrsAEPRqahgRiI3gm8Dof11pZdq+0N+LxIp5cus1Oqm
O1MTDaHCxfEiAvTiiHo3gdmx7wsL+qOgISy9bQZMBWT0W3uVI927QMPQ0LLYD+0O
OWd4S0YZiGWDpjhF8mzdYCgwjar0S16um2BQn8MaXWfdHe26jjaYCP4=
=kWTi
-----END PGP MESSAGE-----


Wenn das Skript scharf geschaltet ist, werden die Überreste nach dem verschicken der Mail in /tmp gelöscht.

EDIT(s):
- URL zum Thema im Skript gefixt
Last edited by ummeegge on November 29th, 2014, 9:51 pm, edited 1 time in total.
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » November 29th, 2014, 7:52 pm

Hab mal andere commands genommen und das list Format ein wenig verändert, könnte aber bestimmt noch schicker gemacht werden  ;) .

Grüsse,

UE
Image
Image

touro411
Posts: 25
Joined: March 8th, 2014, 10:00 am
Location: Frankfurt

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by touro411 » December 22nd, 2014, 3:07 pm

Danke, für das Skript ich werde es nach Weihnachten testen. Wäre es denkbar so eine Funktion einzubauen in IPFire, so dass man die Email angibt und die Tage vor Ablauf... ? Wäre eine feine Sache.. :-)

Grüße
Touro411

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » December 22nd, 2014, 5:22 pm

Hallo touro411,
das sollte alles erstmal ein wenig auch von anderen durchgestestet/erweitert/verbessert werden bis das dann in eine CGI oder auch event. in die ovpnmain.cgi integriert werden könnte denke ich.

Grüsse,

UE

5p9
Mentor
Mentor
Posts: 1853
Joined: May 1st, 2011, 3:27 pm

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by 5p9 » March 25th, 2015, 1:47 pm

Hi UE,

hab gerade deine Funktion gestestet mit der sendemail aktion.
Lauf da in eine Fehler rein:

Code: Select all

+ for m in '${MAILALERT}'
+ ((  992 >= 210  ))
+ /usr/local/bin/sendEmail -f  username@wasauch.immer -t  username@wasauch.immer
Reading message body from STDIN because the '-m' option was not used.
If you are manually typing in a message:
  - First line must be received within 60 seconds.
  - End manual input with a CTRL-D on its own line.
 


Code: Select all

./cert-check.sh: line 79: -m: command not found
+ -a /tmp/list
./cert-check.sh: line 82: -a: command not found
+ echo 'Ich schick dir eine Mail'


er erwartet wohl eine Eingabe und -m wie auch -a will er nicht so recht verstehen.

Orgnialschnippsel:

Code: Select all

# Checks calculated time in list
MAILALERT=$(awk '/^\| / {print $5}' ${MAIL});
 
# Check if Mail should be fired
for m in ${MAILALERT}
do
if (( "${ALERT}" >= "${m}" )); then
#    /usr/bin/gpg --encrypt -a --recipient ED9991FC ${MAIL};
    /usr/local/bin/sendEmail -f username@wasauch.immer -t username@wasauch.immer \
#    -o tls=yes -s smtp.web.de:587 \
#    -xu username -xp "Mein_kryptisches_passwort" \
#    -vvv \
    -m "This list contains certificates which will be expires in ${ALERT} days." \
   -u "Test" \
    -a "${MAIL}";
    echo "I'll send you an e-mail";
else
    echo "I'll send you nothing ...";
fi
done

Die Mails kommen an jedoch ohne Inhalt und Betreff wie er schon sagt -m und -a will er in dieser Form nicht.
Irgendwelche Ideen?

VG, 5p9

PS: http://wiki.ipfire.org/en/optimiziation ... stat/start
Mail Gateway: mail proxy

Image

Image

5p9
Mentor
Mentor
Posts: 1853
Joined: May 1st, 2011, 3:27 pm

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by 5p9 » March 25th, 2015, 2:16 pm

Update:

Irgendwelche Ideen?

Ja, do not use # in sendemail-line!!!!

Also im Klartext, nicht auskommentieren in diesem Bereich sondern alles entfernen, somit kommt auch alles an:

Code: Select all

# Checks calculated time in list
MAILALERT=$(awk '/^\| / {print $5}' ${MAIL});
 
# Check if Mail should be fired
for m in ${MAILALERT}
do
if (( "${ALERT}" >= "${m}" )); then
    /usr/local/bin/sendEmail -f username@wasauch.immer -t username@wasauch.immer \
    -m "This list contains certificates which will be expires in ${ALERT} days." \
   -u "Test" \
    -a "${MAIL}";
    echo "I'll send you an e-mail";
else
    echo "I'll send you nothing ...";
fi
done
Mail Gateway: mail proxy

Image

Image

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » March 26th, 2015, 2:26 pm

Hallo 5p9,
5p9 wrote:Ja, do not use # in sendemail-line!!!!

Also im Klartext, nicht auskommentieren in diesem Bereich sondern alles entfernen, somit kommt auch alles an:

Code: Select all

# Checks calculated time in list
MAILALERT=$(awk '/^\| / {print $5}' ${MAIL});
 
# Check if Mail should be fired
for m in ${MAILALERT}
do
if (( "${ALERT}" >= "${m}" )); then
    /usr/local/bin/sendEmail -f username@wasauch.immer -t username@wasauch.immer \
    -m "This list contains certificates which will be expires in ${ALERT} days." \
   -u "Test" \
    -a "${MAIL}";
    echo "I'll send you an e-mail";
else
    echo "I'll send you nothing ...";
fi
done


zu Testzwecken hatte ich den sendEmail Block auskommentiert damit da in der Testphase nicht Emails ohne Ende reinrasseln sondern mittels 'Ich bekomme eine Mail' bzw. 'Ich bekomme keine Mail' geschaut werden kann ob die konfigurierte Zeitspanne ab wann eine Mail geschickt wird gecheckt werden kann, aber das hast du ja schon rausgefunden.
Prinzipiell könnte da noch einiges hübscher gemacht werden,
- Abfrage der Zeit wie lange ein Zertifikat noch gültig sein soll bis die erste Warnmail abgeschickt wird könnte mittels Userdialog über das Skript noch eingebaut werden.
- Das Layout der Mail lässt sich da auch noch schicker machen (siehe alter Thread Eventstatusmail (wenn du dich noch erinnerst ;) )).
- Da mit Core 89 (derzeit noch im Testing) auch ein expiring date für N2N Zertifikate gesetzt werden kann (siehe --> http://planet.ipfire.org/post/ipfire-2- ... or-testing unter dem ersten Punkt bei OpenVPN), sollte dies auch im Skript berücksichtigt werden. Das war früher (derzeit noch aktuell mit Core 88) bei N2N das selbe wie bei dem Host Zertifikat wo das OpenSSL Maximum (47************Z) automatisch vom WUI gesetzt wurde und ich deshalb N2N und das Host Zert raus gesed'ed habe.
- Es lässt sich auch überlegen ob die Expired (schon abgelaufenen) Zertifikate vielleicht noch in eine Übersicht mitrein kommen ?! Derzeit werden nur Valide (mit 'V' gemarkte Zerts) mittels awk rausgesucht. 'E' wäre dann für die abgelaufenen Zerts das Suchkriterium ....
EDIT:
- Cronjob lässt sich ja theoretisch auch über das Skript erledigen.

Um ein paar Punkte zu nennen. Vielleicht fällt dir ja auch noch was ein um das Skript noch ein wenig schicker zu machen :) .

Übrigens danke für den Wiki Eintrag, sieht doch ganz schick aus.

Grüsse,

UE

P.S. Zur ersten Anfrage hier von dir hab ich keine Benachrichtung bekommen, kann sein das 'Notify me when a reply is posted' nicht aktiviert war ?!
Image
Image

5p9
Mentor
Mentor
Posts: 1853
Joined: May 1st, 2011, 3:27 pm

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by 5p9 » March 27th, 2015, 6:35 am

Hi UE,

ja das es auskommentiert war habe ich gesehen und die für mich interessanten Funktionen wieder aktiviert.
Den Rest wie den GPG-Bereich hatte ich so auskommentiert belassen mit #

Lustig ist, was ich bei genaueren Hinsehen bemerkt habe das er wohl mit # zwischen den Zeilen nach Sender/Empfänger Angaben abbricht, da sendEmail damit nicht umgehen kann.

Beispiel:

Code: Select all

if (( "${ALERT}" >= "${m}" )); then
#    /usr/bin/gpg --encrypt -a --recipient ED9991FC ${MAIL};
    /usr/local/bin/sendEmail -f username@wasauch.immer -t username@wasauch.immer \
#    -o tls=yes -s smtp.web.de:587 \
#    -xu username -xp "Mein_kryptisches_passwort" \
#    -vvv \
    -m "This list contains certificates which will be expires in ${ALERT} days." \
   -u "Test" \
    -a "${MAIL}";
    echo "I'll send you an e-mail";


nach # -vvv\ kam er nicht weiter:

Code: Select all

./cert-check.sh: line 79: -m: command not found
+ -a /tmp/list
./cert-check.sh: line 82: -a: command not found
+ echo 'Ich schick dir eine Mail'


Also müssen alle Zeilen die nicht benötigt und ein # davor stehen haben komplett entfernt werden.

- Abfrage der Zeit wie lange ein Zertifikat noch gültig sein soll bis die erste Warnmail abgeschickt wird könnte mittels Userdialog über das Skript noch eingebaut werden.

Wird das nicht schon per:

Code: Select all

## How much days should be left until an alert should be fired
# ----- PLEASE EDIT HERE YOUR DESIRED DAYS -----
ALERT="5";

erledigt? Hier kann ich ja 30, 100 usw eingeben. Danach erstelle ich eh den Cronjob und dieser macht den Rest. Oder verstehe ich dich hier jetzt falsch?

- Das Layout der Mail lässt sich da auch noch schicker machen (siehe alter Thread Eventstatusmail (wenn du dich noch erinnerst ;) )).

Oh ja. Finde ich auch...ist auch der nächste Job hierfür. Zumal auch Cert wie Zeit am besten in eine Zeile bzw. gleich unter einander aufgeführt werden sollte, da es bei mehr Certs schnell unübersichtlich wird ;)

- Da mit Core 89 (derzeit noch im Testing) auch ein expiring date für N2N Zertifikate gesetzt werden kann (siehe --> http://planet.ipfire.org/post/ipfire-2- ... or-testing unter dem ersten Punkt bei OpenVPN), sollte dies auch im Skript berücksichtigt werden. Das war früher (derzeit noch aktuell mit Core 88) bei N2N das selbe wie bei dem Host Zertifikat wo das OpenSSL Maximum (47************Z) automatisch vom WUI gesetzt wurde und ich deshalb N2N und das Host Zert raus gesed'ed habe.

Das habe ich schon gelesen 8) aber Testen kann ich das leider nicht, keine N2N Verbindung auf meinen Büxen hinterlegt. Muss daher jemand anderes übernehmen, aber eine gute Idee!

- Es lässt sich auch überlegen ob die Expired (schon abgelaufenen) Zertifikate vielleicht noch in eine Übersicht mitrein kommen ?! Derzeit werden nur Valide (mit 'V' gemarkte Zerts) mittels awk rausgesucht. 'E' wäre dann für die abgelaufenen Zerts das Suchkriterium ...

Könnte man auch machen zwecks der Vollständigkeit, stimmt!

P.S. Zur ersten Anfrage hier von dir hab ich keine Benachrichtung bekommen, kann sein das 'Notify me when a reply is posted' nicht aktiviert war ?!

Eigentlich sehe ich wenn jemand Antwortet in den Notifications? Welche meinst du jetzt genau?

5p9
Mail Gateway: mail proxy

Image

Image

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » March 27th, 2015, 10:12 am

Moin 5p9,
5p9 wrote:Lustig ist, was ich bei genaueren Hinsehen bemerkt habe das er wohl mit # zwischen den Zeilen nach Sender/Empfänger Angaben abbricht, da sendEmail damit nicht umgehen kann.

ja das sieht so aus als ob sendEmail mit Rauten ein Problem hat, in dem Fall dann also einfach rauslöschen...

5p9 wrote:

Code: Select all

## How much days should be left until an alert should be fired
# ----- PLEASE EDIT HERE YOUR DESIRED DAYS -----
ALERT="5";

erledigt? Hier kann ich ja 30, 100 usw eingeben. Danach erstelle ich eh den Cronjob und dieser macht den Rest. Oder verstehe ich dich hier jetzt falsch?

Nein das verstehst du richtig. Ich dachte nur das es eine Idee sein könnte eine Art Installer zu schreiben der dann alles mittels Userdialog einrichtet. Vielleicht ist das auch zuviel Schnick Schnack, könnte sich aber auch lohnen wenn noch das ein oder andere Feature welches individuelle Daten benötigt hinzukommt.

5p9 wrote:Oh ja. Finde ich auch...ist auch der nächste Job hierfür. Zumal auch Cert wie Zeit am besten in eine Zeile bzw. gleich unter einander aufgeführt werden sollte, da es bei mehr Certs schnell unübersichtlich wird ;)

Mit 'printf' dann ? Ich komme derzeit leider nicht so richtig dazu da ich noch unterwegs bin, vielleicht ergibt sich ja auch noch ein wenig Zeit hierfür. Wenn du Lust hast dann kannst du aber auch los legen O0 gell !

5p9 wrote:Das habe ich schon gelesen 8) aber Testen kann ich das leider nicht, keine N2N Verbindung auf meinen Büxen hinterlegt. Muss daher jemand anderes übernehmen, aber eine gute Idee!

Hab gesehen das dass gar nicht nötig ist da N2N, sofern konfiguriert, dann ja auch die entsprechenden Zeitstempel bekommt. Solange da kein 47*Z steht wird N2N auch mit in die Berechnung einbezogen, müsste nur der Warnhinweis im Skript gelöscht werden.

5p9 wrote:Könnte man auch machen zwecks der Vollständigkeit, stimmt!

O.K. finde die Idee auch nicht so schlecht, können wir ja in die ToDo Liste Packen.

5p9 wrote:Eigentlich sehe ich wenn jemand Antwortet in den Notifications? Welche meinst du jetzt genau?

Den ersten Post von dir hier meinte ich, hat sich aber scheinbar erledigt da es jetzt klappt.

Wie schon geschrieben bin ich derzeit noch unterwegs aber wenn ich dennoch dazu komme hier weiter zu machen meld ich mich wieder, vielleicht kommst du ja auch dazu.

Hast du schon allgemein mal gecheckt ob die Zeit Kalkulation gut hinhaut ? Hab ihn erstmal in´s UNIX Timeformat konvertiert und mit Sekunden gerechnet...

Grüsse,

UE
Image
Image

OdonGarma
Posts: 32
Joined: May 21st, 2015, 7:07 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by OdonGarma » April 9th, 2019, 11:02 am

Gibt's da eine finale, funktionierende Version?

Greetz
Hardware: APU.3C4 (4.9.0.2), AMD GX-412TC SOC x4, 4GB-RAM, 32GB mSata SSD, 3x Intel I211 NIC
Modem: ZyXEL VMG1312-B VPN: IPSec (n2n), OpenVPN (Roadwarrior)

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » April 11th, 2019, 6:17 am

Moin,
funtionierend eigentlich schon, schick gemacht eigentlich noch nicht --> https://gitlab.com/ummeegge/scripts/blo ... n_check.sh . Das Skript ist nach wie vor im Debug Mode, die sendEmail Kommandos sind auskommentiert, /tmp wird noch nicht aufgeräumt. Kannst ja mal reinschauen... Optimierungen sind willkommen.

Grüsse,

UE
Image
Image

OdonGarma
Posts: 32
Joined: May 21st, 2015, 7:07 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by OdonGarma » April 12th, 2019, 9:50 am

Das sieht schon gut aus nur steht in der Mail bzw. dem Anhang keine comon name drin. Ich bekomme das nur so:

Code: Select all

699 days are left for user with the common name - 	
357 days are left for user with the common name - 	
Gibt's da einen schnellen Fix bevor ich mich hier selber einarbeiten muss?

UPDATE:
Das Problem liegt in dem awk Befehl in Zeile 91. Es wird zu früh abgeschnitten wenn der "CN=" oder "O=" Leerzeichen enthält.

Code: Select all

/usr/bin/awk '/^V/ { print $2" ",$3" ",$5}' ${INDEX} | sed '/^4.*Z/d' | grep -o 'CN=.*' > ${CERTLIST};
Greetz
Hardware: APU.3C4 (4.9.0.2), AMD GX-412TC SOC x4, 4GB-RAM, 32GB mSata SSD, 3x Intel I211 NIC
Modem: ZyXEL VMG1312-B VPN: IPSec (n2n), OpenVPN (Roadwarrior)

ummeegge
Community Developer
Community Developer
Posts: 4893
Joined: October 9th, 2010, 10:00 am

Re: Erinnerungsemail bei Ablauf von Openvpn Zugänge/Zertifikate

Post by ummeegge » April 12th, 2019, 5:30 pm

Hier passt das soweit:
From Fri Apr 12 12:02:55 CEST 2019


mailalert.asc

------------------------------------------------------------------------------------------------------------------------
List of OpenVPN certificate expiration dates from ipfire.local - Fri Apr 12 12:02:55 CEST 2019
------------------------------------------------------------------------------------------------------------------------

0 days are left for user with the common name - CN=testeins
1 days are left for user with the common name - CN=testzwei
3 days are left for user with the common name - CN=testFuenf


Already revoked certificates and such with OpenSSL maximum are not listed in here.

You will deliver mails also for '0 days left' certificates. If they are presant you should clean them up.

wie sieht denn deine /var/ipfire/ovpn/certs/index.txt aus ?

Grüsse,

UE
Image
Image

Post Reply