Linux操作系统安全配置基线1(共)_linux安全配置基线

2020-02-27 其他范文 下载本文

Linux操作系统安全配置基线1(共)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“linux安全配置基线”。

第1篇:Linux操作系统安全配置基线1

一、目的规定深圳电力公司信息部所维护管理的LINUX操作系统的虚拟主机和物理主机应当遵循的操作系统安全性设置标准,本文档旨在知道系统管理人员或安全检查人员进行LINUX操作系统的安全合规性检查和配置。

二、适用范围

本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。

三、适用系统版本

LINUX系列服务器(包含CentOS5以上版本、RHEL5以上版本系统)

四、基线列表

检查类别

检查对象

账号

密码策略

/etc/login.defs

检查

内容

PASS_MAX_DAYS //密码失效天数

PASS_MIN_DAYS

PASS_MIN_LEN //密码最小长度

PASS_WARN_AGE //密码失效前多少天提醒修改密码

检查结果和操作处理

cat /etc/login.defs|grep PASS

查看PASS_MAX_DAYS,PASS_MIN_LEN,PASS_WARN_AGE值

检查标准值

PASS_MAX_DAYS 180

PASS_MIN_DAYS 0

PASS_MIN_LEN 8

PASS_WARN_AGE 7

修正操作

vim /etc/login.defs

修改各项值为标准值,修改完成后:wq保存。

说明

不允许存在简单密码,密码设置符合策略,密码长度至少为6,密码失效天数为90天,提前7天提醒用户修改密码。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ““){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

操作超时值TMOUT

/etc/profile

/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查

内容

检查各项登录初始化的文件是否含有TMOUT值,并检查是否为600

检查结果和操作处理

grepTMOUT /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

TMOUT=600

修正操作

1、如设置值不等于600,则修改相应的文件设置值为600

2、若检查输出为空,则echo “TMOUT=600”>> /etc/profile

当用户10分钟无操作时自动锁定退出账户,防止为退出造成安全问题。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

用户登陆方案

sudo权限

/etc/sudoers

用户所属组

id $user

检查

内容

查看wheel组有无sudo 无密码登陆权限 /etc/sudoers

查看用户是否属wheel组 #id $user

检查结果和操作处理

grep wheel /etc/sudoers 查看wheel组相关的设置

id + 用户名 查看所属组

检查标准值

/etc/sudoers记录:

%wheel ALL=(ALL)NOPASSWD: ALL

id + 用户名 : groups=10(wheel)

修正操作

删除或注释wheel组其他行

添加 %wheel ALL=(ALL)NOPASSWD: ALL记录行

把用户添加进入wheel组: usermod-G wheel 用户名

说明

非管理员用非root登陆,需要root权限时,最后sudo-i到root进行操作。

方便记录所有的命令操作。并在不需要root权限时不登陆root增强安全性。

用户操作历史相关记录

/etc/profile

文件中是否含有初始化脚本

检查

内容

脚本内容:

STTIMEFORMAT=%F %T

history

USER_IP=`who-u am i 2>/dev/null| awk {print $NF}|sed-e s/[()]//g`

USER_LOGIN=`who-u am i 2>/dev/null |awk {print $1}`

if [`echo $USER_IP|sed-e s/[()]//g |grep ”^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$“|wc-l`-eq0]

then

USER_IP=`hostname`

fi

if [!-d /tmp/ComHis]

then

mkdir /tmp/ComHis

chmod 777 /tmp/ComHis

fi

if [!-d /tmp/ComHis/${USER_LOGIN} ]

then

mkdir /tmp/ComHis/${USER_LOGIN}

chmod 300 /tmp/ComHis/${USER_LOGIN}

fi

export HISTSIZE=4096

DT=`date ”+%Y-%m-%d_%H:%M:%S“`

exportHISTFILE=”/tmp/ComHis/${USER_LOGIN}/${USER_IP}_ComHis.$DT“

chmod 600 /tmp/ComHis/${USER_LOGIN}/*dl* 2>/dev/null

export PATH=$PATH:/usr/sbin

检查结果和操作处理

cat /etc/profile

查看最后是否含有此脚本

检查标准值

含有此脚本内容

修正操作

vi /etc/profile

把脚本内容输入到文件最后,保存退出。

下次用户登陆时生效。

说明

每次用户登陆做完操作退出时,系统会记录本次登陆的时间和本次登陆所执行的命令,存放到/tmp/ComHis/登录名/ 目录夹下

做为历史记录提供查询。

用户权限

/etc/pawd

检查内容

检查/etc/pawd第三列(uid)为0的行

检查结果和操作处理

awk-F:($3 == 0){ print $1 } /etc/pawd

查看返回是否含除”root”以外的条目

检查标准值

除root外无其他输出记录

修正操作

1、查询账号归属,若无人认领则删除用户:usedel 用户名

2、修改用户所属组: usermod-g 组名 用户名

说明

UID(即用户组)为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0

root用户环境变量

$PATH

检查

内容

检测$PATH环境变量中是否包含 “:”, ”::”, ”.”, ”:.”内容

检测$PATH

检查结果和操作处理

echo $PATH | egrep(^|:)(.|:|$)

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)-ls

检查标准值

echo $PATH | egrep(^|:)(.|:|$)

无输出

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)–ls

无输出

修正操作

1、若环境变量中含有父目录,则去除父目录,重新定义新环境变量。vi /etc/profile 加入去除掉父目录的PATH内容$newpath

PATH=$newpath

2、确认环境变量中子目录组权限为777的目录归属组。修改:

chmod 755 目录

说明

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

文件属性

/etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

中umask值

检查

内容

检查各项登录初始化的文件是否含有umask值,并检查是否为077

检查结果和操作处理

grepumask /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

输出 umask=077

修正操作

修改对应文umask=077

sed s/umask 022/umask 077/g /etc/csh.login

sed s/umask 022/umask 077/g /etc/csh.cshrc

sed s/umask 022/umask 077/g/etc/bashrc

sed s/umask 022/umask 077/g/etc/profile

说明

umask是计算登陆系统之后创建文件或者目录的默认权限的参数。因此特别重要。

umask值是默认的022,如果是默认的,则低于安全要求

/etc/rc.d/init.d/*

/etc/pawd

/etc/shadow

/etc/group

/etc/security/*

/etc/services

/etc/rc*.d

文件属性

检查

内容

文件属性

检查结果和操作处理

ls-l /etc/rc.d/init.d/*

ls-l /etc/pawd

ls-l /etc/shadow

ls-l /etc/group

ls-l /etc/security/*

ls-l /etc/services

ls-l /etc/rc*.d

检查标准值

ls-l/etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root

ls-l/etc/pawd-rw-r--r--644权限 root:root

ls-l/etc/shadow-r--------400权限 root:root

ls-l/etc/group-rw-r--r--644权限 root:root

ls-l/etc/security

除/etc/security/console.apps/system-config-services(-rwxr-xr-x)/etc/security/namespace.init(-rwxr-xr-x)/etc/security/time.conf(-rw-------)外,其余权限基本都为-rw-r--r--644权限 root:root

ls-l/etc/services-rw-r--r--644权限 root:root

ls-l/etc/rc*.d一般为755权限

修正操作

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

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

说明

紧缩的文件属性设置有利于安全

黏贴位

检查

内容

检查文件系统中具有黏贴位的文件。

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART(-perm-04000-o-perm-02000)-type f-xdev-print;done

检查标准值

输出结果一般为下

/sbin/netreport

/sbin/unix_chkpwd

/sbin/mount.nfs4

/sbin/pam_timestamp_check

/sbin/umount.nfs

/sbin/mount.nfs

/sbin/umount.nfs4

/usr/sbin/userhelper

/usr/sbin/lockdev

/usr/sbin/ccreds_validate

/usr/sbin/sendmail.sendmail

/usr/sbin/usernetctl

/usr/libexec/openh/h-keysign

/usr/libexec/utempter/utempter

/usr/bin/crontab

/usr/bin/pawd

/usr/bin/rsh

/usr/bin/rcp

/usr/bin/sudoedit

/usr/bin/newgrp

/usr/bin/locate

/usr/bin/rlogin

/usr/bin/h-agent

/usr/bin/sudo

/usr/bin/Xorg

/usr/bin/wall

/usr/bin/gpawd

/usr/bin/at

/usr/bin/chsh

/usr/bin/chfn

/usr/bin/lockfile

/usr/bin/write

/usr/bin/staprun

/usr/bin/chage

/usr/kerberos/bin/ksu

/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper

/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper

/usr/lib/nspluginwrapper/plugin-config

/usr/lib64/vte/gnome-pty-helper

/usr/lib64/nspluginwrapper/plugin-config

/bin/ping6

/bin/mount

修正操作

对于陌生的输出结果目录确认归属人。沟通后修改:

chmod u-s file

chmod g-s file

说明

SUID作用:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

GID作用:让本来没有相应权限的组用户运行这个程序时,可以访问这个组没有权限访问的资源。

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

任何人具有写权限的目录

检查

内容

检查文件系统中所有人都有写权限的目录

检查结果和操作处理

for PART in `awk $3 ~ /ext/{ print $2 } /etc/fstab`;do find $PART-xdev-type d(-perm-0002-a!-perm-1000)-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该目录权限为755

chmod 755 目录

说明

紧缩目录权限

任何人具有写权限的文件

检查

内容

检查文件系统中所有人都有写权限的文件

检查结果和操作处理

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

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该文件权限为755

chmod 755 文件

说明

紧缩文件权限

查找没有属主的文件

检查

内容

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

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART-nouser-o-nogroup-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改拥有者为root:root

chown root:root 文件

修改权限为700 : chmod 700 文件

说明

发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。

异常隐含文件

检查

内容

查找隐藏文件

检查结果和操作处理

find /-name ”..*“-print

find /-name ”...*“-print |cat –v

find /-name ”.*“-print

检查标准值

无输出或输出常见文件

修正操作

询问文件归属,若没人认领,则删除该文件

rm-rf 文件

说明

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

日志审计

日志事件

syslog.conf

检查

内容

/etc/syslog.conf是否包含authpriv、mail、cron 日志记录

检查结果和操作处理

cat /etc/syslog.conf查看相关记录

检查标准值

authpriv.*/var/log/secure

mail.* /var/log/maillog

cron.* /var/log/cron

authpriv.*/var/log/meages

或者有相关记录,并未注释

修正操作

vi /etc/syslog.conf,添加相关记录并保存

说明

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

系统信息文件

/etc/security/limits.conf

查看相关记录

检查

内容

/etc/security/limits.conf中含有soft core、hard core的项

检查结果和操作处理

cat /etc/security/limits.conf|grep “soft core”|” hard core”

检查标准值

* soft core 0

* hard core 0

修正操作

在配置文件中添加或修改以上两项

说明

通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。

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

第2篇:Linux操作系统安全配置基线2

一、目的规定深圳电力公司信息部所维护管理的LINUX操作系统的虚拟主机和物理主机应当遵循的操作系统安全性设置标准,本文档旨在知道系统管理人员或安全检查人员进行LINUX操作系统的安全合规性检查和配置。

二、适用范围

本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。

三、适用系统版本

LINUX系列服务器(包含CentOS5以上版本、RHEL5以上版本系统)

四、基线列表

检查类别

检查对象

账号

密码策略

/etc/login.defs

检查

内容

PASS_MAX_DAYS //密码失效天数

PASS_MIN_DAYS

PASS_MIN_LEN //密码最小长度

PASS_WARN_AGE //密码失效前多少天提醒修改密码

检查结果和操作处理

cat /etc/login.defs|grep PASS

查看PASS_MAX_DAYS,PASS_MIN_LEN,PASS_WARN_AGE值

检查标准值

PASS_MAX_DAYS 180

PASS_MIN_DAYS 0

PASS_MIN_LEN 8

PASS_WARN_AGE 7

修正操作

vim /etc/login.defs

修改各项值为标准值,修改完成后:wq保存。

说明

不允许存在简单密码,密码设置符合策略,密码长度至少为6,密码失效天数为90天,提前7天提醒用户修改密码。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

操作超时值TMOUT

/etc/profile

/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查

内容

检查各项登录初始化的文件是否含有TMOUT值,并检查是否为600

检查结果和操作处理

grepTMOUT /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

TMOUT=600

修正操作

1、如设置值不等于600,则修改相应的文件设置值为600

2、若检查输出为空,则echo “TMOUT=600”>> /etc/profile

当用户10分钟无操作时自动锁定退出账户,防止为退出造成安全问题。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

用户登陆方案

sudo权限

/etc/sudoers

用户所属组

id $user

检查

内容

查看wheel组有无sudo 无密码登陆权限 /etc/sudoers

查看用户是否属wheel组 #id $user

检查结果和操作处理

grep wheel /etc/sudoers 查看wheel组相关的设置

id + 用户名 查看所属组

检查标准值

/etc/sudoers记录:

%wheel ALL=(ALL)NOPASSWD: ALL

id + 用户名 : groups=10(wheel)

修正操作

删除或注释wheel组其他行

添加 %wheel ALL=(ALL)NOPASSWD: ALL记录行

把用户添加进入wheel组: usermod-G wheel 用户名

说明

非管理员用非root登陆,需要root权限时,最后sudo-i到root进行操作。

方便记录所有的命令操作。并在不需要root权限时不登陆root增强安全性。

用户操作历史相关记录

/etc/profile

文件中是否含有初始化脚本

检查

内容

脚本内容:

STTIMEFORMAT=%F %T

history

USER_IP=`who-u am i 2>/dev/null| awk {print $NF}|sed-e s/[()]//g`

USER_LOGIN=`who-u am i 2>/dev/null |awk {print $1}`

if [`echo $USER_IP|sed-e s/[()]//g |grep ”^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$“|wc-l`-eq0]

then

USER_IP=`hostname`

fi

if [!-d /tmp/ComHis]

then

mkdir /tmp/ComHis

chmod 777 /tmp/ComHis

fi

if [!-d /tmp/ComHis/${USER_LOGIN} ]

then

mkdir /tmp/ComHis/${USER_LOGIN}

chmod 300 /tmp/ComHis/${USER_LOGIN}

fi

export HISTSIZE=4096

DT=`date ”+%Y-%m-%d_%H:%M:%S“`

exportHISTFILE=”/tmp/ComHis/${USER_LOGIN}/${USER_IP}_ComHis.$DT“

chmod 600 /tmp/ComHis/${USER_LOGIN}/*dl* 2>/dev/null

export PATH=$PATH:/usr/sbin

检查结果和操作处理

cat /etc/profile

查看最后是否含有此脚本

检查标准值

含有此脚本内容

修正操作

vi /etc/profile

把脚本内容输入到文件最后,保存退出。

下次用户登陆时生效。

说明

每次用户登陆做完操作退出时,系统会记录本次登陆的时间和本次登陆所执行的命令,存放到/tmp/ComHis/登录名/ 目录夹下

做为历史记录提供查询。

用户权限

/etc/pawd

检查内容

检查/etc/pawd第三列(uid)为0的行

检查结果和操作处理

awk-F:($3 == 0){ print $1 } /etc/pawd

查看返回是否含除”root”以外的条目

检查标准值

除root外无其他输出记录

修正操作

1、查询账号归属,若无人认领则删除用户:usedel 用户名

2、修改用户所属组: usermod-g 组名 用户名

说明

UID(即用户组)为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0

root用户环境变量

$PATH

检查

内容

检测$PATH环境变量中是否包含 “:”, ”::”, ”.”, ”:.”内容

检测$PATH

检查结果和操作处理

echo $PATH | egrep(^|:)(.|:|$)

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)-ls

检查标准值

echo $PATH | egrep(^|:)(.|:|$)

无输出

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)–ls

无输出

修正操作

1、若环境变量中含有父目录,则去除父目录,重新定义新环境变量。vi /etc/profile 加入去除掉父目录的PATH内容$newpath

PATH=$newpath

2、确认环境变量中子目录组权限为777的目录归属组。修改:

chmod 755 目录

说明

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

文件属性

/etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

中umask值

检查

内容

检查各项登录初始化的文件是否含有umask值,并检查是否为077

检查结果和操作处理

grepumask /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

输出 umask=077

修正操作

修改对应文umask=077

sed s/umask 022/umask 077/g /etc/csh.login

sed s/umask 022/umask 077/g /etc/csh.cshrc

sed s/umask 022/umask 077/g/etc/bashrc

sed s/umask 022/umask 077/g/etc/profile

说明

umask是计算登陆系统之后创建文件或者目录的默认权限的参数。因此特别重要。

umask值是默认的022,如果是默认的,则低于安全要求

/etc/rc.d/init.d/*

/etc/pawd

/etc/shadow

/etc/group

/etc/security/*

/etc/services

/etc/rc*.d

文件属性

检查

内容

文件属性

检查结果和操作处理

ls-l /etc/rc.d/init.d/*

ls-l /etc/pawd

ls-l /etc/shadow

ls-l /etc/group

ls-l /etc/security/*

ls-l /etc/services

ls-l /etc/rc*.d

检查标准值

ls-l/etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root

ls-l/etc/pawd-rw-r--r--644权限 root:root

ls-l/etc/shadow-r--------400权限 root:root

ls-l/etc/group-rw-r--r--644权限 root:root

ls-l/etc/security

除/etc/security/console.apps/system-config-services(-rwxr-xr-x)/etc/security/namespace.init(-rwxr-xr-x)/etc/security/time.conf(-rw-------)外,其余权限基本都为-rw-r--r--644权限 root:root

ls-l/etc/services-rw-r--r--644权限 root:root

ls-l/etc/rc*.d一般为755权限

修正操作

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

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

说明

紧缩的文件属性设置有利于安全

黏贴位

检查

内容

检查文件系统中具有黏贴位的文件。

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART(-perm-04000-o-perm-02000)-type f-xdev-print;done

检查标准值

输出结果一般为下

/sbin/netreport

/sbin/unix_chkpwd

/sbin/mount.nfs4

/sbin/pam_timestamp_check

/sbin/umount.nfs

/sbin/mount.nfs

/sbin/umount.nfs4

/usr/sbin/userhelper

/usr/sbin/lockdev

/usr/sbin/ccreds_validate

/usr/sbin/sendmail.sendmail

/usr/sbin/usernetctl

/usr/libexec/openh/h-keysign

/usr/libexec/utempter/utempter

/usr/bin/crontab

/usr/bin/pawd

/usr/bin/rsh

/usr/bin/rcp

/usr/bin/sudoedit

/usr/bin/newgrp

/usr/bin/locate

/usr/bin/rlogin

/usr/bin/h-agent

/usr/bin/sudo

/usr/bin/Xorg

/usr/bin/wall

/usr/bin/gpawd

/usr/bin/at

/usr/bin/chsh

/usr/bin/chfn

/usr/bin/lockfile

/usr/bin/write

/usr/bin/staprun

/usr/bin/chage

/usr/kerberos/bin/ksu

/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper

/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper

/usr/lib/nspluginwrapper/plugin-config

/usr/lib64/vte/gnome-pty-helper

/usr/lib64/nspluginwrapper/plugin-config

/bin/ping6

/bin/mount

修正操作

对于陌生的输出结果目录确认归属人。沟通后修改:

chmod u-s file

chmod g-s file

说明

SUID作用:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

GID作用:让本来没有相应权限的组用户运行这个程序时,可以访问这个组没有权限访问的资源。

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

任何人具有写权限的目录

检查

内容

检查文件系统中所有人都有写权限的目录

检查结果和操作处理

for PART in `awk $3 ~ /ext/{ print $2 } /etc/fstab`;do find $PART-xdev-type d(-perm-0002-a!-perm-1000)-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该目录权限为755

chmod 755 目录

说明

紧缩目录权限

任何人具有写权限的文件

检查

内容

检查文件系统中所有人都有写权限的文件

检查结果和操作处理

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

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该文件权限为755

chmod 755 文件

说明

紧缩文件权限

查找没有属主的文件

检查

内容

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

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART-nouser-o-nogroup-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改拥有者为root:root

chown root:root 文件

修改权限为700 : chmod 700 文件

说明

发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。

异常隐含文件

检查

内容

查找隐藏文件

检查结果和操作处理

find /-name ”..*“-print

find /-name ”...*“-print |cat –v

find /-name ”.*“-print

检查标准值

无输出或输出常见文件

修正操作

询问文件归属,若没人认领,则删除该文件

rm-rf 文件

说明

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

日志审计

日志事件

syslog.conf

检查

内容

/etc/syslog.conf是否包含authpriv、mail、cron 日志记录

检查结果和操作处理

cat /etc/syslog.conf查看相关记录

检查标准值

authpriv.*/var/log/secure

mail.* /var/log/maillog

cron.* /var/log/cron

authpriv.*/var/log/meages

或者有相关记录,并未注释

修正操作

vi /etc/syslog.conf,添加相关记录并保存

说明

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

系统信息文件

/etc/security/limits.conf

查看相关记录

检查

内容

/etc/security/limits.conf中含有soft core、hard core的项

检查结果和操作处理

cat /etc/security/limits.conf|grep “soft core”|” hard core”

检查标准值

* soft core 0

* hard core 0

修正操作

在配置文件中添加或修改以上两项

说明

通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。

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

第3篇:Linux操作系统安全配置基线3

一、目的规定深圳电力公司信息部所维护管理的LINUX操作系统的虚拟主机和物理主机应当遵循的操作系统安全性设置标准,本文档旨在知道系统管理人员或安全检查人员进行LINUX操作系统的安全合规性检查和配置。

二、适用范围

本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。

三、适用系统版本

LINUX系列服务器(包含CentOS5以上版本、RHEL5以上版本系统)

四、基线列表

检查类别

检查对象

账号

密码策略

/etc/login.defs

检查

内容

PASS_MAX_DAYS //密码失效天数

PASS_MIN_DAYS

PASS_MIN_LEN //密码最小长度

PASS_WARN_AGE //密码失效前多少天提醒修改密码

检查结果和操作处理

cat /etc/login.defs|grep PASS

查看PASS_MAX_DAYS,PASS_MIN_LEN,PASS_WARN_AGE值

检查标准值

PASS_MAX_DAYS 180

PASS_MIN_DAYS 0

PASS_MIN_LEN 8

PASS_WARN_AGE 7

修正操作

vim /etc/login.defs

修改各项值为标准值,修改完成后:wq保存。

说明

不允许存在简单密码,密码设置符合策略,密码长度至少为6,密码失效天数为90天,提前7天提醒用户修改密码。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

操作超时值TMOUT

/etc/profile

/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查

内容

检查各项登录初始化的文件是否含有TMOUT值,并检查是否为600

检查结果和操作处理

grepTMOUT /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

TMOUT=600

修正操作

1、如设置值不等于600,则修改相应的文件设置值为600

2、若检查输出为空,则echo “TMOUT=600”>> /etc/profile

当用户10分钟无操作时自动锁定退出账户,防止为退出造成安全问题。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

用户登陆方案

sudo权限

/etc/sudoers

用户所属组

id $user

检查

内容

查看wheel组有无sudo 无密码登陆权限 /etc/sudoers

查看用户是否属wheel组 #id $user

检查结果和操作处理

grep wheel /etc/sudoers 查看wheel组相关的设置

id + 用户名 查看所属组

检查标准值

/etc/sudoers记录:

%wheel ALL=(ALL)NOPASSWD: ALL

id + 用户名 : groups=10(wheel)

修正操作

删除或注释wheel组其他行

添加 %wheel ALL=(ALL)NOPASSWD: ALL记录行

把用户添加进入wheel组: usermod-G wheel 用户名

说明

非管理员用非root登陆,需要root权限时,最后sudo-i到root进行操作。

方便记录所有的命令操作。并在不需要root权限时不登陆root增强安全性。

用户操作历史相关记录

/etc/profile

文件中是否含有初始化脚本

检查

内容

脚本内容:

STTIMEFORMAT=%F %T

history

USER_IP=`who-u am i 2>/dev/null| awk {print $NF}|sed-e s/[()]//g`

USER_LOGIN=`who-u am i 2>/dev/null |awk {print $1}`

if [`echo $USER_IP|sed-e s/[()]//g |grep ”^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$“|wc-l`-eq0]

then

USER_IP=`hostname`

fi

if [!-d /tmp/ComHis]

then

mkdir /tmp/ComHis

chmod 777 /tmp/ComHis

fi

if [!-d /tmp/ComHis/${USER_LOGIN} ]

then

mkdir /tmp/ComHis/${USER_LOGIN}

chmod 300 /tmp/ComHis/${USER_LOGIN}

fi

export HISTSIZE=4096

DT=`date ”+%Y-%m-%d_%H:%M:%S“`

exportHISTFILE=”/tmp/ComHis/${USER_LOGIN}/${USER_IP}_ComHis.$DT“

chmod 600 /tmp/ComHis/${USER_LOGIN}/*dl* 2>/dev/null

export PATH=$PATH:/usr/sbin

检查结果和操作处理

cat /etc/profile

查看最后是否含有此脚本

检查标准值

含有此脚本内容

修正操作

vi /etc/profile

把脚本内容输入到文件最后,保存退出。

下次用户登陆时生效。

说明

每次用户登陆做完操作退出时,系统会记录本次登陆的时间和本次登陆所执行的命令,存放到/tmp/ComHis/登录名/ 目录夹下

做为历史记录提供查询。

用户权限

/etc/pawd

检查内容

检查/etc/pawd第三列(uid)为0的行

检查结果和操作处理

awk-F:($3 == 0){ print $1 } /etc/pawd

查看返回是否含除”root”以外的条目

检查标准值

除root外无其他输出记录

修正操作

1、查询账号归属,若无人认领则删除用户:usedel 用户名

2、修改用户所属组: usermod-g 组名 用户名

说明

UID(即用户组)为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0

root用户环境变量

$PATH

检查

内容

检测$PATH环境变量中是否包含 “:”, ”::”, ”.”, ”:.”内容

检测$PATH

检查结果和操作处理

echo $PATH | egrep(^|:)(.|:|$)

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)-ls

检查标准值

echo $PATH | egrep(^|:)(.|:|$)

无输出

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)–ls

无输出

修正操作

1、若环境变量中含有父目录,则去除父目录,重新定义新环境变量。vi /etc/profile 加入去除掉父目录的PATH内容$newpath

PATH=$newpath

2、确认环境变量中子目录组权限为777的目录归属组。修改:

chmod 755 目录

说明

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

文件属性

/etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

中umask值

检查

内容

检查各项登录初始化的文件是否含有umask值,并检查是否为077

检查结果和操作处理

grepumask /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

输出 umask=077

修正操作

修改对应文umask=077

sed s/umask 022/umask 077/g /etc/csh.login

sed s/umask 022/umask 077/g /etc/csh.cshrc

sed s/umask 022/umask 077/g/etc/bashrc

sed s/umask 022/umask 077/g/etc/profile

说明

umask是计算登陆系统之后创建文件或者目录的默认权限的参数。因此特别重要。

umask值是默认的022,如果是默认的,则低于安全要求

/etc/rc.d/init.d/*

/etc/pawd

/etc/shadow

/etc/group

/etc/security/*

/etc/services

/etc/rc*.d

文件属性

检查

内容

文件属性

检查结果和操作处理

ls-l /etc/rc.d/init.d/*

ls-l /etc/pawd

ls-l /etc/shadow

ls-l /etc/group

ls-l /etc/security/*

ls-l /etc/services

ls-l /etc/rc*.d

检查标准值

ls-l/etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root

ls-l/etc/pawd-rw-r--r--644权限 root:root

ls-l/etc/shadow-r--------400权限 root:root

ls-l/etc/group-rw-r--r--644权限 root:root

ls-l/etc/security

除/etc/security/console.apps/system-config-services(-rwxr-xr-x)/etc/security/namespace.init(-rwxr-xr-x)/etc/security/time.conf(-rw-------)外,其余权限基本都为-rw-r--r--644权限 root:root

ls-l/etc/services-rw-r--r--644权限 root:root

ls-l/etc/rc*.d一般为755权限

修正操作

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

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

说明

紧缩的文件属性设置有利于安全

黏贴位

检查

内容

检查文件系统中具有黏贴位的文件。

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART(-perm-04000-o-perm-02000)-type f-xdev-print;done

检查标准值

输出结果一般为下

/sbin/netreport

/sbin/unix_chkpwd

/sbin/mount.nfs4

/sbin/pam_timestamp_check

/sbin/umount.nfs

/sbin/mount.nfs

/sbin/umount.nfs4

/usr/sbin/userhelper

/usr/sbin/lockdev

/usr/sbin/ccreds_validate

/usr/sbin/sendmail.sendmail

/usr/sbin/usernetctl

/usr/libexec/openh/h-keysign

/usr/libexec/utempter/utempter

/usr/bin/crontab

/usr/bin/pawd

/usr/bin/rsh

/usr/bin/rcp

/usr/bin/sudoedit

/usr/bin/newgrp

/usr/bin/locate

/usr/bin/rlogin

/usr/bin/h-agent

/usr/bin/sudo

/usr/bin/Xorg

/usr/bin/wall

/usr/bin/gpawd

/usr/bin/at

/usr/bin/chsh

/usr/bin/chfn

/usr/bin/lockfile

/usr/bin/write

/usr/bin/staprun

/usr/bin/chage

/usr/kerberos/bin/ksu

/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper

/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper

/usr/lib/nspluginwrapper/plugin-config

/usr/lib64/vte/gnome-pty-helper

/usr/lib64/nspluginwrapper/plugin-config

/bin/ping6

/bin/mount

修正操作

对于陌生的输出结果目录确认归属人。沟通后修改:

chmod u-s file

chmod g-s file

说明

SUID作用:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

GID作用:让本来没有相应权限的组用户运行这个程序时,可以访问这个组没有权限访问的资源。

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

任何人具有写权限的目录

检查

内容

检查文件系统中所有人都有写权限的目录

检查结果和操作处理

for PART in `awk $3 ~ /ext/{ print $2 } /etc/fstab`;do find $PART-xdev-type d(-perm-0002-a!-perm-1000)-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该目录权限为755

chmod 755 目录

说明

紧缩目录权限

任何人具有写权限的文件

检查

内容

检查文件系统中所有人都有写权限的文件

检查结果和操作处理

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

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该文件权限为755

chmod 755 文件

说明

紧缩文件权限

查找没有属主的文件

检查

内容

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

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART-nouser-o-nogroup-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改拥有者为root:root

chown root:root 文件

修改权限为700 : chmod 700 文件

说明

发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。

异常隐含文件

检查

内容

查找隐藏文件

检查结果和操作处理

find /-name ”..*“-print

find /-name ”...*“-print |cat –v

find /-name ”.*“-print

检查标准值

无输出或输出常见文件

修正操作

询问文件归属,若没人认领,则删除该文件

rm-rf 文件

说明

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

日志审计

日志事件

syslog.conf

检查

内容

/etc/syslog.conf是否包含authpriv、mail、cron 日志记录

检查结果和操作处理

cat /etc/syslog.conf查看相关记录

检查标准值

authpriv.*/var/log/secure

mail.* /var/log/maillog

cron.* /var/log/cron

authpriv.*/var/log/meages

或者有相关记录,并未注释

修正操作

vi /etc/syslog.conf,添加相关记录并保存

说明

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

系统信息文件

/etc/security/limits.conf

查看相关记录

检查

内容

/etc/security/limits.conf中含有soft core、hard core的项

检查结果和操作处理

cat /etc/security/limits.conf|grep “soft core”|” hard core”

检查标准值

* soft core 0

* hard core 0

修正操作

在配置文件中添加或修改以上两项

说明

通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。

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

第4篇:Linux操作系统安全配置基线4

一、目的规定深圳电力公司信息部所维护管理的LINUX操作系统的虚拟主机和物理主机应当遵循的操作系统安全性设置标准,本文档旨在知道系统管理人员或安全检查人员进行LINUX操作系统的安全合规性检查和配置。

二、适用范围

本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。

三、适用系统版本

LINUX系列服务器(包含CentOS5以上版本、RHEL5以上版本系统)

四、基线列表

检查类别

检查对象

账号

密码策略

/etc/login.defs

检查

内容

PASS_MAX_DAYS //密码失效天数

PASS_MIN_DAYS

PASS_MIN_LEN //密码最小长度

PASS_WARN_AGE //密码失效前多少天提醒修改密码

检查结果和操作处理

cat /etc/login.defs|grep PASS

查看PASS_MAX_DAYS,PASS_MIN_LEN,PASS_WARN_AGE值

检查标准值

PASS_MAX_DAYS 180

PASS_MIN_DAYS 0

PASS_MIN_LEN 8

PASS_WARN_AGE 7

修正操作

vim /etc/login.defs

修改各项值为标准值,修改完成后:wq保存。

说明

不允许存在简单密码,密码设置符合策略,密码长度至少为6,密码失效天数为90天,提前7天提醒用户修改密码。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

操作超时值TMOUT

/etc/profile

/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查

内容

检查各项登录初始化的文件是否含有TMOUT值,并检查是否为600

检查结果和操作处理

grepTMOUT /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

TMOUT=600

修正操作

1、如设置值不等于600,则修改相应的文件设置值为600

2、若检查输出为空,则echo “TMOUT=600”>> /etc/profile

当用户10分钟无操作时自动锁定退出账户,防止为退出造成安全问题。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

用户登陆方案

sudo权限

/etc/sudoers

用户所属组

id $user

检查

内容

查看wheel组有无sudo 无密码登陆权限 /etc/sudoers

查看用户是否属wheel组 #id $user

检查结果和操作处理

grep wheel /etc/sudoers 查看wheel组相关的设置

id + 用户名 查看所属组

检查标准值

/etc/sudoers记录:

%wheel ALL=(ALL)NOPASSWD: ALL

id + 用户名 : groups=10(wheel)

修正操作

删除或注释wheel组其他行

添加 %wheel ALL=(ALL)NOPASSWD: ALL记录行

把用户添加进入wheel组: usermod-G wheel 用户名

说明

非管理员用非root登陆,需要root权限时,最后sudo-i到root进行操作。

方便记录所有的命令操作。并在不需要root权限时不登陆root增强安全性。

用户操作历史相关记录

/etc/profile

文件中是否含有初始化脚本

检查

内容

脚本内容:

STTIMEFORMAT=%F %T

history

USER_IP=`who-u am i 2>/dev/null| awk {print $NF}|sed-e s/[()]//g`

USER_LOGIN=`who-u am i 2>/dev/null |awk {print $1}`

if [`echo $USER_IP|sed-e s/[()]//g |grep ”^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$“|wc-l`-eq0]

then

USER_IP=`hostname`

fi

if [!-d /tmp/ComHis]

then

mkdir /tmp/ComHis

chmod 777 /tmp/ComHis

fi

if [!-d /tmp/ComHis/${USER_LOGIN} ]

then

mkdir /tmp/ComHis/${USER_LOGIN}

chmod 300 /tmp/ComHis/${USER_LOGIN}

fi

export HISTSIZE=4096

DT=`date ”+%Y-%m-%d_%H:%M:%S“`

exportHISTFILE=”/tmp/ComHis/${USER_LOGIN}/${USER_IP}_ComHis.$DT“

chmod 600 /tmp/ComHis/${USER_LOGIN}/*dl* 2>/dev/null

export PATH=$PATH:/usr/sbin

检查结果和操作处理

cat /etc/profile

查看最后是否含有此脚本

检查标准值

含有此脚本内容

修正操作

vi /etc/profile

把脚本内容输入到文件最后,保存退出。

下次用户登陆时生效。

说明

每次用户登陆做完操作退出时,系统会记录本次登陆的时间和本次登陆所执行的命令,存放到/tmp/ComHis/登录名/ 目录夹下

做为历史记录提供查询。

用户权限

/etc/pawd

检查内容

检查/etc/pawd第三列(uid)为0的行

检查结果和操作处理

awk-F:($3 == 0){ print $1 } /etc/pawd

查看返回是否含除”root”以外的条目

检查标准值

除root外无其他输出记录

修正操作

1、查询账号归属,若无人认领则删除用户:usedel 用户名

2、修改用户所属组: usermod-g 组名 用户名

说明

UID(即用户组)为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0

root用户环境变量

$PATH

检查

内容

检测$PATH环境变量中是否包含 “:”, ”::”, ”.”, ”:.”内容

检测$PATH

检查结果和操作处理

echo $PATH | egrep(^|:)(.|:|$)

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)-ls

检查标准值

echo $PATH | egrep(^|:)(.|:|$)

无输出

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)–ls

无输出

修正操作

1、若环境变量中含有父目录,则去除父目录,重新定义新环境变量。vi /etc/profile 加入去除掉父目录的PATH内容$newpath

PATH=$newpath

2、确认环境变量中子目录组权限为777的目录归属组。修改:

chmod 755 目录

说明

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

文件属性

/etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

中umask值

检查

内容

检查各项登录初始化的文件是否含有umask值,并检查是否为077

检查结果和操作处理

grepumask /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

输出 umask=077

修正操作

修改对应文umask=077

sed s/umask 022/umask 077/g /etc/csh.login

sed s/umask 022/umask 077/g /etc/csh.cshrc

sed s/umask 022/umask 077/g/etc/bashrc

sed s/umask 022/umask 077/g/etc/profile

说明

umask是计算登陆系统之后创建文件或者目录的默认权限的参数。因此特别重要。

umask值是默认的022,如果是默认的,则低于安全要求

/etc/rc.d/init.d/*

/etc/pawd

/etc/shadow

/etc/group

/etc/security/*

/etc/services

/etc/rc*.d

文件属性

检查

内容

文件属性

检查结果和操作处理

ls-l /etc/rc.d/init.d/*

ls-l /etc/pawd

ls-l /etc/shadow

ls-l /etc/group

ls-l /etc/security/*

ls-l /etc/services

ls-l /etc/rc*.d

检查标准值

ls-l/etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root

ls-l/etc/pawd-rw-r--r--644权限 root:root

ls-l/etc/shadow-r--------400权限 root:root

ls-l/etc/group-rw-r--r--644权限 root:root

ls-l/etc/security

除/etc/security/console.apps/system-config-services(-rwxr-xr-x)/etc/security/namespace.init(-rwxr-xr-x)/etc/security/time.conf(-rw-------)外,其余权限基本都为-rw-r--r--644权限 root:root

ls-l/etc/services-rw-r--r--644权限 root:root

ls-l/etc/rc*.d一般为755权限

修正操作

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

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

说明

紧缩的文件属性设置有利于安全

黏贴位

检查

内容

检查文件系统中具有黏贴位的文件。

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART(-perm-04000-o-perm-02000)-type f-xdev-print;done

检查标准值

输出结果一般为下

/sbin/netreport

/sbin/unix_chkpwd

/sbin/mount.nfs4

/sbin/pam_timestamp_check

/sbin/umount.nfs

/sbin/mount.nfs

/sbin/umount.nfs4

/usr/sbin/userhelper

/usr/sbin/lockdev

/usr/sbin/ccreds_validate

/usr/sbin/sendmail.sendmail

/usr/sbin/usernetctl

/usr/libexec/openh/h-keysign

/usr/libexec/utempter/utempter

/usr/bin/crontab

/usr/bin/pawd

/usr/bin/rsh

/usr/bin/rcp

/usr/bin/sudoedit

/usr/bin/newgrp

/usr/bin/locate

/usr/bin/rlogin

/usr/bin/h-agent

/usr/bin/sudo

/usr/bin/Xorg

/usr/bin/wall

/usr/bin/gpawd

/usr/bin/at

/usr/bin/chsh

/usr/bin/chfn

/usr/bin/lockfile

/usr/bin/write

/usr/bin/staprun

/usr/bin/chage

/usr/kerberos/bin/ksu

/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper

/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper

/usr/lib/nspluginwrapper/plugin-config

/usr/lib64/vte/gnome-pty-helper

/usr/lib64/nspluginwrapper/plugin-config

/bin/ping6

/bin/mount

修正操作

对于陌生的输出结果目录确认归属人。沟通后修改:

chmod u-s file

chmod g-s file

说明

SUID作用:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

GID作用:让本来没有相应权限的组用户运行这个程序时,可以访问这个组没有权限访问的资源。

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

任何人具有写权限的目录

检查

内容

检查文件系统中所有人都有写权限的目录

检查结果和操作处理

for PART in `awk $3 ~ /ext/{ print $2 } /etc/fstab`;do find $PART-xdev-type d(-perm-0002-a!-perm-1000)-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该目录权限为755

chmod 755 目录

说明

紧缩目录权限

任何人具有写权限的文件

检查

内容

检查文件系统中所有人都有写权限的文件

检查结果和操作处理

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

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该文件权限为755

chmod 755 文件

说明

紧缩文件权限

查找没有属主的文件

检查

内容

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

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART-nouser-o-nogroup-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改拥有者为root:root

chown root:root 文件

修改权限为700 : chmod 700 文件

说明

发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。

异常隐含文件

检查

内容

查找隐藏文件

检查结果和操作处理

find /-name ”..*“-print

find /-name ”...*“-print |cat –v

find /-name ”.*“-print

检查标准值

无输出或输出常见文件

修正操作

询问文件归属,若没人认领,则删除该文件

rm-rf 文件

说明

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

日志审计

日志事件

syslog.conf

检查

内容

/etc/syslog.conf是否包含authpriv、mail、cron 日志记录

检查结果和操作处理

cat /etc/syslog.conf查看相关记录

检查标准值

authpriv.*/var/log/secure

mail.* /var/log/maillog

cron.* /var/log/cron

authpriv.*/var/log/meages

或者有相关记录,并未注释

修正操作

vi /etc/syslog.conf,添加相关记录并保存

说明

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

系统信息文件

/etc/security/limits.conf

查看相关记录

检查

内容

/etc/security/limits.conf中含有soft core、hard core的项

检查结果和操作处理

cat /etc/security/limits.conf|grep “soft core”|” hard core”

检查标准值

* soft core 0

* hard core 0

修正操作

在配置文件中添加或修改以上两项

说明

通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。

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

第5篇:Linux操作系统安全配置基线5

一、目的规定深圳电力公司信息部所维护管理的LINUX操作系统的虚拟主机和物理主机应当遵循的操作系统安全性设置标准,本文档旨在知道系统管理人员或安全检查人员进行LINUX操作系统的安全合规性检查和配置。

二、适用范围

本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。

三、适用系统版本

LINUX系列服务器(包含CentOS5以上版本、RHEL5以上版本系统)

四、基线列表

检查类别

检查对象

账号

密码策略

/etc/login.defs

检查

内容

PASS_MAX_DAYS //密码失效天数

PASS_MIN_DAYS

PASS_MIN_LEN //密码最小长度

PASS_WARN_AGE //密码失效前多少天提醒修改密码

检查结果和操作处理

cat /etc/login.defs|grep PASS

查看PASS_MAX_DAYS,PASS_MIN_LEN,PASS_WARN_AGE值

检查标准值

PASS_MAX_DAYS 180

PASS_MIN_DAYS 0

PASS_MIN_LEN 8

PASS_WARN_AGE 7

修正操作

vim /etc/login.defs

修改各项值为标准值,修改完成后:wq保存。

说明

不允许存在简单密码,密码设置符合策略,密码长度至少为6,密码失效天数为90天,提前7天提醒用户修改密码。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

操作超时值TMOUT

/etc/profile

/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查

内容

检查各项登录初始化的文件是否含有TMOUT值,并检查是否为600

检查结果和操作处理

grepTMOUT /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

TMOUT=600

修正操作

1、如设置值不等于600,则修改相应的文件设置值为600

2、若检查输出为空,则echo “TMOUT=600”>> /etc/profile

当用户10分钟无操作时自动锁定退出账户,防止为退出造成安全问题。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

用户登陆方案

sudo权限

/etc/sudoers

用户所属组

id $user

检查

内容

查看wheel组有无sudo 无密码登陆权限 /etc/sudoers

查看用户是否属wheel组 #id $user

检查结果和操作处理

grep wheel /etc/sudoers 查看wheel组相关的设置

id + 用户名 查看所属组

检查标准值

/etc/sudoers记录:

%wheel ALL=(ALL)NOPASSWD: ALL

id + 用户名 : groups=10(wheel)

修正操作

删除或注释wheel组其他行

添加 %wheel ALL=(ALL)NOPASSWD: ALL记录行

把用户添加进入wheel组: usermod-G wheel 用户名

说明

非管理员用非root登陆,需要root权限时,最后sudo-i到root进行操作。

方便记录所有的命令操作。并在不需要root权限时不登陆root增强安全性。

用户操作历史相关记录

/etc/profile

文件中是否含有初始化脚本

检查

内容

脚本内容:

STTIMEFORMAT=%F %T

history

USER_IP=`who-u am i 2>/dev/null| awk {print $NF}|sed-e s/[()]//g`

USER_LOGIN=`who-u am i 2>/dev/null |awk {print $1}`

if [`echo $USER_IP|sed-e s/[()]//g |grep ”^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$“|wc-l`-eq0]

then

USER_IP=`hostname`

fi

if [!-d /tmp/ComHis]

then

mkdir /tmp/ComHis

chmod 777 /tmp/ComHis

fi

if [!-d /tmp/ComHis/${USER_LOGIN} ]

then

mkdir /tmp/ComHis/${USER_LOGIN}

chmod 300 /tmp/ComHis/${USER_LOGIN}

fi

export HISTSIZE=4096

DT=`date ”+%Y-%m-%d_%H:%M:%S“`

exportHISTFILE=”/tmp/ComHis/${USER_LOGIN}/${USER_IP}_ComHis.$DT“

chmod 600 /tmp/ComHis/${USER_LOGIN}/*dl* 2>/dev/null

export PATH=$PATH:/usr/sbin

检查结果和操作处理

cat /etc/profile

查看最后是否含有此脚本

检查标准值

含有此脚本内容

修正操作

vi /etc/profile

把脚本内容输入到文件最后,保存退出。

下次用户登陆时生效。

说明

每次用户登陆做完操作退出时,系统会记录本次登陆的时间和本次登陆所执行的命令,存放到/tmp/ComHis/登录名/ 目录夹下

做为历史记录提供查询。

用户权限

/etc/pawd

检查内容

检查/etc/pawd第三列(uid)为0的行

检查结果和操作处理

awk-F:($3 == 0){ print $1 } /etc/pawd

查看返回是否含除”root”以外的条目

检查标准值

除root外无其他输出记录

修正操作

1、查询账号归属,若无人认领则删除用户:usedel 用户名

2、修改用户所属组: usermod-g 组名 用户名

说明

UID(即用户组)为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0

root用户环境变量

$PATH

检查

内容

检测$PATH环境变量中是否包含 “:”, ”::”, ”.”, ”:.”内容

检测$PATH

检查结果和操作处理

echo $PATH | egrep(^|:)(.|:|$)

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)-ls

检查标准值

echo $PATH | egrep(^|:)(.|:|$)

无输出

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)–ls

无输出

修正操作

1、若环境变量中含有父目录,则去除父目录,重新定义新环境变量。vi /etc/profile 加入去除掉父目录的PATH内容$newpath

PATH=$newpath

2、确认环境变量中子目录组权限为777的目录归属组。修改:

chmod 755 目录

说明

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

文件属性

/etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

中umask值

检查

内容

检查各项登录初始化的文件是否含有umask值,并检查是否为077

检查结果和操作处理

grepumask /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

输出 umask=077

修正操作

修改对应文umask=077

sed s/umask 022/umask 077/g /etc/csh.login

sed s/umask 022/umask 077/g /etc/csh.cshrc

sed s/umask 022/umask 077/g/etc/bashrc

sed s/umask 022/umask 077/g/etc/profile

说明

umask是计算登陆系统之后创建文件或者目录的默认权限的参数。因此特别重要。

umask值是默认的022,如果是默认的,则低于安全要求

/etc/rc.d/init.d/*

/etc/pawd

/etc/shadow

/etc/group

/etc/security/*

/etc/services

/etc/rc*.d

文件属性

检查

内容

文件属性

检查结果和操作处理

ls-l /etc/rc.d/init.d/*

ls-l /etc/pawd

ls-l /etc/shadow

ls-l /etc/group

ls-l /etc/security/*

ls-l /etc/services

ls-l /etc/rc*.d

检查标准值

ls-l/etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root

ls-l/etc/pawd-rw-r--r--644权限 root:root

ls-l/etc/shadow-r--------400权限 root:root

ls-l/etc/group-rw-r--r--644权限 root:root

ls-l/etc/security

除/etc/security/console.apps/system-config-services(-rwxr-xr-x)/etc/security/namespace.init(-rwxr-xr-x)/etc/security/time.conf(-rw-------)外,其余权限基本都为-rw-r--r--644权限 root:root

ls-l/etc/services-rw-r--r--644权限 root:root

ls-l/etc/rc*.d一般为755权限

修正操作

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

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

说明

紧缩的文件属性设置有利于安全

黏贴位

检查

内容

检查文件系统中具有黏贴位的文件。

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART(-perm-04000-o-perm-02000)-type f-xdev-print;done

检查标准值

输出结果一般为下

/sbin/netreport

/sbin/unix_chkpwd

/sbin/mount.nfs4

/sbin/pam_timestamp_check

/sbin/umount.nfs

/sbin/mount.nfs

/sbin/umount.nfs4

/usr/sbin/userhelper

/usr/sbin/lockdev

/usr/sbin/ccreds_validate

/usr/sbin/sendmail.sendmail

/usr/sbin/usernetctl

/usr/libexec/openh/h-keysign

/usr/libexec/utempter/utempter

/usr/bin/crontab

/usr/bin/pawd

/usr/bin/rsh

/usr/bin/rcp

/usr/bin/sudoedit

/usr/bin/newgrp

/usr/bin/locate

/usr/bin/rlogin

/usr/bin/h-agent

/usr/bin/sudo

/usr/bin/Xorg

/usr/bin/wall

/usr/bin/gpawd

/usr/bin/at

/usr/bin/chsh

/usr/bin/chfn

/usr/bin/lockfile

/usr/bin/write

/usr/bin/staprun

/usr/bin/chage

/usr/kerberos/bin/ksu

/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper

/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper

/usr/lib/nspluginwrapper/plugin-config

/usr/lib64/vte/gnome-pty-helper

/usr/lib64/nspluginwrapper/plugin-config

/bin/ping6

/bin/mount

修正操作

对于陌生的输出结果目录确认归属人。沟通后修改:

chmod u-s file

chmod g-s file

说明

SUID作用:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

GID作用:让本来没有相应权限的组用户运行这个程序时,可以访问这个组没有权限访问的资源。

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

任何人具有写权限的目录

检查

内容

检查文件系统中所有人都有写权限的目录

检查结果和操作处理

for PART in `awk $3 ~ /ext/{ print $2 } /etc/fstab`;do find $PART-xdev-type d(-perm-0002-a!-perm-1000)-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该目录权限为755

chmod 755 目录

说明

紧缩目录权限

任何人具有写权限的文件

检查

内容

检查文件系统中所有人都有写权限的文件

检查结果和操作处理

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

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该文件权限为755

chmod 755 文件

说明

紧缩文件权限

查找没有属主的文件

检查

内容

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

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART-nouser-o-nogroup-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改拥有者为root:root

chown root:root 文件

修改权限为700 : chmod 700 文件

说明

发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。

异常隐含文件

检查

内容

查找隐藏文件

检查结果和操作处理

find /-name ”..*“-print

find /-name ”...*“-print |cat –v

find /-name ”.*“-print

检查标准值

无输出或输出常见文件

修正操作

询问文件归属,若没人认领,则删除该文件

rm-rf 文件

说明

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

日志审计

日志事件

syslog.conf

检查

内容

/etc/syslog.conf是否包含authpriv、mail、cron 日志记录

检查结果和操作处理

cat /etc/syslog.conf查看相关记录

检查标准值

authpriv.*/var/log/secure

mail.* /var/log/maillog

cron.* /var/log/cron

authpriv.*/var/log/meages

或者有相关记录,并未注释

修正操作

vi /etc/syslog.conf,添加相关记录并保存

说明

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

系统信息文件

/etc/security/limits.conf

查看相关记录

检查

内容

/etc/security/limits.conf中含有soft core、hard core的项

检查结果和操作处理

cat /etc/security/limits.conf|grep “soft core”|” hard core”

检查标准值

* soft core 0

* hard core 0

修正操作

在配置文件中添加或修改以上两项

说明

通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。

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

一、目的规定深圳电力公司信息部所维护管理的LINUX操作系统的虚拟主机和物理主机应当遵循的操作系统安全性设置标准,本文档旨在知道系统管理人员或安全检查人员进行LINUX操作系统的安全合规性检查和配置。

二、适用范围

本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。

三、适用系统版本

LINUX系列服务器(包含CentOS5以上版本、RHEL5以上版本系统)

四、基线列表

检查类别

检查对象

账号

密码策略

/etc/login.defs

检查

内容

PASS_MAX_DAYS //密码失效天数

PASS_MIN_DAYS

PASS_MIN_LEN //密码最小长度

PASS_WARN_AGE //密码失效前多少天提醒修改密码

检查结果和操作处理

cat /etc/login.defs|grep PASS

查看PASS_MAX_DAYS,PASS_MIN_LEN,PASS_WARN_AGE值

检查标准值

PASS_MAX_DAYS 180

PASS_MIN_DAYS 0

PASS_MIN_LEN 8

PASS_WARN_AGE 7

修正操作

vim /etc/login.defs

修改各项值为标准值,修改完成后:wq保存。

说明

不允许存在简单密码,密码设置符合策略,密码长度至少为6,密码失效天数为90天,提前7天提醒用户修改密码。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

操作超时值TMOUT

/etc/profile

/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查

内容

检查各项登录初始化的文件是否含有TMOUT值,并检查是否为600

检查结果和操作处理

grepTMOUT /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

TMOUT=600

修正操作

1、如设置值不等于600,则修改相应的文件设置值为600

2、若检查输出为空,则echo “TMOUT=600”>> /etc/profile

当用户10分钟无操作时自动锁定退出账户,防止为退出造成安全问题。

是否存在空口令

/etc/shadow

检查

内容

检查/etc/shadow文件中每行第二列有没有为空的行

检查结果和操作处理

awk-F:($2 == ”“){ print $1 } /etc/shadow

输出密码为空的用户

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则删除该密码为空的用户

说明

不允许密码为空的用户存在。

用户登陆方案

sudo权限

/etc/sudoers

用户所属组

id $user

检查

内容

查看wheel组有无sudo 无密码登陆权限 /etc/sudoers

查看用户是否属wheel组 #id $user

检查结果和操作处理

grep wheel /etc/sudoers 查看wheel组相关的设置

id + 用户名 查看所属组

检查标准值

/etc/sudoers记录:

%wheel ALL=(ALL)NOPASSWD: ALL

id + 用户名 : groups=10(wheel)

修正操作

删除或注释wheel组其他行

添加 %wheel ALL=(ALL)NOPASSWD: ALL记录行

把用户添加进入wheel组: usermod-G wheel 用户名

说明

非管理员用非root登陆,需要root权限时,最后sudo-i到root进行操作。

方便记录所有的命令操作。并在不需要root权限时不登陆root增强安全性。

用户操作历史相关记录

/etc/profile

文件中是否含有初始化脚本

检查

内容

脚本内容:

STTIMEFORMAT=%F %T

history

USER_IP=`who-u am i 2>/dev/null| awk {print $NF}|sed-e s/[()]//g`

USER_LOGIN=`who-u am i 2>/dev/null |awk {print $1}`

if [`echo $USER_IP|sed-e s/[()]//g |grep ”^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$“|wc-l`-eq0]

then

USER_IP=`hostname`

fi

if [!-d /tmp/ComHis]

then

mkdir /tmp/ComHis

chmod 777 /tmp/ComHis

fi

if [!-d /tmp/ComHis/${USER_LOGIN} ]

then

mkdir /tmp/ComHis/${USER_LOGIN}

chmod 300 /tmp/ComHis/${USER_LOGIN}

fi

export HISTSIZE=4096

DT=`date ”+%Y-%m-%d_%H:%M:%S“`

exportHISTFILE=”/tmp/ComHis/${USER_LOGIN}/${USER_IP}_ComHis.$DT“

chmod 600 /tmp/ComHis/${USER_LOGIN}/*dl* 2>/dev/null

export PATH=$PATH:/usr/sbin

检查结果和操作处理

cat /etc/profile

查看最后是否含有此脚本

检查标准值

含有此脚本内容

修正操作

vi /etc/profile

把脚本内容输入到文件最后,保存退出。

下次用户登陆时生效。

说明

每次用户登陆做完操作退出时,系统会记录本次登陆的时间和本次登陆所执行的命令,存放到/tmp/ComHis/登录名/ 目录夹下

做为历史记录提供查询。

用户权限

/etc/pawd

检查内容

检查/etc/pawd第三列(uid)为0的行

检查结果和操作处理

awk-F:($3 == 0){ print $1 } /etc/pawd

查看返回是否含除”root”以外的条目

检查标准值

除root外无其他输出记录

修正操作

1、查询账号归属,若无人认领则删除用户:usedel 用户名

2、修改用户所属组: usermod-g 组名 用户名

说明

UID(即用户组)为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0

root用户环境变量

$PATH

检查

内容

检测$PATH环境变量中是否包含 “:”, ”::”, ”.”, ”:.”内容

检测$PATH

检查结果和操作处理

echo $PATH | egrep(^|:)(.|:|$)

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)-ls

检查标准值

echo $PATH | egrep(^|:)(.|:|$)

无输出

find `echo $PATH | tr : `-type d(-perm-002-o-perm-020)–ls

无输出

修正操作

1、若环境变量中含有父目录,则去除父目录,重新定义新环境变量。vi /etc/profile 加入去除掉父目录的PATH内容$newpath

PATH=$newpath

2、确认环境变量中子目录组权限为777的目录归属组。修改:

chmod 755 目录

说明

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

文件属性

/etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

中umask值

检查

内容

检查各项登录初始化的文件是否含有umask值,并检查是否为077

检查结果和操作处理

grepumask /etc/profile/etc/csh.login/etc/csh.cshrc/etc/bashrc

检查标准值

输出 umask=077

修正操作

修改对应文umask=077

sed s/umask 022/umask 077/g /etc/csh.login

sed s/umask 022/umask 077/g /etc/csh.cshrc

sed s/umask 022/umask 077/g/etc/bashrc

sed s/umask 022/umask 077/g/etc/profile

说明

umask是计算登陆系统之后创建文件或者目录的默认权限的参数。因此特别重要。

umask值是默认的022,如果是默认的,则低于安全要求

/etc/rc.d/init.d/*

/etc/pawd

/etc/shadow

/etc/group

/etc/security/*

/etc/services

/etc/rc*.d

文件属性

检查

内容

文件属性

检查结果和操作处理

ls-l /etc/rc.d/init.d/*

ls-l /etc/pawd

ls-l /etc/shadow

ls-l /etc/group

ls-l /etc/security/*

ls-l /etc/services

ls-l /etc/rc*.d

检查标准值

ls-l/etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root

ls-l/etc/pawd-rw-r--r--644权限 root:root

ls-l/etc/shadow-r--------400权限 root:root

ls-l/etc/group-rw-r--r--644权限 root:root

ls-l/etc/security

除/etc/security/console.apps/system-config-services(-rwxr-xr-x)/etc/security/namespace.init(-rwxr-xr-x)/etc/security/time.conf(-rw-------)外,其余权限基本都为-rw-r--r--644权限 root:root

ls-l/etc/services-rw-r--r--644权限 root:root

ls-l/etc/rc*.d一般为755权限

修正操作

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

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

说明

紧缩的文件属性设置有利于安全

黏贴位

检查

内容

检查文件系统中具有黏贴位的文件。

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART(-perm-04000-o-perm-02000)-type f-xdev-print;done

检查标准值

输出结果一般为下

/sbin/netreport

/sbin/unix_chkpwd

/sbin/mount.nfs4

/sbin/pam_timestamp_check

/sbin/umount.nfs

/sbin/mount.nfs

/sbin/umount.nfs4

/usr/sbin/userhelper

/usr/sbin/lockdev

/usr/sbin/ccreds_validate

/usr/sbin/sendmail.sendmail

/usr/sbin/usernetctl

/usr/libexec/openh/h-keysign

/usr/libexec/utempter/utempter

/usr/bin/crontab

/usr/bin/pawd

/usr/bin/rsh

/usr/bin/rcp

/usr/bin/sudoedit

/usr/bin/newgrp

/usr/bin/locate

/usr/bin/rlogin

/usr/bin/h-agent

/usr/bin/sudo

/usr/bin/Xorg

/usr/bin/wall

/usr/bin/gpawd

/usr/bin/at

/usr/bin/chsh

/usr/bin/chfn

/usr/bin/lockfile

/usr/bin/write

/usr/bin/staprun

/usr/bin/chage

/usr/kerberos/bin/ksu

/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper

/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper

/usr/lib/nspluginwrapper/plugin-config

/usr/lib64/vte/gnome-pty-helper

/usr/lib64/nspluginwrapper/plugin-config

/bin/ping6

/bin/mount

修正操作

对于陌生的输出结果目录确认归属人。沟通后修改:

chmod u-s file

chmod g-s file

说明

SUID作用:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

GID作用:让本来没有相应权限的组用户运行这个程序时,可以访问这个组没有权限访问的资源。

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

任何人具有写权限的目录

检查

内容

检查文件系统中所有人都有写权限的目录

检查结果和操作处理

for PART in `awk $3 ~ /ext/{ print $2 } /etc/fstab`;do find $PART-xdev-type d(-perm-0002-a!-perm-1000)-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该目录权限为755

chmod 755 目录

说明

紧缩目录权限

任何人具有写权限的文件

检查

内容

检查文件系统中所有人都有写权限的文件

检查结果和操作处理

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

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改该文件权限为755

chmod 755 文件

说明

紧缩文件权限

查找没有属主的文件

检查

内容

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

检查结果和操作处理

for PART in `grep-v ^# /etc/fstab | awk($6!= ”0“){print $2 }`;do find $PART-nouser-o-nogroup-print;done

检查标准值

无输出

修正操作

询问账号归属,若没人认领,则修改拥有者为root:root

chown root:root 文件

修改权限为700 : chmod 700 文件

说明

发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。

异常隐含文件

检查

内容

查找隐藏文件

检查结果和操作处理

find /-name ”..*“-print

find /-name ”...*“-print |cat –v

find /-name ”.*”-print

检查标准值

无输出或输出常见文件

修正操作

询问文件归属,若没人认领,则删除该文件

rm-rf 文件

说明

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

日志审计

日志事件

syslog.conf

检查

内容

/etc/syslog.conf是否包含authpriv、mail、cron 日志记录

检查结果和操作处理

cat /etc/syslog.conf查看相关记录

检查标准值

authpriv.*/var/log/secure

mail.* /var/log/maillog

cron.* /var/log/cron

authpriv.*/var/log/meages

或者有相关记录,并未注释

修正操作

vi /etc/syslog.conf,添加相关记录并保存

说明

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

系统信息文件

/etc/security/limits.conf

查看相关记录

检查

内容

/etc/security/limits.conf中含有soft core、hard core的项

检查结果和操作处理

cat /etc/security/limits.conf|grep “soft core”|” hard core”

检查标准值

* soft core 0

* hard core 0

修正操作

在配置文件中添加或修改以上两项

说明

通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。

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

推荐理由

该文章为Linux基础技术知识,对Linux从业者、爱好者、在读学生学习Linux有所帮助。

《Linux操作系统安全配置基线1(共).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
Linux操作系统安全配置基线1(共)
点击下载文档
相关专题 linux安全配置基线 基线 操作系统 Linux linux安全配置基线 基线 操作系统 Linux
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文