linux ssh远程登陆报警提醒

本文介绍了一种在Linux环境下监控SSH登录活动并自动发送报警信息的方法。通过在服务器上设置一个特殊的SSHRC脚本,该脚本能记录用户的登录时间、用户名及IP地址,并将这些信息发送到另一个服务器进行备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了服务器安全,防止被入侵,除了加强密码之外,还可以监控服务器的登陆情况

把登陆日志记下来,当然系统也会有记录,但不排除被人删掉,所以把数据发送到另外一台服务器比较保险,避免被删除

在linux下面很简单,只需要在/etc/ssh/目录下面创建一个sshrc的文件,然后给它执行权限,那么在有人通过ssh远程登录这台服务器的时候,这段脚本就会被执行

代码如下:

#!/bin/bash
#获取登录者的用户名
user=$USER
#获取登录者的IP地址
ip=${SSH_CLIENT%% *}
#获取登录的时间
time=$(date +%F%t%k:%M)
#服务器的IP地址
server=`ifconfig eth1|sed -n '2p'|awk -F ":" '{print $2}'|awk '{print $1}'`
#这里可以判断如果登录者的IP地址不是指定的IP,则发邮件报警,我这里直接就发送,当然你也可以不发送,直接记录下日志即可
curl "http://www.test.com/api/notify_login?content=$time,$user,$ip,$server" > /etc/ssh/log 2>/dev/null

这段脚本会在用户连上终端之前被执行,也就是说这段脚本如果没有被执行完,用户是链接不上终端的,那就可以保证报警信息肯定能收到,如果不是被人登陆赶紧登陆服务器,修改密码,断开所有ssh连接

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值