您的位置:首页 > 其它

/etc/profile 记录用户登录IP

2018-01-24 18:18 274 查看
云服务器 ECS Linux 如果要保存用户登录操作记录,则可以通过在 /etc/profile 进行相关配置来实现。在 /etc/profile 最下方添加以下信息,唯一修改的地方就是 LOG_DIR 对应的目录位置,默认或根据需要保存的目录进行相应修改即可。添加后需要执行 source /etc/profile 使其生效。
LOGIP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
LOG_DIR=/var/log/historyif [ -z $LOGIP ]thenLOGIP=`hostname`fiif [ ! -d $LOG_DIR ]thenmkdir -P $LOG_DIRchmod 777 $LOG_DIRfiif [ ! -d $LOG_DIR/${LOGNAME} ]thenmkdir -P $LOG_DIR/${LOGNAME}chmod 300 $LOG_DIR/${LOGNAME}fiexport HISTSIZE=4096
LOGTM=`date +"%Y%m%d_%H%M%S"`export HISTFILE="$LOG_DIR/${LOGNAME}/${LOGIP}-$LOGTM"chmod 600 $LOG_DIR/${LOGNAME}/*-* 2>/dev/null
修改示例:

说明:此日志需要重新登录后才可以看到。

/var/log/history 就是日志保存目录,此目录下的 root 目录保存的是 root 用户的操作记录。

文件名称 123.118.247.191-20150928_213321 代表登录 IP 为 123.118.247.191 登录日期为 2015年09月28日21点33分21秒,里面记录的就是登录后执行的操作命令。

日志输出示例:


=================================================================================
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiif [ ! -d /tmp/history ]thenmkdir /tmp/historychmod 777 /tmp/historyfiif [ ! -d /tmp/history/${LOGNAME} ]thenmkdir /tmp/history/${LOGNAME}chmod 300 /tmp/history/${LOGNAME}fiif [ ! -d /tmp/history/${LOGNAME}/${USER_IP} ]thenmkdir -p /tmp/history/${LOGNAME}/${USER_IP}fiexport HISTSIZE=4096DT=`date +"%Y%m%d_%H%M%S"`export HISTFILE="/tmp/history/${LOGNAME}/${USER_IP}-history.$DT"chmod 600 /tmp/history/${LOGNAME}/*history* 2>/dev/null[ -f /tmp/history/${LOGNAME}/${USER_IP}-history* ] && mv /tmp/history/${LOGNAME}/${USER_IP}-history* /tmp/history/${LOGNAME}/${USER_IP}/
添加以上到/etc/profile

pkill -kill -t pts/3cat /etc/hosts.denysshd:ALLcat /etc/hosts.allowsshd:172.x.x.:allowsshd:10.200.:allow
非法ip通过ssh成功登录,自动结束会话在root用户下添加编辑 ~/.bashrc
userlogin=`echo $SSH_CONNECTION | awk '{print $1}'` #获取登录用户的ip地址
nodenyuser=192.168.10.111 #允许登录的ip地址
nodenyuser1=192.168.10.123
if [ $userlogin != $nodenyuser ] ; then #判断是否为禁止的ip地址
if [ $userlogin != $nodenyuser1 ] ; then
echo "deny"
userclient=`w | grep -v grep | grep $userlogin | awk '{print $2}'`
echo $userclient
ps -ef | grep $userclient | grep -v grep | grep sshd | awk '{print $2}' | xargs -I {} kill -9 {} # 如果是禁止的ip地址直接结束会话
fi
fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  记录用户登录IP