您的位置:首页 > 运维架构 > Linux

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

2017-03-03 17:41 288 查看
一、合理使用Shell历史命令记录功能
Linux下可通过history命令查看用户所有历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,有时候黑客会删除.bash_history文件,这就需要合理备份.bash_history文件。下面介绍下history日志文件的安全配置方法。方法一:默认的history命令只能查看用户历史操作记录,并不能区分每个用户操作命令的时间,可以通过下面方法(加入四行内容)让history命令自动记录所有shell命令的执行时间,编辑/etc/bashrc文件:HISTFILESIZE=1000HISTSIZE=1000HISTTIMEFORMAT="%F %T `whoami` "export HISTIMEFORMATexport 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文件,添加如下脚本命令;
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文件普通用户是无法访问的:
如果要让普通用户user01可访问这个文件,可以在/etc/sudoers添加如下内容:
执行这个命令后,需要输入user01用户的密码,然后就可访问文件内容了。如果每次都需要输入密码,那么某些自动调用超级权限的程序就会出现问题,此时可以通过下面的设置,让普通用户无需输入密码即可执行具有超级权限的程序。例如,要让普通用户centreon具有/etc/init.d/nagios脚本重启的权限,可以在/etc/sudoers添加如下设置:
这样,普通用户centreon就可以执行nagios重启的脚本而无需输入密码了。如果要让一个普通用户user02具有超级用户的所有权限,而又不想输入超级用户的密码,只需在/etc/sudoers添加如下内容即可:
这样user02用户登录系统后,就可以通过执行如下命令切换到超级用户下:
三、删减系统登录欢迎信息为了保证系统的安全,可以修改或删除某些系统文件,需要修改或删除的文件有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文件,在此文件中添加如下内容即可:
为了安全起见,建议将此文件中的内容删除或修改。/etc/redhat-release文件也记录了操作系统的名称和版本号,为了安全起见,可以将此文件中的内容删除。/etc/motd文件是系统的公告信息。每次用户登录后,/etc/motd文件的内容就会显示在用户的终端。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 用户审计