云服务器 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

修改示例:

 210QQ图片20150928213055.png

说明:

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

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

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

日志输出示例:

210QQ图片20150928213649.png



=================================================================================


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


  1. userlogin=`echo $SSH_CONNECTION | awk '{print $1}'`   #获取登录用户的ip地址 

  2. nodenyuser=192.168.10.111   #允许登录的ip地址 

  3. nodenyuser1=192.168.10.123 

  4. if [ $userlogin != $nodenyuser  ] ; then  #判断是否为禁止的ip地址 

  5. if [ $userlogin != $nodenyuser1  ] ; then 

  6.        echo "deny" 

  7.        userclient=`w | grep -v grep | grep $userlogin | awk '{print $2}'` 

  8.        echo $userclient 

  9.        ps -ef | grep $userclient | grep -v grep | grep sshd | awk '{print $2}' | xargs -I {} kill -9 {}   # 如果是禁止的ip地址直接结束会话  

  10. fi 

  11. fi