为了服务器安全,防止被入侵,除了加强密码之外,还可以监控服务器的登陆情况
把登陆日志记下来,当然系统也会有记录,但不排除被人删掉,所以把数据发送到另外一台服务器比较保险,避免被删除
在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连接