linux系统加固方案
Linux主机操作系统加固规范
目 录
第1章 概述... 1
1.1 目的... 1
1.2 适用范围... 1
1.3 适用版本... 1
1.4 实施... 1
1.5 例外条款... 1
第2章 账号管理、认证授权... 2
2.1 账号... 2
2.1.1 用户口令设置... 2
2.1.2 root用户远程登录限制... 2
2.1.3 检查是否存在除root之外UID为0的用户... 3
2.1.4 root用户环境变量的安全性... 3
2.2 认证... 4
2.2.1 远程连接的安全性配置... 4
2.2.2 用户的umask安全配置... 4
2.2.3 重要目录和文件的权限设置... 4
2.2.4 查找未授权的SUID/SGID文件... 5
2.2.5 检查任何人都有写权限的目录... 6
2.2.6 查找任何人都有写权限的文件... 6
2.2.7 检查没有属主的文件... 7
2.2.8 检查异常隐含文件... 7
第3章 日志审计... 9
3.1 日志... 9
3.1.1 syslog登录事件记录... 9
3.2 审计... 9
3.2.1 Syslog.conf的配置审核... 9
第4章 系统文件... 11
4.1 系统状态... 11
4.1.1 系统core dump状态... 11
第1章
概述
1.1 适用范围
本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。
1.2 适用版本
LINUX系列服务器;
第2章
账号管理、认证授权
2.1 账号
2.1.1 用户口令设置
|
安全基线项目名称 |
操作系统Linux用户口令安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-01-01 |
|
安全基线项说明 |
帐号与口令-用户口令设置 |
|
检测操作步骤 |
1、询问管理员是否存在如下类似的简单用户密码配置,比如: root/root, test/test, root/root1234 2、执行:more /etc/login,检查PASS_MAX_DAYS/PASS_MIN_LEN/PASS_MIN_DAYS/PASS_WARN_AGE参数 3、执行:awk -F: '($2 == "") { print $1 }' /etc/shadow, 检查是否存在空口令账号 |
|
基线符合性判定依据 |
建议在/etc/login文件中配置:PASS_MIN_LEN=6 不允许存在简单密码,密码设置符合策略,如长度至少为6 不存在空口令账号 |
|
备注 |
2.1.2 root用户远程登录限制
|
安全基线项目名称 |
操作系统Linux远程登录安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-01-02 |
|
安全基线项说明 |
帐号与口令-root用户远程登录限制 |
|
检测操作步骤 |
执行:more /etc/securetty,检查Console参数 |
|
基线符合性判定依据 |
建议在/etc/securetty文件中配置:CONSOLE = /dev/tty01 |
|
备注 |
2.1.3 检查是否存在除root之外UID为0的用户
|
安全基线项目名称 |
操作系统Linux超级用户策略安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-01-03 |
|
安全基线项说明 |
帐号与口令-检查是否存在除root之外UID为0的用户 |
|
检测操作步骤 |
执行:awk -F: '($3 == 0) { print $1 }' /etc/passwd |
|
基线符合性判定依据 |
返回值包括“root”以外的条目,则低于安全要求; |
|
备注 |
补充操作说明 UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0 |
2.1.4 root用户环境变量的安全性
|
安全基线项目名称 |
操作系统Linux超级用户环境变量安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-01-04 |
|
安全基线项说明 |
帐号与口令-root用户环境变量的安全性 |
|
检测操作步骤 |
执行:echo $PATH | egrep '(^|:)(\.|:|$)',检查是否包含父目录, 执行:find `echo $PATH | tr ':' ' '` -type d \( -perm -002 -o |
|
基线符合性判定依据 |
返回值包含以上条件,则低于安全要求; find |
|
注 |
补充操作说明 确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777的目录 |
2.1.5
远程连接的安全性配置
|
安全基线项目名称 |
操作系统Linux远程连接安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-02-01 |
|
安全基线项说明 |
帐号与口令-远程连接的安全性配置 |
|
检测操作步骤 |
执行:find / -name 执行:find / -name |
|
基线符合性判定依据 |
返回值包含以上条件,则低于安全要求; |
|
备注 |
补充操作说明 如无必要,删除这两个文件 |
2.1.6
用户的umask安全配置
|
安全基线项目名称 |
操作系统Linux用户umask安全基线要求项 |
|
安全基线项说明 |
帐号与口令-用户的umask安全配置 |
|
检测操作步骤 |
执行:more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /etc/bashrc检查是否包含umask值 |
|
基线符合性判定依据 |
umask值是默认的,则低于安全要求 |
|
备注 |
补充操作说明 直接vi /etc/bashrc 建议设置用户的默认umask=077 数据库机器不装。 |
2.1.7
重要目录和文件的权限设置
|
安全基线项目名称 |
操作系统Linux目录文件权限安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-02-03 |
|
安全基线项说明 |
文件系统-重要目录和文件的权限设置 |
|
检测操作步骤 |
执行以下命令检查目录和文件的权限设置情况: ls –l /etc/ ls –l /etc/rc.d/init.d/ ls –l /tmp ls –l /etc/inetd.conf ls –l /etc/passwd ls –l /etc/shadow ls –l /etc/group ls –l /etc/security ls –l /etc/services ls -l |
|
基线符合性判定依据 |
若权限过低,则低于安全要求; |
|
备注 |
补充操作说明 对于重要目录,建议执行如下类似操作: # chmod -R 750 /etc/rc.d/init.d/* 这样只有root可以读、写和执行这个目录下的脚本。 |
2.1.8
查找未授权的SUID/SGID文件
|
安全基线项目名称 |
操作系统Linux |
|
安全基线编号 |
SBL-Linux-02-02-04 |
|
安全基线项说明 |
文件系统-查找未授权的SUID/SGID文件 |
|
检测操作步骤 |
用下面的命令查找系统中所有的SUID和SGID程序,执行: for PART in `grep -v ^# /etc/fstab | awk '($6 != find / \( -perm -04000 -o -perm -02000 \) -type f Done |
|
基线符合性判定依据 |
若存在未授权的文件,则低于安全要求; |
|
备注 |
补充操作说明 建议经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序 |
2.1.9
检查任何人都有写权限的目录
|
安全基线项目名称 |
操作系统Linux目录写权限安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-02-05 |
|
安全基线项说明 |
文件系统-检查任何人都有写权限的目录 |
|
检测操作步骤 |
在系统中定位任何人都有写权限的目录用下面的命令: for PART in `awk '($3 == "ext2" || $3 == { print $2 }' /etc/fstab`; do find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) Done |
|
基线符合性判定依据 |
若返回值非空,则低于安全要求; |
|
备注 |
2.1.10
查找任何人都有写权限的文件
|
安全基线项目名称 |
操作系统Linux文件写权限安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-02-06 |
|
安全基线项说明 |
文件系统-查找任何人都有写权限的文件 |
|
检测操作步骤 |
在系统中定位任何人都有写权限的文件用下面的命令: for PART in `grep -v ^# /etc/fstab | awk '($6 != find $PART -xdev -type f \( -perm -0002 -a ! -perm -1000 Done |
|
基线符合性判定依据 |
若返回值非空,则低于安全要求; |
|
备注 |
2.1.11
检查没有属主的文件
|
安全基线项目名称 |
操作系统Linux文件所有权安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-02-07 |
|
安全基线项说明 |
文件系统-检查没有属主的文件 |
|
检测操作步骤 |
定位系统中没有属主的文件用下面的命令: for PART in `grep -v ^# /etc/fstab | awk '($6 != find $PART -nouser -o -nogroup -print done 注意:不用管“/dev”目录下的那些文件。 |
|
基线符合性判定依据 |
若返回值非空,则低于安全要求; |
|
备注 |
补充操作说明 发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。 |
2.1.12
检查异常隐含文件
|
安全基线项目名称 |
操作系统Linux隐含文件安全基线要求项 |
|
安全基线编号 |
SBL-Linux-02-02-08 |
|
安全基线项说明 |
文件系统-检查异常隐含文件 |
|
检测操作步骤 |
用“find”程序可以查找到这些隐含文件。例如: # find / -name ".. *" -print –xdev # find / -name "…*" -print -xdev | cat 同时也要注意象“.xx”和“.mail”这样的文件名的。(这些文件名看起来都很象正常的文件名) |
|
基线符合性判定依据 |
若返回值非空,则低于安全要求; |
|
备注 |
补充操作说明 在系统的每个地方都要查看一下有没有异常隐含文件(点号是起始字符的,用“ls”命令看不到的文件),因为这些文件可能是隐藏的黑客工具或者其它一些信息(口令破解程序、其它系统的口令文件,等等)。在UNIX下,一个常用的技术就是用一些特殊的名,如:“…”、“.. ”(点点空格)或“..^G”(点点control-G),来隐含文件或目录。 |
第3章
日志审计
3.1 日志
3.1.1
syslog登录事件记录
|
安全基线项目名称 |
操作系统Linux登录审计安全基线要求项 |
|
安全基线编号 |
SBL-Linux-03-01-01 |
|
安全基线项说明 |
日志审计-syslog登录事件记录 |
|
检测操作步骤 |
执行命令:more 查看参数authpriv值 |
|
基线符合性判定依据 |
若未对所有登录事件都记录,则低于安全要求; |
|
备注 |
3.2 审计
3.2.1
Syslog.conf的配置审核
|
安全基线项目名称 |
操作系统Linux配置审计安全基线要求项 |
|
安全基线编号 |
SBL-Linux-03-02-01 |
|
安全基线项说明 |
日志审计-Syslog.conf的配置审核 |
|
检测操作步骤 |
执行:more kern.warning;*.err;authpriv.none\t@loghost *.info;mail.none;authpriv.none;cron.none\t@loghost *.emerg\t@loghost local7.*\t@loghost |
|
基线符合性判定依据 |
若未设置,则低于安全要求; |
|
备注 |
补充操作说明 建议配置专门的日志服务器,加强日志信息的异地同步备份 |
第4章
系统文件
4.1 系统状态
4.1.1
系统core dump状态
|
安全基线项目名称 |
操作系统Linux |
|
安全基线编号 |
SBL-Linux-04-01-01 |
|
安全基线项说明 |
系统文件-系统core dump状态 |
|
检测操作步骤 |
执行:more * soft core 0 * |
|
基线符合性判定依据 |
若不存在,则低于安全要求 |
|
备注 |
补充操作说明 core |
linux系统加固方案的更多相关文章
- Linux系统分区方案建议
在安装Linux系统之初,就应该考虑怎样使linux系统得到最好的性能.linux本身也设计为可以良好扩展的形态. 笔者建议系统程序和业务程序分离安装比较合理,笔者所在的公司也是按照这种理念实施的.比 ...
- Linux 系统分区方案 详细教程
简单分区方案 实际上,很多时候我们只需要分两个区:/和交换分区,日常使用基本不会有任何影响,甚至于交换分区对于现在的电脑来说都不是必要的,我们完全可以只分配一个根分区.linux只需要一个/根分区就可 ...
- linux 系统分区方案建议
前言: 以前初识Linux时,对Linux系统安装时分区的选择,一点都不了解,导致几次没法进行下一步安装,因此就静下心来,专门拿出时间研究了研究这方面的知识: 以下内容就是以前通过研究Linux安装过 ...
- Linux系统分区方案(CentOs 6)
装Linux如何分区: 方案1:(监控服务器,负载均衡器) 1./boot 引导分区,存放引导文件和Linux内核. 启动文件:用于判断你需要启动哪个操作系统或启动哪个内核. ...
- Linux系统加固
iptables 初始化 > iptables -F #清空所有的链 > iptables -X #清空所有自定义的链 关掉全部端口 > iptables -P INPUT DROP ...
- 企业生产环境不同业务linux系统分区方案
转自:http://edu.51cto.com/lession/id-11842.html
- Linux系统下对NFS服务安全加固的方法
NFS(Network File System)是 FreeBSD 支持的一种文件系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源.不正确的配置和使用 NFS,会带来安全问题. 概述 N ...
- [Linux]三种方案在Windows系统下安装ubuntu双系统(转)
在学习linux的过程中,ubuntu无疑是初学者的最佳选择. 下面来列举给Windows系统安装ubuntu双系统的三种方法. 一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已 ...
- 如何加固Linux系统
如何加固Linux系统 一. 账户安全 1.1 锁定系统中多余的自建帐号 检查方法: 执行命令 #cat /etc/passwd #cat /etc/shadow 查看账户.口令文件,与系统管理员确认 ...
随机推荐
- jsp动作标签学习
<jsp:useBean> <jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean对象,如果存在则直接返回该JavaBean对象的引用,如果不存在则实 ...
- python3.x设置默认编码(sys.stdout.encoding和sys.defaultencoding)
查了一会资料得出的结论是如果你用的是python3.x,那么就最好别去设置sys.defaultencoding或者sys.stdout.encoding记住在需要编码的时候用encode,解码的时候 ...
- linux 笔记本
命令 作用 tail -f 日志文件名 将日志同步输出 echo "">文件名 清空文件内容
- Linux进程的诞生和消亡
1.进程的诞生 (1).进程0和进程1 (内核里边的固有的) (2).fork函数和vfork函数用于新进程的产生 2.进程的消亡 (1).正常终止和异常终止 (2).进程在运行时需要消耗系统资源(内 ...
- 剑指offer【12】- 二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. public class Solution { public int NumberOf1(int n) { String str = ...
- 7.学完linux系统运维到底可以做什么?
linux运维到底可以做什么?(略有改动原文.排版) 运维,很容易从字面理解为运营.维护. 很多朋友认为,在互联网公司中linux系统运维的工作就是安装系统,部署服务.处理紧急故障,为公司里的开发人员 ...
- 机器学习总结(参考源码ml.hpp)
依据机器学习算法如何学习数据可分为3类: 有监督学习:从有标签的数据学习,得到模型参数,对测试数据正确分类: 无监督学习:没有标签,计算机自己寻找输入数据可能的模型: 强化学习(reinforceme ...
- 怎么设置tomcat在get请求的中文也不乱码?两种情况下配置
我们都知道,get请求和post请求的一个比较显著区别就是,在使用post请求的时候,中文不会乱码,但是在使用get请求的时候,如果url后面带有中文就会乱码了.那么这个怎么解决呢? 前提:配置项目的 ...
- Django中间件-跨站请求伪造-django请求生命周期-Auth模块-seettings实现可插拔配置(设计思想)
Django中间件 一.什么是中间件 django中间件就是类似于django的保安;请求来的时候需要先经过中间件,才能到达django后端(url,views,models,templates), ...
- web前端——CSS详解
简介 CSS(Casading Style Sheet)是一组HTML元素外观的设置规则,用于控制web页面的表现形式,一般被翻译为"级联样式表"或"层叠样式表" ...