Linux登录安全及用户操作审计 ,linux下清理日志脚本

简介:

一、合理使用Shell历史命令记录功能

Linux下可通过history命令查看用户所有历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,有时候黑客会删除.bash_history文件,这就需要合理备份.bash_history文件。

下面介绍下history日志文件的安全配置方法。

方法一:

默认的history命令只能查看用户历史操作记录,并不能区分每个用户操作命令的时间,

可以通过下面方法(加入四行内容)让history命令自动记录所有shell命令的执行时间,编辑/etc/bashrc文件:

HISTFILESIZE=1000

HISTSIZE=1000

HISTTIMEFORMAT="%F %T `whoami` "

export HISTIMEFORMAT

export LANG="zh_CN.UTF-8"

HISTFILESIZE定义了在.bash_history文件中保存命令的记录总数,默认值是1000,这里设置为4000;

HISTSIZE定义了history命令输出的记录总数;

HISTTIMEFORMAT定义时间显示格式,这里的格式与date命令后的“+"%F %T"”是一致的;

HISTTIMEFORMAT作为history的时间变量将值传递给history命令。

通过这样的设置后,执行history命令,就会显示每个历史命令的详细执行时间

方法二:

记录登录过系统的用户、IP地址、shell命令以及详细操作时间等,并将这些信息以文件形式保存在一个安全地方。

将下面这段代码添加到/etc/profile文件中,即可实现上述功能。

1.创建用户审计文件存放目录和审计日志文件 ; 

mkdir -p /var/log/usermonitor/

2.创建用户审计日志文件;

echo "#########" >/var/log/usermonitor/usermonitor.log

3.将日志文件所有者赋予一个最低权限的用户;

chown nobody:nobody /var/log/usermonitor/usermonitor.log

4.给该日志文件赋予所有人的写权限;  

chmod 002 /var/log/usermonitor/usermonitor.log

5.设置文件权限,使所有用户对该文件只有追加权限 ;

chattr +a /var/log/usermonitor/usermonitor.log

6.编辑/etc/profile文件,添加如下脚本命令;

1
2
export  HISTORY_FILE= /var/log/usermonitor/usermonitor .log
export  PROMPT_COMMAND= '{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}")  #### $(id|awk "{print \$1}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

7.使配置生效

source  /etc/profile

8.使用如下命令监测用户行为审计日志文件;

tail -f /var/log/usermonitor/usermonitor.log

http://www.askoracle.org/linux/safe/802.html 


二、合理使用su、sudo命令

su命令是一个切换用户的工具,经常用于将普通用户切换到超级用户下,几乎所有服务器都禁止了超级用户直接登录系统,而是通过普通用户登录系统,然后再通过su命令切换到超级用户下,执行一些需要超级权限的工作。

sudo命令允许系统管理员分配给普通用户一些合理的“权利”,比如系统服务重启、编辑系统配置文件等

sudo执行命令的流程是:将当前用户切换到超级用户下,然后以超级用户或其指定切换到的用户身份执行命令,执行完成后,直接退回到当前用户,

而这一切的完成要通过sudo的配置文件/etc/sudoers来进行授权。

例如,/etc/shadow文件普通用户是无法访问的:

1
2
[user01@unknown ~]$  more  /etc/shadow
/etc/shadow : Permission denied

如果要让普通用户user01可访问这个文件,可以在/etc/sudoers添加如下内容:

1
2
3
4
user01     ALL =  /bin/more  /etc/shadow
这样,通过如下方式user01用户就可访问 /etc/shadow 文件:
[user01@unknown ~]$  sudo  more  /etc/shadow
[ sudo ] password  for  user01:

执行这个命令后,需要输入user01用户的密码,然后就可访问文件内容了。

如果每次都需要输入密码,那么某些自动调用超级权限的程序就会出现问题,此时可以通过下面的设置,让普通用户无需输入密码即可执行具有超级权限的程序。

例如,要让普通用户centreon具有/etc/init.d/nagios脚本重启的权限,可以在/etc/sudoers添加如下设置:

1
CENTREON   ALL = NOPASSWD:  /etc/init .d /nagios  restart

这样,普通用户centreon就可以执行nagios重启的脚本而无需输入密码了。

如果要让一个普通用户user02具有超级用户的所有权限,而又不想输入超级用户的密码,

只需在/etc/sudoers添加如下内容即可:

1
user02 ALL=(ALL) NOPASSWD: ALL

这样user02用户登录系统后,就可以通过执行如下命令切换到超级用户下:

1
2
3
[user02@unknown ~]$  sudo  su  -
[root@unknown ~] # pwd
/root


三、删减系统登录欢迎信息

为了保证系统的安全,可以修改或删除某些系统文件,需要修改或删除的文件有4个,分别是/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd

/etc/issue和/etc/issue.net文件都记录了操作系统的名称和版本号,当用户通过本地终端或本地虚拟控制台等登录系统时,/etc/issue的文件内容就会显示,当用户通过ssh或telnet等远程登录系统时,/etc/issue.net文件内容就会在登录后显示。在默认情况下/etc/issue.net文件的内容是不会在ssh登录后显示的,要显示这个信息可以修改/etc/ssh/sshd_config文件,在此文件中添加如下内容即可:

1
Banner  /etc/issue .net

为了安全起见,建议将此文件中的内容删除或修改。

/etc/redhat-release文件也记录了操作系统的名称和版本号,为了安全起见,可以将此文件中的内容删除。

/etc/motd文件是系统的公告信息。每次用户登录后,/etc/motd文件的内容就会显示在用户的终端。






     本文转自yzy121403725 51CTO博客,原文链接:http://blog.51cto.com/lookingdream/1903057,如需转载请自行联系原作者


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
监控 Linux 应用服务中间件
linux查看日志文件tail -f用法
在 Linux 中,查看和监控日志文件是系统管理员和开发者常用的操作之一。tail 命令就是用来查看文件内容的,它默认显示文件的最后部分。tail -f 是 tail 命令的一个非常有用的选项,用于实时查看和跟踪日志文件的更新,尤其是在监控运行中的服务时非常有用。
1472 0
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
10828 2
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
615 13
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
568 5
|
存储 监控 安全
云日志管理|从云端进行安全日志管理
Log360 Cloud 是一款基于云的SIEM解决方案,旨在为企业提供灵活、安全的日志管理。它从本地和云环境中收集日志并存储于云端,通过实时图形仪表板提供网络安全的全面视图。用户可随时随地访问日志,减少存储成本,轻松扩展,并确保符合IT合规性要求。该平台支持代理和无代理日志收集,具备强大的搜索、分析、审计和实时警报功能,帮助企业及时检测和解决潜在威胁,保障信息安全。
344 1
|
SQL 数据库
【YashanDB知识库】归档日志清理
本文介绍了YashanDB中手动清理归档日志时遇到的问题及解决方法。问题源于在归档日志未备份或未同步到备机时尝试删除,导致文件仍存在。解决方案是通过调整`ARCH_CLEAN_IGNORE_MODE`参数(如设置为BOTH模式)来忽略备份和备机限制,执行归档日志清理命令(如`ALTER DATABASE DELETE ARCHIVELOG`)。同时,注意YashanDB支持自动清理功能,可通过设置上下阈值避免磁盘空间不足。相关参数可用`show parameter clean`查看。
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
482 7
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
669 1
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
661 9