在Debian系统中,SecureCRT本身并不直接管理命令历史记录,但你可以通过配置SSH服务器来记录命令历史。以下是通过rsyslog在Debian系统上记录SSH命令历史的方法:
将主机的SSH命令记录通过rsyslog转存到日志服务器中。
/etc/rsyslog.conf
(低版本主机可能为 /etc/syslog.conf
)。/etc/profile
:/etc/profile
中加入以下配置:export HISTTIMEFORMAT=",%Y-%m-%d %H:%M:%S,`who am i 2>/dev/null| \
awk '{print $NF}'|sed -e 's/[()]//g'`,"
export PROMPT_COMMAND='\
if [ -z "$OLD_PWD" ];then
export OLD_PWD=$PWD;
fi;
if [ !-z "$LAST_CMD" ] && [ "$(history 1)" != "$LAST_CMD" ];then
logger -t shell_cmd -p local4.info "{HOSTIP=$HOSTIP \
USER=`whoami`,PWD=$OLD_PWD,HISTORY=$(history 1)}";
fi ;
export LAST_CMD="$(history 1)";
export OLD_PWD=$PWD;'
export HOSTIP="$(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk \
'{print $2}'|tr -d "addr:"|sort|head -n 1)";
第一条配置的作用是格式化history命令的执行文本格式。格式化后history命令执行结果如下图所示,第三条命令是获取主机ip,以便将ip写入脚本中。第二条配置的左右则是如果检测到有命令执行,则将命令记录到rsyslog服务的 local4.info
日志中。
/etc/rsyslog.conf
:/etc/rsyslog.conf
中添加以下配置:local4.info @133.***.28:514
该配置的主要作用为将 local4.info
中的日志通过udp的方式将主机发送到我们的日志中转机器上以便采集。
source /etc/profile
和重启rsyslog服务。source /etc/profile
和重启rsyslog服务即可。以上步骤可以帮助你在Debian系统上通过rsyslog记录SSH命令历史,从而方便后续的审计和追踪。