美文网首页
安全运维-基于钉钉实现登录服务器的消息提醒

安全运维-基于钉钉实现登录服务器的消息提醒

作者: 有时右逝 | 来源:发表于2019-01-11 20:20 被阅读0次

    前言

    近期看了一些安全文章,也做了一些服务器的渗透。深刻发现,企业的服务器,多么脆弱。如何提高服务器安全性,我一直在苦苦思考。安全是一个整体,我们需要一点点来提高。今天这篇文章来记录下我们 是如何提供访问服务器的消息提醒。

    问题

    作者我主要使用的Linux服务器,安装的系统是centos7. 服务器的访问一直是心头大患。虽然我的密码很复杂,但是我还是担心被黑客爆破了。 与其天天这样担心,不如我来安装个监控,监视下每天登录服务器的用户。

    解决

    • 注册个钉钉机器人。
    image.png
    • 编写脚本

    只需要修改脚本中钉钉地址即可。 其他文字,可以自定义修改。

    #!/bin/bash
    #获取登录者的用户名
    user=$USER
    #获取登录者的IP地址
    ip=${SSH_CLIENT%% *}
    #获取登录的时间
    time=$(date +%F%t%k:%M)
    #服务器的IP地址
    server='xxxxxxx.xxxxx.xxxxx.xxxx'
    
    
    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 即可。

    注意该文件需要root权限写入。

    • 最后的效果
    image.png

    现在你放心了,有任何登录,你都会收到消息。再也不用提心吊胆了。

    注意

    上面的脚本不能有任何 输出内容,否则在使用sftp时会引发下面的问题。
    linux Received message too long (or "Bad packet length")

    我当时脚本中输出了下钉钉机器人返回的消息,导致sftp无法工作,而我的jenkins自动部署使用sftp,因此自动部署的服务也罢工了。

    相关文章

      网友评论

          本文标题:安全运维-基于钉钉实现登录服务器的消息提醒

          本文链接:https://www.haomeiwen.com/subject/brrfdqtx.html