云服务器 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" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/history ]
then
mkdir /tmp/history
chmod 777 /tmp/history
fi
if [ ! -d /tmp/history/${LOGNAME} ]
then
mkdir /tmp/history/${LOGNAME}
chmod 300 /tmp/history/${LOGNAME}
fi
if [ ! -d /tmp/history/${LOGNAME}/${USER_IP} ]
then
mkdir -p /tmp/history/${LOGNAME}/${USER_IP}
fi
export HISTSIZE=4096
DT=`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/3
cat /etc/hosts.deny
sshd:ALL
cat /etc/hosts.allow
sshd:172.x.x.:allow
sshd: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
转载于:https://blog.51cto.com/13505030/2064743