标签归档:邮件通知

linux 用户通过ssh登录后邮件提醒

我一般没事的话,不长登录服务器,长时间没有登录的话,就会担心服务器会不会被入侵了,没安全感啊!–

所以写了一个脚本,只要有用户通过ssh登录到服务器上,自动把ip地址所在地图时间发送到特定邮箱中

所需软件

1.nali 获取ip的所在地区

wget --no-check-certificate  https://qqwry.googlecode.com/files/nali-0.2.tar.gz
tar zxvf nali-0.2.tar.gz 
cd nali-0.2/
./configure 
make
make install

2. mutt 以及 msmtp

Ubuntu 下使用 mutt 和 msmtp 发送 Gmail 邮件

配置成功了,发个邮件测试一下

echo "邮件内容"| mutt -s "邮件主体" 接收邮件地址

假如能收到的话,可以进行下一步了

新建一个脚本 放到 /opt下其他目录也行比如 /usr/local/bin/ 只要是在环境变量path中就行了

vi /opt/user_login_notice.sh
#输入下面的内容
#! /bin/sh
echo  login from `nali ${SSH_CLIENT%% *}` at `date +'%H:%M:%S %m/%d'` | mutt -s "[ssh notice]$USER@`hostname` " ksc@qq.com

也可以不通过mutt,直接通过 msmtp发送

#!/bin/sh
content="login from `nali ${SSH_CLIENT%% *}` at `date +'%H:%M:%S %m/%d'`"

head="MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8\r\n"
head=$head"To: ${to}\r\nFrom: geekli notice \r\nSubject: [ssh notice]$USER@`hostname`\r\n\r\n"

echo $head$content | msmtp -a notice ksc@qq.com
# msmtp -a 指定发送邮件的账户 若设置了默认的 可不填写
#邮件头中要设置 字符编码格式 不然可能会出现乱码的情况
# From:中的 发送地址要跟msmtp中配置的一致
# 希望所有用户都能发送,需要msmtp的全局配置文件 /etc/msmtprc

 

chmod 775 /opt/user_login_notice.sh #添加执行权限
vi /etc/ssh/sshrc #可能会没有这个文件
#然后输入以下内容

#!/bin/sh
/opt/user_login_notice.sh

这样每次登录后会调用邮件发送脚本 我发送接受都是用的QQ邮箱,基本上3秒之内就能收到通知