Linux操作系统安全配置要求及操作指南

LINUX IT敢客 11个月前 (09-16) 7239次浏览 已收录 0个评论 扫描二维码

Linux 操作系统安全配置要求及操作指南

 

1 范围

适用于使用 Linux 操作系统的设备。本规范明确了安全配置的基本要求,适用

于所有的安全等级,可作为编制设备入网测试、安全验收、安全检查规范等文档的参考。由于版本不同,配置操作有所不同,本规范以内核版本 2.6 及以上为例,给出参考配置操作。

2 缩略语

FTP

File Transfer Protocol

文件传输协议

UDP

User Datagram Protocol

用户数据包协议

TCP

Transmission Control Protocol

传输控制协议

  1. 安全配置要求
    1. 账号

编号: 1

要求内容

应按照不同的用户分配不同的账号。避免不同用户间共享账号。避免用户账号和设备间通信使用的账号共享。

操作指南

  1. 参考配置操作为用户创建账号:

    #useradd username  #创建账号

    #passwd username   #设置密码修改权限:

    #chmod 750 directory  #其中 750 为设置的权限,可根据实际情况设置相应的权限,directory 是要更改权限的目录)

    使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。

  2. 补充操作说明


     

检测方法

  1. 判定条件能够登录成功并且可以进行常用操作;

  2. 检测操作

    使用不同的账号进行登录并进行一些常用操作;

  3. 补充说明


     

编号: 2

要求内容

应删除或锁定与设备运行、维护等工作无关的账号。

操作指南

  1. 参考配置操作

    删除用户:#userdel username;  

    锁定用户:

    1)修改/etc/shadow 文件,用户名后加*LK*

    2)/etc/passwd 文件中的 shell 域设置成/bin/false

    3)#passwd -l username

    只有具备超级用户权限的使用者方可使用,#passwd -l username 锁定用户,#passwd –d username 解锁后原有密码失效,登录需输入新密码,修改/etc/shadow 能保留原有密码。

  2. 补充操作说明需要锁定的用户:listen,gdm,webservd,nobody,nobody4noaccess

    注:无关的账号主要指测试帐户、共享帐号、长期不用账号(半年以上未用)等

检测方法

1、判定条件

被删除或锁定的账号无法登录成功;

 
  1. 检测操作使用删除或锁定的与工作无关的账号登录系统;

  2. 补充说明

    需要锁定的用户:listen,gdm,webservd,nobody,nobody4noaccess


     

编号: 3  

要求内容

根据系统要求及用户的业务需求,建立多帐户组,将用户账号分配到相应的帐户组。

操作指南

  1. 参考配置操作

Cat /etc/passwd

Cat /etc/group

  1. 补充操作说明

检测方法

  1. 判定条件人工分析判断

  2. 检测操作

编号:4

要求内容

使用 PAM 禁止任何人 su root

操作指南

参考操作:

编辑su文件(vi /etc/pam.d/su),在开头添加下面两行: auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_wheel.so group=wheel 这表明只有wheel组的成员可以使用su命令成为root用户。你可以把用户添加到 wheel组,以使它可以使用su命令成为root用户。添加方法为:

# chmod –G10 username

检测方法

  1. 判定条件

  2. 检测操作

Cat /etc/pam.d/su

  1. 口令

编号:1

要求内容

对于采用静态口令认证技术的设备,口令长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 3 类。

操作指南

1、参考配置操作

vi /etc/login.defs ,修改设置如下

PASS_MIN_LEN=8 #设定 小用户密码长度为 8

 

Linux 用户密码的复杂度可以通过 pam_cracklib module

pam_passwdqc module 进行设置

检测方法

1、判定条件

 

不符合密码强度的时候,系统对口令强度要求进行提示;符合密码强度的时候,可以成功设置;

2、检测操作

  1. 检查口令强度配置选项是否可以进行如下配置:

    i.
    配置口令的 小长度; ii.
    将口令配置为强口令。

  2. 创建一个普通账号,为用户配置与用户名相同的口令、只包含字符或数字的简单口令以及长度短于 8 的口令,查看系统是否对口令强度要求进行提示;输入带有特殊符号的复杂口令、普通复杂口令,查看系统是否可以成功设置。

  3. 补充说明

    pam_cracklib 主要参数说明:

       tretry=N:重试多少次后返回密码修改错误     difok=N:新密码必需与旧密码不同的位数

       dcredit=N: N >= 0:密码中 多有多少个数字;N < 0 密码中 少有多少个数字.

       lcredit=N:小写字母的个数     ucredit=N 大写字母的个数     credit=N:特殊字母的个数

       minclass=N:密码组成(/小字母,数字,特殊字符) pam_passwdqc 主要参数说明:

      mix:设置口令字 小长度,默认值是 mix=disabled

      max:设置口令字的 大长度,默认值是 max=40

      passphrase: 设置口令短语中单词的 少个数,默认值是 passphrase=3,如果为 0 则禁用口令短语。

      atch:设置密码串的常见程序,默认值是 match=4

      similar:设置当我们重设口令时,重新设置的新口令能否与旧口令相似,它可以是 similar=permit 允许相似或 similar=deny 不允许相似。

      random:设置随机生成口令字的默认长度。默认值是 random=42

    设为 0 则禁止该功能。

      enforce:设置约束范围,enforce=none 表示只警告弱口令字,但不禁止它们使用;enforce=users 将对系统上的全体非根用户实行这一限制;enforce=everyone 将对包括根用户在内的全体用户实行这一限制。

      non-unix:它告诉这个模块不要使用传统的 getpwnam 函数调用获得用户信息。

      retry:设置用户输入口令字时允许重试的次数,默认值是retry=3

     

    密码复杂度通过/etc/pam.d/system-auth 实施

编号: 2

要求内容

对于采用静态口令认证技术的设备,帐户口令的生存期不长于 90 天。

操作指南

1、参考配置操作
vi /
etc/login.defs

PASS_MAX_DAYS=90   #设定口令的生存期不长于 90

检测方法

  1. 判定条件登录不成功;

  2. 检测操作使用超过 90 天的帐户口令登录;

  3. 补充说明测试时可以将 90 天的设置缩短来做测试;

  1. 授权

编号:1

要求内容

在设备权限配置能力内,根据用户的业务需要,配置其所需的 小权限。

操作指南

  1. 参考配置操作通过 chmod 命令对目录的权限进行实际设置。

  2. 补充操作说明

    /etc/passwd 必须所有用户都可读,root 用户可写 –rw-r—r—  

    /etc/shadow 只有 root 可读 –r——–  

    /etc/group  须所有用户都可读,root 用户可写 –rw-r—r—

    使用如下命令设置:

    chmod 644 /etc/passwd chmod 600 /etc/shadow chmod 644 /etc/group

    如果是有写权限,就需移去组及其它用户对/etc 的写权限(特殊情况除外)

    执行命令#chmod -R go-w /etc


     

检测方法

1、判定条件

  1. 设备系统能够提供用户权限的配置选项,并记录对用户进行权限配置是否必须在用户创建时进行;

  2. 记录能够配置的权限选项内容;

  3. 所配置的权限规则应能够正确应用,即用户无法访问授权范围

    之外的系统资源,而可以访问授权范围之内的系统资源。

    2、检测操作

  4. 利用管理员账号登录系统,并创建 2 个不同的用户;

  5. 创建用户时查看系统是否提供了用户权限级别以及可访问系统资源和命令的选项;

  6. 为两个用户分别配置不同的权限,2 个用户的权限差异应能够分别在用户权限级别、可访问系统资源以及可用命令等方面予以体

 

现;

4、分别利用 2 个新建的账号访问设备系统,并分别尝试访问允许访问的内容和不允许访问的内容,查看权限配置策略是否生效。

3、补充说明

编号: 2

要求内容

控制用户缺省访问权限,当在创建新文件或目录时
应屏蔽掉新文件或目录不应有的访问允许权限。防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。

操作指南

  1. 参考配置操作

    设置默认权限:

    Vi /etc/login.defs    在末尾增加 umask 027,将缺省访问权限设置为 750

    修改文件或目录的权限,操作举例如下:

    #chmod 444 dir ; #修改目录 dir 的权限为所有人都为只读。

    根据实际情况设置权限;

  2. 补充操作说明如果用户需要使用一个不同于默认全局系统设置的 umask,可以在需要的时候通过命令行设置,或者在用户的 shell 启动文件中配置。

检测方法

  1. 判定条件权限设置符合实际需要;不应有的访问允许权限被屏蔽掉;

  2. 检测操作

    查看新建的文件或目录的权限,操作举例如下:

    #ls -l dir ; #查看目录 dir 的权限

    #cat /etc/login.defs 查看是否有 umask 027 内容

  3. 补充说明

    umask 的默认设置一般为 022,这给新创建的文件默认权限 755 777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限。

    umask 的计算:

    umask 是使用八进制数据代码设置的,对于目录,该值等于八进制数据代码 777 减去需要的默认权限对应的八进制数据代码值;对于文件,该值等于八进制数据代码 666 减去需要的默认权限对应的八进制数据代码值。


     

编号:3

要求内容

如果需要启用 FTP 服务,控制 FTP 进程缺省访问权限,当通过 FTP 服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。

操作指南

1、参考配置操作以 vsftp 为例

打开/etc/vsftpd/chroot_list 文件,将需要限制的用户名加入到文件中

 

2、补充操作说明

检测方法

  1. 判定条件权限设置符合实际需要;不应有的访问允许权限被屏蔽掉;

  2. 检测操作

    查看新建的文件或目录的权限,操作举例如下:

  3. 补充说明

  1. 远程登录

编号:1

要求内容

限制具备超级管理员权限的用户远程登录。

远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。

操作指南

  1. 参考配置操作

编辑/etc/passwd,帐号信息的 shell /sbin/nologin 的为禁止远程登录,如要允许,则改成可以登录的 shell 即可,如/bin/bash

  1. 补充操作说明

如果限制 root 从远程 ssh 登录,修改/etc/ssh/sshd_config 文件,将 PermitRootLogin yes 改为 PermitRootLogin no,重启 sshd 服务。


 

检测方法

  1. 判定条件
    root
    远程登录不成功,提示"没有权限";普通用户可以登录成功,而且可以切换到 root 用户;

  2. 检测操作

    root 从远程使用 telnet 登录;普通用户从远程使用 telnet 登录; root 从远程使用 ssh 登录;

    普通用户从远程使用 ssh 登录;

     

  3. 补充说明限制 root 从远程 ssh 登录,修改/etc/ssh/sshd_config 文件,将

    PermitRootLogin yes 改为 PermitRootLogin no,重启 sshd 服务。

编号:2

要求内容

对于使用 IP 协议进行远程维护的设备,设备应配置使用 SSH 等加密协议,并安全配置 SSHD 的设置。

操作指南

  1. 参考配置操作

    正常可以通过#/etc/init.d/sshd start 来启动 SSH; 通过#/etc/init.d/sshd stop 来停止 SSH

  2. 补充操作说明查看 SSH 服务状态:

    # ps –ef|grep ssh

 

 

注:禁止使用 telnet 等明文传输协议进行远程维护;如特别需要,需采用访问控制策略对其进行限制;

检测方法

1
判定条件

# ps –ef|grep ssh

是否有 ssh 进程存在是否有 telnet 进程存在
2
、检测操作

查看 SSH 服务状态:

# ps –ef|grep ssh

查看 telnet 服务状态:

# ps –ef|grep telnet

3、补充说明


 

  1. 补丁

编号:1

要求内容

在保证业务网络稳定运行的前提下,安装 新的 OS 补丁。补丁在安装前需要测试确定。

操作指南

  1. 参考配置操作

看版本是否为 新版本。

执行下列命令,查看版本及大补丁号。

#uname –a

 

  1. 补充操作说明


 

检测方法

  1. 判定条件

看版本是否为 新版本。

# uname –a 查看版本及大补丁号

RedHat Linuxhttp://www.redhat.com/support/errata/

Slackware Linuxftp://ftp.slackware.com/pub/slackware/

SuSE Linuxhttp://www.suse.com/us/support/security/index.html

TurboLinuxhttp://www.turbolinux.com/security/

  1. 检测操作

在系统安装时建议只安装基本的 OS 部份,其余的软件包则以必要为原则,非必需的包就不装。

  1. 补充说明


 

  1. 日志

编号:1

要求内容

启用 syslog 系统日志审计功能

操作指南

  1. 参考配置操作

#cat /etc/syslog.conf 查看是否有#authpriv.*    /var/log/secure

  1. 补充操作说明

authpirv 设备的任何级别的信息记录到/var/log/secure 文件中,这主要是一些和认证、权限使用相关的信息。

检测方法

  1. 判定条件

查看是否有#authpriv.*    /var/log/secure

  1. 检测操作

#cat /etc/syslog.conf  

  1. 补充说明

authpirv 设备的任何级别的信息记录到/var/log/secure 文件中,这主要是一些和认证、权限使用相关的信息。

编号:2

要求内容

系统日志文件由 syslog 创立并且不可被其他用户修改;其它的系统日志文件不是全局可写

操作指南

  1. 参考配置操作查看如下等日志的访问权限

    #ls –l 查看下列日志文件权限

    /var/log/messages /var/log/secure /var/log/maillog

    /var/log/cron /var/log/spooler/var/log/boot.log

  2. 补充操作说明


     

检测方法

  1. 判定条件

     

  2. 检测操作使用 ls –l 命令依次检查系统日志的读写权限

  3. 补充说明


     

 

编号:3(可选)

要求内容

启用记录cron行为日志功能

操作指南

1、参考配置操作

Vi /etc/syslog.conf  # Log cron stuff  cron.*
cron.*

检测方法

1
判定条件 2、检测操作

 

cron.*

编号:4(可选)

要求内容

设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。

操作指南

  1. 参考配置操作

修改配置文件 vi /etc/syslog.conf

加上这一行:

 *.*   @192.168.0.1

可以将"*.*"替换为你实际需要的日志信息。比如:kern.* ; mail.* 等等。可以将此处 192.168.0.1 替换为实际的 IP 或域名。

  1. 补充操作说明

检测方法

  1. 判定条件

设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。

  1. 检测操作

查看日志服务器上的所收到的日志文件。

  1. 补充说明


 

  1. 不必要的服务、端口

编号:1

要求内容

关闭不必要的服务。

操作指南

  1. 参考配置操作

查看所有开启的服务:

#ps –ef  

#chkconfig –list

#cat /etc/xinetd.conf

在 xinetd.conf中关闭不用的服务
首先复制/etc/xinetd.conf #cp

/etc/xinetd.conf /etc/xinetd.conf.backup 然后用vi编辑器编辑

xinetd.conf文件,对于需要注释掉的服务在相应行开头标记"#"字符,重启xinetd服务,即可。

 

  1. 补充操作说明

参考附录A,根据需要关闭不必要的服务


 

检测方法

  1. 判定条件所需的服务都列出来;没有不必要的服务;

  2. 检测操作

 

#ps –ef  

#chkconfig –list

#cat /etc/xinetd.conf

3、补充说明在/etc/xinetd.conf文件中禁止不必要的基本网络服务。注意:改变了"/etc/xinetd.conf"文件之后,需要重新启动xinetd

对必须提供的服务采用tcpwapper来保护

  1. 系统 Banner 设置

要求内容

修改系统 banner,避免泄漏操作系统名称,版本号,主机名称等,并且给出登陆告警信息

操作指南

1、参考配置操作

 

在缺省情况下,当你登录到 linux 系统,它会告诉你该 linux 发行版的名称、版本、内核版本、服务器的名称。应该尽可能的隐藏系统信息。

 

首先编辑"/etc/rc.d/rc.local"
文件,在下面显示的这些行前加一个 "#",把输出信息的命令注释掉。

 

# This will overwrite /etc/issue at every boot. So, make  any changes you want to make to /etc/issue here or you  will lose them when you reboot.  

 

#echo "" > /etc/issue  

 

#echo "$R" >> /etc/issue  

 

#echo "Kernel $(uname -r) on $a $(uname -m)" >>  

/etc/issue  

#cp -f /etc/issue /etc/issue.net  

 

#echo >> /etc/issue  

 

其次删除"/etc"目录下的 isue.net issue 文件:

# mv /etc/issue /etc/issue.bak  

 

# mv /etc/issue.net /etc/issue.net.bak  

检测方法

查看 Cat /etc/rc.d/rc.local 注释住处信息

  1. 登陆超时时间设置

要求内容

对于具备字符交互界面的设备,配置定时帐户自动登出

操作指南

  1. 参考配置操作通过修改账户中"TMOUT"

    参数,可以实现此功能。TMOUT 按秒计算。编辑 profile 文件(vi /etc/profile),在"HISTFILESIZE="后面加入下面这行:

    建议 TMOUT=300(可根据情况设定)

  2. 补充操作说明改变这项设置后,必须先注销用户,再用该用户登录才能激活这个功能

检测方法

1、判定条件查看 TMOUT=300


 

  1. 删除潜在危险文件

要求内容

.rhosts.netrchosts.equiv等文件都具有潜在的危险,如果没有应用,应该删除

操作指南

  1. 参考配置操作

    执行:find / -name .netrc,检查系统中是否有.netrc 文件,执行:find / -name .rhosts ,检查系统中是否有.rhosts 文件如无应用,删除以上文件:

    Mv .rhost .rhost.bak  

    Mv .netr .netr.bak

  2. 补充操作说明注意系统版本,用相应的方法执行

检测方法

  1. 判定条件

  2. 检测操作


 

  1. FTP 设置

编号 1

要求内容

禁止 root 登陆 FTP

操作指南

1、参考配置操作ftpaccess 文件中加入下列行 root

检测方法

使用 root 帐号登录 ftp 会被拒绝

编号 2

要求内容

禁止匿名 ftp

操作指南

1、参考配置操作以 vsftpd 为例:

 

打开vsftd.conf文件,修改下列行为:

anonymous_enable=NO

检测方法

匿名账户不能登录

编号 3

要求内容

修改FTP banner 信息

操作指南

1、参考配置操作使用vsftpd,则修改下列文件的内容:

/etc/vsftpd.d/vsftpd.conf

使用wu-ftpd,则需要修改文件/etc/ftpaccess,在其中添加: banner /path/to/ftpbanner

在指定目录下创建包含ftpbanner信息的文件

检测方法

  1. 判断依据

通过外部ftp客户端登录,banner按照预先设定的显示

  1. 检查操作

附录 A:端口及服务

服务名称

端口

应用说明

关闭方法

处置建议

daytime

13/tcp

RFC867 白天协议

chkconfig daytime off  

建议关闭

13/udp

RFC867 白天协议

chkconfig daytime off  

time

37/tcp

时间协议

chkconfig time  off  

37/udp

时间协议

chkconfig time-udp off  

echo

7/tcp

RFC862_回声协议

chkconfig echo  off  

7/udp

RFC862_回声协议

chkconfig echo-udp    off    

discard

9/tcp

RFC863 废除协议

chkconfig discard off  

9/udp

chkconfig discard-udp off

chargen

19/tcp

RFC864 字符产生协议

chkconfig chargen off  

19/udp

chkconfig chargen-udp off  

ftp

21/tcp

文件传输协议(控制)

chkconfig gssftp off    

根据情况选择开放

telnet

23/tcp

虚拟终端协议

chkconfig krb5-telnet off    

根据情况选择开放

sendmail

25/tcp

简单邮件发送协议

chkconfig sendmail off

建议关闭

nameserver

53/udp

域名服务

chkconfig named off  

根据情况选择开放

53/tcp

域名服务

chkconfig named off  

根据情况选择开放

apache

80/tcp

HTTP 万维网发布

chkconfig httpd off  

根据情况选

  

服务

 

择开放

login

513/tcp

远程登录

chkconfig login   off

根据情况选择开放

shell

514/tcp

远程命令, no

passwd used

chkconfig shell   off

根据情况选择开放

exec

512/tcp

remote execution, passwd required

chkconfig exec    off

根据情况选择开放

ntalk

518/udp

new talk, conversation

chkconfig ntalk   off

建议关闭

ident

113/tcp

auth

chkconfig ident   off

建议关闭

printer

515/tcp

远程打印缓存

chkconfig printer off

强烈建议关闭

bootps

67/udp

引导协议服务端

chkconfig bootps  off

建议关闭

68/udp

引导协议客户端

chkconfig bootps  off

建议关闭

tftp

69/udp

普通文件传输协议

chkconfig tftp    off

强烈建议关闭

kshell

544/tcp

Kerberos remote

shell -kfall

chkconfig kshell  off

建议关闭

klogin

543/tcp

Kerberos rlogin

-kfall

chkconfig klogin  off

建议关闭

portmap

111/tcp

端口映射

chkconfig portmap  off

根据情况选择开放

snmp

161/udp

简单网络管理协议

Agent

chkconfig snmp  off

根据情况选择开放

snmp trap

161/tcp

简单网络管理协议

Agent

chkconfig snmp  off

根据情况选择开放

snmp-trap

162/udp

简单网络管理协议

Traps

chkconfig snmptrap  off

根据情况选择开放

syslogd

514/udp

系统日志服务

chkconfig syslog  off

建议保留

lpd

515/tcp

远程打印缓存

chkconfig lpd  off

强烈建议关闭

nfs

2049/tcp

NFS 远程文件系统

chkconfig nfs  off

强烈建议关闭

2049/udp

NFS 远程文件系统

chkconfig nfs  off

强烈建议关闭

nfs.lock

动态端口

rpc 服务

chkconfig nfslock  off

强烈建议关闭

ypbind

动态端口

rpc 服务

chkconfig ypbind  off

强烈建议关闭


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux 操作系统安全配置要求及操作指南
喜欢 (155)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址