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
-perm -020 \) -ls,检查是否包含组目录权限为777的目录

基线符合性判定依据

返回值包含以上条件,则低于安全要求;

find
`echo $PATH | tr ':' ' '` -type d \( -perm -777 -o -perm -777 \) -ls

补充操作说明

确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777的目录

2.1.5    
远程连接的安全性配置

安全基线项目名称

操作系统Linux远程连接安全基线要求项

安全基线编号

SBL-Linux-02-02-01

安全基线项说明 

帐号与口令-远程连接的安全性配置

检测操作步骤

执行:find  / -name 
.netrc,检查系统中是否有.netrc文件,

执行:find  / -name 
.rhosts ,检查系统中是否有.rhosts文件

基线符合性判定依据

返回值包含以上条件,则低于安全要求;

备注

补充操作说明

如无必要,删除这两个文件

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 
/etc/rc*.d

基线符合性判定依据

若权限过低,则低于安全要求;

备注

补充操作说明

对于重要目录,建议执行如下类似操作:

# chmod -R 750 /etc/rc.d/init.d/*

这样只有root可以读、写和执行这个目录下的脚本。

2.1.8    
查找未授权的SUID/SGID文件

安全基线项目名称

操作系统Linux
SUID/SGID文件安全基线要求项

安全基线编号

SBL-Linux-02-02-04

安全基线项说明 

文件系统-查找未授权的SUID/SGID文件

检测操作步骤

用下面的命令查找系统中所有的SUID和SGID程序,执行:

for PART in `grep -v ^# /etc/fstab | awk '($6 !=
"0") {print $2 }'`; do

find  /  \( -perm -04000 -o -perm -02000 \) -type f
-xdev -print

Done

基线符合性判定依据

若存在未授权的文件,则低于安全要求;

备注

补充操作说明

建议经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序

2.1.9    
检查任何人都有写权限的目录

安全基线项目名称

操作系统Linux目录写权限安全基线要求项

安全基线编号

SBL-Linux-02-02-05

安全基线项说明 

文件系统-检查任何人都有写权限的目录

检测操作步骤

在系统中定位任何人都有写权限的目录用下面的命令:

for PART in `awk '($3 == "ext2" || $3 ==
"ext3") \

{ print $2 }' /etc/fstab`; do

find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \)
-print

Done

基线符合性判定依据

若返回值非空,则低于安全要求;

备注

2.1.10 
查找任何人都有写权限的文件

安全基线项目名称

操作系统Linux文件写权限安全基线要求项

安全基线编号

SBL-Linux-02-02-06

安全基线项说明 

文件系统-查找任何人都有写权限的文件

检测操作步骤

在系统中定位任何人都有写权限的文件用下面的命令:

for PART in `grep -v ^# /etc/fstab | awk '($6 !=
"0") {print $2 }'`; do

find $PART -xdev -type f \( -perm -0002 -a ! -perm -1000
\) -print

Done

基线符合性判定依据

若返回值非空,则低于安全要求;

备注

2.1.11 
检查没有属主的文件

安全基线项目名称

操作系统Linux文件所有权安全基线要求项

安全基线编号

SBL-Linux-02-02-07

安全基线项说明 

文件系统-检查没有属主的文件

检测操作步骤

定位系统中没有属主的文件用下面的命令:

for PART in `grep -v ^# /etc/fstab | awk '($6 !=
"0") {print $2 }'`; do

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
-v

同时也要注意象“.xx”和“.mail”这样的文件名的。(这些文件名看起来都很象正常的文件名)

基线符合性判定依据

若返回值非空,则低于安全要求;

备注

补充操作说明

在系统的每个地方都要查看一下有没有异常隐含文件(点号是起始字符的,用“ls”命令看不到的文件),因为这些文件可能是隐藏的黑客工具或者其它一些信息(口令破解程序、其它系统的口令文件,等等)。在UNIX下,一个常用的技术就是用一些特殊的名,如:“…”、“..    ”(点点空格)或“..^G”(点点control-G),来隐含文件或目录。


第3章         
 日志审计

3.1    日志

3.1.1    
syslog登录事件记录

安全基线项目名称

操作系统Linux登录审计安全基线要求项

安全基线编号

SBL-Linux-03-01-01

安全基线项说明 

日志审计-syslog登录事件记录

检测操作步骤

执行命令:more
/etc/syslog.conf

查看参数authpriv值

基线符合性判定依据

若未对所有登录事件都记录,则低于安全要求;

备注

3.2    审计

3.2.1    
Syslog.conf的配置审核

安全基线项目名称

操作系统Linux配置审计安全基线要求项

安全基线编号

SBL-Linux-03-02-01

安全基线项说明 

日志审计-Syslog.conf的配置审核

检测操作步骤

执行:more
/etc/syslog.conf,查看是否设置了下列项:

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
core dump 状态安全基线要求项

安全基线编号

SBL-Linux-04-01-01

安全基线项说明 

系统文件-系统core dump状态

检测操作步骤

执行:more
/etc/security/limits.conf 检查是否包含下列项:

* soft core 0

*
hard core 0

基线符合性判定依据

若不存在,则低于安全要求

备注

补充操作说明

core
dump中可能包括系统信息,易被入侵者利用,建议关闭

linux系统加固方案的更多相关文章

  1. Linux系统分区方案建议

    在安装Linux系统之初,就应该考虑怎样使linux系统得到最好的性能.linux本身也设计为可以良好扩展的形态. 笔者建议系统程序和业务程序分离安装比较合理,笔者所在的公司也是按照这种理念实施的.比 ...

  2. Linux 系统分区方案 详细教程

    简单分区方案 实际上,很多时候我们只需要分两个区:/和交换分区,日常使用基本不会有任何影响,甚至于交换分区对于现在的电脑来说都不是必要的,我们完全可以只分配一个根分区.linux只需要一个/根分区就可 ...

  3. linux 系统分区方案建议

    前言: 以前初识Linux时,对Linux系统安装时分区的选择,一点都不了解,导致几次没法进行下一步安装,因此就静下心来,专门拿出时间研究了研究这方面的知识: 以下内容就是以前通过研究Linux安装过 ...

  4. Linux系统分区方案(CentOs 6)

    装Linux如何分区: 方案1:(监控服务器,负载均衡器) 1./boot 引导分区,存放引导文件和Linux内核.       启动文件:用于判断你需要启动哪个操作系统或启动哪个内核.        ...

  5. Linux系统加固

    iptables 初始化 > iptables -F #清空所有的链 > iptables -X #清空所有自定义的链 关掉全部端口 > iptables -P INPUT DROP ...

  6. 企业生产环境不同业务linux系统分区方案

    转自:http://edu.51cto.com/lession/id-11842.html

  7. Linux系统下对NFS服务安全加固的方法

    NFS(Network File System)是 FreeBSD 支持的一种文件系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源.不正确的配置和使用 NFS,会带来安全问题. 概述 N ...

  8. [Linux]三种方案在Windows系统下安装ubuntu双系统(转)

    在学习linux的过程中,ubuntu无疑是初学者的最佳选择. 下面来列举给Windows系统安装ubuntu双系统的三种方法. 一.虚拟机安装(不推荐) 使用工具:Vmware 如果不是因为迫不得已 ...

  9. 如何加固Linux系统

    如何加固Linux系统 一. 账户安全 1.1 锁定系统中多余的自建帐号 检查方法: 执行命令 #cat /etc/passwd #cat /etc/shadow 查看账户.口令文件,与系统管理员确认 ...

随机推荐

  1. 吴裕雄--天生自然 PHP开发学习:表单 - 必需字段

    <?php // 定义变量并默认设为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $ema ...

  2. Constant expression required

    switch 语句编译报错Constant expression required 问题:case语句后面必须是常量,使用final修饰 public static final int NotifyT ...

  3. luffy课程表的创建-支付宝API-购买服务器

    课程组件 <template> <div class="course"> <Header></Header> <div cla ...

  4. 运行SQL文件报错Invalid ON UPDATE clause for 'create_date' column

    Invalid ON UPDATE clause for 'create_date' column   原因: 高版本的mysql导数据到低版本出现的问题 日期类型报错 MySQL 5.5 每个表只允 ...

  5. Java--包密封

    参考:http://blog.csdn.net/zhifeiyu2008/article/details/8829637  http://blog.csdn.net/technerd/article/ ...

  6. c指针(2)

    #include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct LNode { cha ...

  7. Django学习---多人博客项目(1)

    一.创建项目和应用 ​ 在Pycharm中用Django模板创建一个工程文件 创建项目 python manage.py startproject 项目名 . 创建应用 python manage.p ...

  8. Ioc和依赖注入

     转自https://www.cnblogs.com/zhangzonghua/p/8540701.html 1.IOC 是什么 IOC- Inversion of Control , 即“控制反转” ...

  9. shell的集合运算

    用cat,sort,uniq命令实现文件行的交集 .并集.补集 交集 $F_1 \cap F_2 $ cat f1 f2 | sort | uniq -d 并集 $F_1 \cup F_2 $ cat ...

  10. apt源换国内源

    vim /etc/apt/sources.list deb http://mirrors.163.com/debian/ jessie main non-free contribdeb http:// ...