Add script that sends email if user successfully logs in over SSH
This commit is contained in:
parent
4628db3109
commit
74e3f9c677
1
mail_on_ssh/.gitignore
vendored
Normal file
1
mail_on_ssh/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
mail_on_ssh.conf
|
8
mail_on_ssh/README.md
Normal file
8
mail_on_ssh/README.md
Normal file
@ -0,0 +1,8 @@
|
||||
# Installation
|
||||
|
||||
After setting up mail_on_ssh.conf, add the following configuration to `/etc/pam.d/sshd`
|
||||
|
||||
```
|
||||
# Send an email if somebody logs in successfully over SSH
|
||||
session optional pam_exec.so seteuid $PATH2SERVER_SCRIPTS/mail_on_ssh/mail_on_ssh.sh -c $PATH2SERVER_SCRIPTS/mail_on_ssh/mail_on_ssh.conf
|
||||
```
|
4
mail_on_ssh/mail_on_ssh.conf.example
Normal file
4
mail_on_ssh/mail_on_ssh.conf.example
Normal file
@ -0,0 +1,4 @@
|
||||
#################################################################
|
||||
# Config
|
||||
#################################################################
|
||||
RECEPIENT='' # Send email to this address
|
55
mail_on_ssh/mail_on_ssh.sh
Executable file
55
mail_on_ssh/mail_on_ssh.sh
Executable file
@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
#################################################################
|
||||
# Check availability of software
|
||||
#################################################################
|
||||
function availability {
|
||||
if [[ ! $(command -v $1) ]]; then
|
||||
echo Error: '$1' is not available but required. Please install it!
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
availability mail
|
||||
|
||||
#################################################################
|
||||
# Get arguments
|
||||
#################################################################
|
||||
missingArg()
|
||||
{
|
||||
echo "Error: Please define the configuration to be used!"
|
||||
echo " Usage: $0 -c <configuration_file>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
while getopts "c:" opt
|
||||
do
|
||||
case "$opt" in
|
||||
c ) CONFIG_FILE="$OPTARG" ;;
|
||||
? ) missingArg ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check if config was empty
|
||||
if [ -z "$CONFIG_FILE" ]
|
||||
then
|
||||
missingArg
|
||||
fi
|
||||
|
||||
# Check if config file exists
|
||||
if [ ! -f $CONFIG_FILE ]
|
||||
then
|
||||
echo "$CONFIG_FILE does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source $CONFIG_FILE
|
||||
|
||||
#################################################################
|
||||
# Send email
|
||||
#################################################################
|
||||
if [ "$PAM_TYPE" != "close_session" ]; then
|
||||
host="`hostname`"
|
||||
subject="SSH Login: $PAM_USER from $PAM_RHOST on $host"
|
||||
message=$(env)
|
||||
echo "$message" | mail -s "$subject" "$RECEPIENT"
|
||||
fi
|
Loading…
Reference in New Issue
Block a user