第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
检查结果和操作处理
grep TMOUT /etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
检查标准值
TMOUT=600
修正操作
1、如设置值不等于600,则修改相应的文件设置值为6002、若检查输出为空,则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 `-eq 0 ]
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“`
export HISTFILE=”/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/passwd
检查内容
检查/etc/passwd第三列(uid)为0的行
检查结果和操作处理
awk-F:($3 == 0){ print $1 } /etc/passwd
查看返回是否含除”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=$newpath2、确认环境变量中子目录组权限为777的目录归属组。修改:
chmod 755 目录
说明
确保 root 用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777 的目录
文件属性
/etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
中umask值
检查
内容
检查各项登录初始化的文件是否含有umask值,并检查是否为077
检查结果和操作处理
grep umask /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/passwd
/etc/shadow
/etc/group
/etc/security/*
/etc/services
/etc/rc*.d
文件属性
检查
内容
文件属性
检查结果和操作处理
ls-l /etc/rc.d/init.d/*
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
检查标准值
ls-l /etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root
ls-l /etc/passwd-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/openssh/ssh-keysign
/usr/libexec/utempter/utempter
/usr/bin/crontab
/usr/bin/passwd
/usr/bin/rsh
/usr/bin/rcp
/usr/bin/sudoedit
/usr/bin/newgrp
/usr/bin/locate
/usr/bin/rlogin
/usr/bin/ssh-agent
/usr/bin/sudo
/usr/bin/Xorg
/usr/bin/wall
/usr/bin/gpasswd
/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/messages
或者有相关记录,并未注释
修正操作
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
检查结果和操作处理
grep TMOUT /etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
检查标准值
TMOUT=600
修正操作
1、如设置值不等于600,则修改相应的文件设置值为6002、若检查输出为空,则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 `-eq 0 ]
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“`
export HISTFILE=”/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/passwd
检查内容
检查/etc/passwd第三列(uid)为0的行
检查结果和操作处理
awk-F:($3 == 0){ print $1 } /etc/passwd
查看返回是否含除”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=$newpath2、确认环境变量中子目录组权限为777的目录归属组。修改:
chmod 755 目录
说明
确保 root 用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777 的目录
文件属性
/etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
中umask值
检查
内容
检查各项登录初始化的文件是否含有umask值,并检查是否为077
检查结果和操作处理
grep umask /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/passwd
/etc/shadow
/etc/group
/etc/security/*
/etc/services
/etc/rc*.d
文件属性
检查
内容
文件属性
检查结果和操作处理
ls-l /etc/rc.d/init.d/*
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
检查标准值
ls-l /etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root
ls-l /etc/passwd-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/openssh/ssh-keysign
/usr/libexec/utempter/utempter
/usr/bin/crontab
/usr/bin/passwd
/usr/bin/rsh
/usr/bin/rcp
/usr/bin/sudoedit
/usr/bin/newgrp
/usr/bin/locate
/usr/bin/rlogin
/usr/bin/ssh-agent
/usr/bin/sudo
/usr/bin/Xorg
/usr/bin/wall
/usr/bin/gpasswd
/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/messages
或者有相关记录,并未注释
修正操作
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
检查结果和操作处理
grep TMOUT /etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
检查标准值
TMOUT=600
修正操作
1、如设置值不等于600,则修改相应的文件设置值为6002、若检查输出为空,则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 `-eq 0 ]
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“`
export HISTFILE=”/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/passwd
检查内容
检查/etc/passwd第三列(uid)为0的行
检查结果和操作处理
awk-F:($3 == 0){ print $1 } /etc/passwd
查看返回是否含除”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=$newpath2、确认环境变量中子目录组权限为777的目录归属组。修改:
chmod 755 目录
说明
确保 root 用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777 的目录
文件属性
/etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
中umask值
检查
内容
检查各项登录初始化的文件是否含有umask值,并检查是否为077
检查结果和操作处理
grep umask /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/passwd
/etc/shadow
/etc/group
/etc/security/*
/etc/services
/etc/rc*.d
文件属性
检查
内容
文件属性
检查结果和操作处理
ls-l /etc/rc.d/init.d/*
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
检查标准值
ls-l /etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root
ls-l /etc/passwd-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/openssh/ssh-keysign
/usr/libexec/utempter/utempter
/usr/bin/crontab
/usr/bin/passwd
/usr/bin/rsh
/usr/bin/rcp
/usr/bin/sudoedit
/usr/bin/newgrp
/usr/bin/locate
/usr/bin/rlogin
/usr/bin/ssh-agent
/usr/bin/sudo
/usr/bin/Xorg
/usr/bin/wall
/usr/bin/gpasswd
/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/messages
或者有相关记录,并未注释
修正操作
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
检查结果和操作处理
grep TMOUT /etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
检查标准值
TMOUT=600
修正操作
1、如设置值不等于600,则修改相应的文件设置值为6002、若检查输出为空,则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 `-eq 0 ]
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“`
export HISTFILE=”/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/passwd
检查内容
检查/etc/passwd第三列(uid)为0的行
检查结果和操作处理
awk-F:($3 == 0){ print $1 } /etc/passwd
查看返回是否含除”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=$newpath2、确认环境变量中子目录组权限为777的目录归属组。修改:
chmod 755 目录
说明
确保 root 用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777 的目录
文件属性
/etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
中umask值
检查
内容
检查各项登录初始化的文件是否含有umask值,并检查是否为077
检查结果和操作处理
grep umask /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/passwd
/etc/shadow
/etc/group
/etc/security/*
/etc/services
/etc/rc*.d
文件属性
检查
内容
文件属性
检查结果和操作处理
ls-l /etc/rc.d/init.d/*
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
检查标准值
ls-l /etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root
ls-l /etc/passwd-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/openssh/ssh-keysign
/usr/libexec/utempter/utempter
/usr/bin/crontab
/usr/bin/passwd
/usr/bin/rsh
/usr/bin/rcp
/usr/bin/sudoedit
/usr/bin/newgrp
/usr/bin/locate
/usr/bin/rlogin
/usr/bin/ssh-agent
/usr/bin/sudo
/usr/bin/Xorg
/usr/bin/wall
/usr/bin/gpasswd
/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/messages
或者有相关记录,并未注释
修正操作
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
检查结果和操作处理
grep TMOUT /etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
检查标准值
TMOUT=600
修正操作
1、如设置值不等于600,则修改相应的文件设置值为6002、若检查输出为空,则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 `-eq 0 ]
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“`
export HISTFILE=”/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/passwd
检查内容
检查/etc/passwd第三列(uid)为0的行
检查结果和操作处理
awk-F:($3 == 0){ print $1 } /etc/passwd
查看返回是否含除”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=$newpath2、确认环境变量中子目录组权限为777的目录归属组。修改:
chmod 755 目录
说明
确保 root 用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777 的目录
文件属性
/etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
中umask值
检查
内容
检查各项登录初始化的文件是否含有umask值,并检查是否为077
检查结果和操作处理
grep umask /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/passwd
/etc/shadow
/etc/group
/etc/security/*
/etc/services
/etc/rc*.d
文件属性
检查
内容
文件属性
检查结果和操作处理
ls-l /etc/rc.d/init.d/*
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
检查标准值
ls-l /etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root
ls-l /etc/passwd-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/openssh/ssh-keysign
/usr/libexec/utempter/utempter
/usr/bin/crontab
/usr/bin/passwd
/usr/bin/rsh
/usr/bin/rcp
/usr/bin/sudoedit
/usr/bin/newgrp
/usr/bin/locate
/usr/bin/rlogin
/usr/bin/ssh-agent
/usr/bin/sudo
/usr/bin/Xorg
/usr/bin/wall
/usr/bin/gpasswd
/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/messages
或者有相关记录,并未注释
修正操作
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
检查结果和操作处理
grep TMOUT /etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
检查标准值
TMOUT=600
修正操作
1、如设置值不等于600,则修改相应的文件设置值为6002、若检查输出为空,则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 `-eq 0 ]
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“`
export HISTFILE=”/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/passwd
检查内容
检查/etc/passwd第三列(uid)为0的行
检查结果和操作处理
awk-F:($3 == 0){ print $1 } /etc/passwd
查看返回是否含除”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=$newpath2、确认环境变量中子目录组权限为777的目录归属组。修改:
chmod 755 目录
说明
确保 root 用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777 的目录
文件属性
/etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc
中umask值
检查
内容
检查各项登录初始化的文件是否含有umask值,并检查是否为077
检查结果和操作处理
grep umask /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/passwd
/etc/shadow
/etc/group
/etc/security/*
/etc/services
/etc/rc*.d
文件属性
检查
内容
文件属性
检查结果和操作处理
ls-l /etc/rc.d/init.d/*
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
检查标准值
ls-l /etc/rc.d/init.d/-rwxr-xr-x 755权限 root:root
ls-l /etc/passwd-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/openssh/ssh-keysign
/usr/libexec/utempter/utempter
/usr/bin/crontab
/usr/bin/passwd
/usr/bin/rsh
/usr/bin/rcp
/usr/bin/sudoedit
/usr/bin/newgrp
/usr/bin/locate
/usr/bin/rlogin
/usr/bin/ssh-agent
/usr/bin/sudo
/usr/bin/Xorg
/usr/bin/wall
/usr/bin/gpasswd
/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/messages
或者有相关记录,并未注释
修正操作
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有所帮助。