之前看到一些关于服务器安全性的问题,才知道服务器安全是多么的脆弱。有很多不注意的细节都可能引发安全问题,所以需要一个服务器登录的报警,来提供服务器的安全登录的一个审计和消息提醒。

##步骤

  • 在你想要通知群里,添加一个钉钉机器人

钉钉.png

  • 写入以下脚本

服务器IP和钉钉的WebHook地址的token。其他文字也可自定义修改。

该文件需要root权限写入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#获取登录者的用户名
user=$USER
#获取登录者的IP地址
ip=${SSH_CLIENT%% *}
#获取登录的时间
time=$(date +%F%t%k:%M)
#服务器的IP地址
server='xxx.xxx.xxx.xxx'

function SendMessageToDingDing(){

#你钉钉机器人的地址。
local url="https://oapi.dingtalk.com/robot/send?access_token=你钉钉机器人的token"

local UA="Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/535.24(KHTML,likeGecko)Chrome/19.0.1055.1Safari/535.24"

local res=`curl -XPOST -s -L -H"Content-Type:application/json" -H"charset:utf-8" $url -d"{\"msgtype\":\"text\",\"text\":{\"content\":\"$1\n$2\"}}"`

}
SendMessageToDingDing "服务器登录提醒" "时间 $time,用户 $user,用户地址 $ip,服务器地址 $server"

写入/etc/ssh/sshrc文件,如果没有自行新建一个sshrc文件。

钉钉.png

现在收到登录提醒,往后有任何的登录,你都可以收到消息。

注意

  1. 创建了~/.ssh/rc的用户登录时候会执行该文件,/etc/ssh/sshrc会被忽略。
  2. 如果SSH登录时候,开启-N选项不会触发,端口转发时会触发。