linux 检查远程登录IP,并发送告警
需求简介
- 记录操作命令的记录
- 定时检查 IP,是否是合法 IP
- 发送告警
history
history 可以记录终端的操作命令。
编辑/etc/bashrc
修改对应的格式变量
if [ "$SSH_CONNECTION" == "" ]
then
SSH_CONNECTION=localhost
fi
export HISTTIMEFORMAT="%F %T"\ "$(echo $SSH_CONNECTION|awk '{print $1}') "
export PROMPT_COMMAND='history 1|tail -1 >> /tmp/command.log'
这样子命令记录在 /tmp/command.log
判断是否是合法 IP
#!/bin/bash
while_ip=" localhost 192.168.4.2 "
to_mail="root@localhost"
OLDIFS=$IFS
IFS='\n'
for line in $(cat /tmp/command.log)
do
ip=$(echo $line | awk '{print $4}')
if grep "\ $ip\ " $while_ip >> /dev/null 2>&1
then
continue
fi
echo $line >> /tmp/warning.log
done
IFS=$OLDIFS
if [ -f /tmp/command.log ]
then
mv /tmp/command.log /tmp/command.log_$(date +%Y%m%d%H%M%S)
fi
if [ -f /tmp/warning.log ]
then
mail -s "有异常IP登录终端操作_"$(date +%Y%m%d%H%M%S) $to_mail < /tmp/warning.log
rm -f /tmp/warning.log
fi
修改对应邮箱,如果使用外部邮箱,需要配置/etc/mail.rc
定时检查
crontab -e
* * * * * /opt/scripts/check_log.sh
- 原文作者:Linux运维菜
- 原文链接:https://www.opcai.top/post/2020/2020-04/check_bash_log/
- 版权声明:本作品采用进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。