出于安全考虑,我们会需要对数据库或者应用的访问IP进行记录以便进行分析,更进一步可以考虑配置服务器的黑白名单进行访问限制,本文基于openEuler22.03 sp1系统测试通过。因为是纯bash脚本,其实对其它linux系统也是通用的。
上代码:
#!/bin/bash
##__author__='daigjianbing'
basepath=$(cd `dirname $0`;pwd)
listenport=1521 #请根据实际监听端口修改本行
timesleep=5
cd ${basepath}
while true
do
netstat -an |grep ${listenport} |awk '{print $5}'|awk -F':' '{print $1}'|sort -n|awk '!a[$1]++{print}'|sed '/^$/d'|grep '\.'|egrep -v "0.0.0.0" >siplis
t.last
cat siplist.last >/tmp/siplist.tmp && cat siplist.all >>/tmp/siplist.tmp
cat /tmp/siplist.tmp|sort -n|awk '!a[$1]++{print}'|grep '\.' >siplist.all
chmod a+r siplist.*
sleep ${timesleep}
done
以上便是全部代码,讲解如下:
配置项共两项:
listenport= 是配置要侦听的端口,以oracle数据1521端口为例
timesleep= 是配置的检查时间间隔,以5秒查一次为例。
本例即是每5秒检查一下oracle数据1521端口的连接IP,最终结果排序并去重存到siplist.all文件中,大家可以根据需要进行修改。