Skip to primary content
Skip to secondary content

blog.anichin.com

A place where you can find a little of everything.

blog.anichin.com

Main menu

  • Home
  • About
  • Microsoft Azure Blog
  • myopiablog
  • Paint Color Picker

Category Archives: Ubuntu

Post navigation

← Older posts
Newer posts →

How do I set up an email alert when a ssh login is successful?

Posted on January 28, 2019 by Angel
Reply

Original: https://askubuntu.com/questions/179889/how-do-i-set-up-an-email-alert-when-a-ssh-login-is-successful

Since the sshrc method doesn’t work if the user has their own ~/.ssh/rc file, I’ll explain how to do this with pam_exec as @adosaiguas suggested. The good thing is that this can also be easily adapted to login types other than ssh (such as local logins or even all logins) by hooking into a different file in /etc/pam.d/.

First you need to be able to send mail from the command line. There are other questions about this. On a mail server it’s probably easiest to install mailx (which is probably already installed anyway).

Then you need an executable script file login-notify.sh (I put it in /etc/ssh/ for example) with the following content. You can change the variables to change the subject and content of the e-mail notification. Don’t forget to execute chmod +x login-notify.sh to make it executable.

#!/bin/sh

# Change these two lines:
sender="sender-address@example.com"
recepient="notify-address@example.org"

if [ "$PAM_TYPE" != "close_session" ]; then
    host="`hostname`"
    subject="SSH Login: $PAM_USER from $PAM_RHOST on $host"
    # Message to send, e.g. the current environment variables.
    message="`env`"
    echo "$message" | mailx -r "$sender" -s "$subject" "$recepient"
fi

Once you have that, you can add the following line to /etc/pam.d/sshd:

session optional pam_exec.so seteuid /path/to/login-notify.sh

For testing purposes, the module is included as optional, so that you can still log in if the execution fails. After you made sure that it works, you can change optional to required. Then login won’t be possible unless the execution of your hook script is successful (if that is what you want).

For those of you in need of an explanation of what PAM is and how it works, here is a very good one.

Just make sure you have UsePAM set to yes in your sshd_config

And this is how to use Pushover API for alerts instead of email:

#!/bin/sh

# This script monitors /var/log/auth.log for SSH logins
# and sends a notification via Pushover when one is
# detected.

# Need to wait a bit before actually starting this script
sleep 90 # sleeps for 90 seconds

# Pushover
PUSHOVER_TITLE="FreeNAS SSH Login" # This is the title for each message.
APITOKEN=******
USERKEY=******

# Log
LOG=/mnt/Tank/sshNotify.log
/bin/date > $LOG
echo "PID: $$" >> $LOG

# Priority:   -2 to generate no notification/alert
#             -1 to always send as a quiet notification
#              0 to use the default priority
#              1 to display as high-priority and bypass the user's quiet hours
#              2 to also require confirmation from the user.
#                Note: For priority 2, the retry and expire parameters
#                      must also be supplied.

# Monitoring loop

echo "Script running." >> $LOG
/usr/bin/tail -Fn0 /var/log/auth.log | \
while read line ; do
    echo "$line" | grep -q " Accepted publickey for "
    if [ $? = 0 ] ; then
        TS=$(date +%s)
        USER=$(echo "$line" | cut -d':' -f4 | cut -d' ' -f5)
        IP=$(echo "$line" | cut -d':' -f4 | cut -d' ' -f7)
        /usr/local/bin/curl https://api.pushover.net/1/messages.json -d "token=${APITOKEN}&user=${USERKEY}&title=${PUSHOVER_TITLE}&message=User: ${USER}   IP: ${IP}&timestamp=${TS}&priority=-1"
    fi
done

echo "Script finished, will now exit." >> $LOG
/bin/date >> $LOG
exit 0

If using this with FreeNAS run the script by creating an entry under Tasks –> Init/Shutdown Scripts. The fields are:

Type: Command
Command: /bin/sh /mnt/Tank/sshNotify.sh &
When: postinit
Posted in Howto, Ubuntu | Tagged Send email on login, SSH | Leave a reply

Running multiple OpenVPN instances (multi port)

Posted on September 10, 2018 by Angel
Reply

Running multiple OpenVPN instances (multi port)

Posted in Howto, Ubuntu | Tagged multiple instances of OpenVPN, OpenVPN | Leave a reply

An In-Depth Guide to iptables, the Linux Firewall

Posted on July 10, 2018 by Angel
Reply

This is a great guide to iptables:

An In-Depth Guide to iptables, the Linux Firewall

Posted in Howto, Internet, Linode, Ubuntu | Tagged firewall, iptables | Leave a reply

IP Masquerade and Network Address Translation

Posted on February 21, 2018 by Angel
Reply

http://www.oreilly.com/openbook/linag2/book/ch11.html

Posted in Ubuntu | Tagged IP Masquerade, networking | Leave a reply

IP Masquerading using iptables

Posted on February 21, 2018 by Angel
Reply

http://billauer.co.il/ipmasq-html.html

Posted in Howto, Ubuntu | Tagged iptables | Leave a reply

The Beginner’s Guide to iptables, the Linux Firewall

Posted on February 21, 2018 by Angel
Reply

https://www.howtogeek.com/177621/the-beginners-guide-to-iptables-the-linux-firewall/

Posted in Howto, Ubuntu | Tagged firewall, iptables | Leave a reply

Tutorial: Installing OpenVPN on Ubuntu 16.04

Posted on February 19, 2018 by Angel
Reply

https://blog.ssdnodes.com/blog/tutorial-installing-openvpn-on-ubuntu-16-04/

To configure iptables look here:

https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04

 

Posted in Howto, Linode, Ubuntu | Tagged OpenVPN, Ubuntu 16.04 LTS | Leave a reply

How to Configure OpenVPN Access Server to Tunnel Traffic

Posted on February 14, 2018 by Angel
Reply

https://linode.com/docs/networking/vpn/configure-openvpn-access-server-to-tunnel-traffic/

Posted in Howto, Linode, Ubuntu | Tagged OpenVPN Access Server, Tunnel Traffic | Leave a reply

Install OpenVPN Access Server on Linux for Secure Communications

Posted on February 14, 2018 by Angel
Reply

https://linode.com/docs/networking/vpn/install-openvpn-access-server-on-linux/

Posted in Howto, Linode, Ubuntu | Tagged Linode, OpenVPN Access Server | Leave a reply

Install Roundcube on Ubuntu 16.04

Posted on February 8, 2018 by Angel
Reply

https://linode.com/docs/email/clients/install-roundcube-on-ubuntu/

Posted in Linode, Ubuntu | Tagged Linode, Roundcube | Leave a reply

Post navigation

← Older posts
Newer posts →

Archives

Categories

Tags

  • .Net (4)
  • asp.net core (5)
  • Azure (25)
  • Azure DevOps (4)
  • Backup (4)
  • catfish (3)
  • CenturyLink (4)
  • Cooking (12)
  • dd-wrt (9)
  • docker (26)
  • Entware (5)
  • Fire TV (6)
  • freenas (15)
  • gardening (3)
  • Git (9)
  • Greece (6)
  • Hyper-V (4)
  • IoT (4)
  • Kubernetes (6)
  • linux (7)
  • networking (5)
  • OpenMediaVault (3)
  • OpenVPN (7)
  • Oracle Cloud (5)
  • pfSense (14)
  • Pi-hole (4)
  • Plex (10)
  • Portainer (5)
  • Prometheus (4)
  • Proxmox (9)
  • Raspberry Pi (4)
  • RDP (5)
  • site-to-site VPN (7)
  • sitecore (18)
  • SQL Server (6)
  • SSH (8)
  • SSL (4)
  • Synology (16)
  • Travel (6)
  • Ubuntu (24)
  • upgrade (4)
  • vpn (9)
  • WordPress (4)
  • Youtube (5)
  • ZoneMinder (3)
Proudly powered by WordPress