Bering-uClibc 6.x - User Guide - Basic Configuration - Email Alerts

From bering-uClibc
Revision as of 03:22, 11 July 2018 by Jeanrocco (Talk | contribs)

Jump to: navigation, search

Note, work in progress...

These examples are not using the Bering-uClibc builtin email notification found in the master configuration file

[ lrcfg... 2) system configuration... 1) Master LRP settings... ]

Email notification example using your own ISP SMTP server or Google's:

If your ISP provides you with an email account, using their SMTP server to send notification emails is the simplest method since most will only require a simple authentication username & password. Some might use TLS/SSL in which case simply use curl otherwise you will need to get a certificate. In any case check your ISP SMTP server requirements. Last resort (joking...), if you have a Google account and certificate, you can use their SMTP server.

For the emails to get out you will have to add these rules to /etc/shorewall/rules

# pour les mails de Videotron....
SMTP(ACCEPT)    fw       net
ACCEPT          fw       net    tcp 587
ACCEPT          fw       net    tcp 465

This email gets sent when the router IP address changes

The script is saved as /etc/cron.daily/mailIP so it is executed daily at 06:42. It will check if the IP has changed.

  • Using sendmail:

The code can be found in this forum, along with many other hints...

firewall# cat mailIP
  # transmet l'adresse ip quand il change...
  IPNOW=$(ip addr | grep 255.255. | sed -n 's/^ *inet *\([.0-9]*\).*/\1/p')
  if grep -q $IPNOW /tmp/MyIP.log
  echo "No change"
  echo $IPNOW > /tmp/MyIP.log
  echo "Subject: l'adresse IP aujourd'hui: $IPNOW !!! " > /tmp/MyIP1.log
  echo "From: root@firewall" >> /tmp/MyIP1.log
  echo "Date:  `date -R`" >> /tmp/MyIP1.log
  echo "" >> /tmp/MyIP1.log
  echo "Salut mon petit JR..." >> /tmp/MyIP1.log
  echo "" >> /tmp/MyIP1.log
  echo "nouvel IP:  $IPNOW" >> /tmp/MyIP1.log
  echo "Uptime est: `uptime | cut -d ',' -f1 | sed 's/^.\{12\}//g'`" >> /tmp/MyIP1.log
  echo "" >> /tmp/MyIP1.log
  echo "---- " >> /tmp/MyIP1.log
  echo "de la part de ton gentil Routeur !!!" >> /tmp/MyIP1.log
  echo "" >> /tmp/MyIP1.log
  echo "" >> /tmp/MyIP1.log
  sendmail -S </tmp/MyIP1.log -froot@firewall -auxxxxxxxx -apyyyyyyyy

  • Using curl: replace the sendmail stanza with this one:
  curl --url smtps:// --mail-from root@firewall --mail-rcpt    --upload-file /tmp/MyIP1.log --ssl-reqd --user xxxxxxxx:yyyyyyyy --insecure

  • Using Google's SMTP: again replace the previous sendmail stanza with this one...
cat /tmp/MyIP1.log | sendmail -H"exec openssl s_client -quiet -CAfile /root/google-roots.pem -connect -tls1 -starttls smtp" -apyourgmailpassw

The certificate google-roots.pem comes from:

cd  (to /root)
mv roots.pem google-roots.pem

Look here for references:

I had some issues with the Equifax Certificate using this:

  • periodic notifications

You would like your router to report regularly to you it's alive and well, but without flooding your emails. Then have it send a weekly or monthly notification like so:

add this script as /etc/cron.weekly/mailIP_week

firewall# cat mailIP_week
 # PURPOSE: e-Mail me my external IP toutes les semaines...
 #  si ca marche bien deplace dans cron.monthly
 echo "" > /tmp/MyIP.log

you get the picture...