之前看到一些关于服务器安全性的问题,才知道服务器安全是多么的脆弱。有很多不注意的细节都可能引发安全问题,所以需要一个服务器登录的报警,来提供服务器的安全登录的一个审计和消息提醒。
##步骤
服务器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=${SSH_CLIENT%% *}
time=$(date +%F%t%k:%M)
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文件。
现在收到登录提醒,往后有任何的登录,你都可以收到消息。
注意
- 创建了
~/.ssh/rc
的用户登录时候会执行该文件,/etc/ssh/sshrc
会被忽略。 - 如果SSH登录时候,开启
-N
选项不会触发,端口转发时会触发。