服务器的安全基线加固及应急响应总结

Posted EZ4GodJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器的安全基线加固及应急响应总结相关的知识,希望对你有一定的参考价值。

Windows安全基线及加固(例子为win server 2008):

1.身份鉴别

        1)更改缺省账号:对于管理员帐号,要求更改缺省 Administrator 帐户名称

        2)禁用guest账号

        3)启用密码复杂性要求:使密码必须符合复杂性要求。

        4)最小密码长度设置:最小口令长度不得小于8位

        5)账户口令生存周期设置:静态口令认证,账户口令的生存期不得长于90天。

        6)口令重复次数:静态口令认证,不能重复使用最近5次内使用的口令。

        7)口令认证失败次数:静态口令认证失败次数不超过6次,反之被锁定,设定为0则表示永不锁定。

        8)账户锁定时间:设置账号锁定时间不小于1分钟,设置为0则表示永不锁定。

        9)账户锁定计数器:确定登录尝试失败之后和登录尝试失败计数器被复位为0次失败登录尝试之前经过的分钟数,时间应小于或等于帐户锁定时间

        10)口令到期提示:密码到期前2个周提示更换密码

        11)域成员禁用更改机器账户密码

        12)限制匿名用户连接:检查是否限制匿名用户连接权限,防止用户远程枚举本地帐号和共

2.访问控制

        1)共享账户检查

        2)远程关机授权:在本地安全设置中从远端系统强制关机只指派给Administrators组

        3)本地关机:在本地安全设置中关闭系统仅指派给Administrators组。

       4)文件权限指派:在本地安全设置中取得文件或其它对象的所有权仅指派给Administrators。

        5)授权帐户登陆:在本地安全设置中配置指定授权用户允许本地登陆此计算机。

        6)授权帐户从网络访问:在组策略中只允许授权帐号从网络访问(包括网络共享等,但不包括终端服务)此计算机。

        7)关闭默认共享:非域环境中,关闭Windows硬盘默认共享,例如C$,D$。

        8)共享文件夹授权访问:查看每个共享文件夹的共享权限,只允许授权的帐户拥有权限共享          此文件夹。

3.安全审计

        1)NTP服务:windows time服务设为已启动

        2)用户登录日志记录:设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地

        3)系统日志完备性检查:控制面板->管理工具->本地安全策略->本地策略->审核策略->每项都设置->“成功”和“失败”都要审核需要配置的策略。

4.资源控制

        1)登录超时管理:启用登录时间用完时自动注销用户。

        2)远程登录超时配置:检查对于远程登陆的帐号,设置不活动断连时间15分钟。

5.剩余信息保护

        1)不显示上次的用户名

        2)关机前清除虚拟内存页面:关闭服务器前,应清除虚拟内存页面,保护暂存在在缓存中的数据。

        3)不启用可还原的加密来存储密码:不启用可还原的加密来存储密码,防止能够获取明文密码。

Linux安全基线及加固(例子为CentOS 6.5):

1.身份鉴别

        1)检查是否存在除root之外UID为0的用户:因为UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0。需要检查是否存在除root之外UID为0的用户。

        执行:

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

        若返回值包括“root”以外的条目,则低于安全要求。

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

        生存期检查:

        执行:

more /etc/login.defs

        检查PASS_MAX_DAYS/ PASS_MIN_DAYS/PASS_WARN_AGE参数。

PASS_MAX_DAYS   90      #新建用户的密码最长使用天数

PASS_MIN_DAYS   0        #新建用户的密码最短使用天数

PASS_WARN_AGE   7       #新建用户的密码到期提前提醒天数

        口令检查:

        询问管理员是否存在如下类似的简单用户密码配置,比如:

        root/root, test/test, root/root1234

        并执行:

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

         检查是否存在空口令帐号。

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

        检查/etc/pam.d/system-auth文件中是否对pam_cracklib.so的参数进行了正确设置。

        建议在/etc/pam.d/system-auth 文件中配置:

password  requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=1

        4)用户锁定策略:对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过10次,锁定该用户使用的帐号。

        检查/etc/pam.d/system-auth文件中是否对pam_tally.so的参数进行了正确设置。

        应设置连续输错10次密码,帐号锁定5分钟,使用命令

vi /etc/pam.d/system-auth

        修改配置文件,添加

auth required pam_tally.so onerr=fail deny=10 unlock_time=300

        注:解锁用户

 faillog  -u  <用户名>  -r

2.访问控制

        1)用户的umask安全配置:帐号与口令-用户的umask安全配置

        执行:

more /etc/profile  

more /etc/csh.login  

more /etc/csh.cshrc  

more /etc/bashrc

        检查是否包含umask值且umask=027

        2)重要目录和文件的权限设置

        执行以下命令检查目录和文件的权限设置情况:

ls  –l  /etc/

ls  –l  /etc/rc.d/init.d/

ls  –l  /tmp

ls  –l  /etc/inetd.conf

ls  –l  /etc/passwd

ls  –l  /etc/shadow

ls  –l  /etc/group

ls  –l  /etc/security

ls  –l  /etc/services

ls  -l  /etc/rc*.d

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

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

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

        3)查找未授权的SUID/SGID文件

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

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

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

        的文件,则低于安全要求。

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

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

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

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

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

Done

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

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

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

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

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

3.安全审计

        1)syslog登录事件记录:日志审计-syslog登录事件记录

        执行命令:

more /etc/rsyslog.conf

        查看参数authpriv值,若未对所有登录事件都记录,则低于安全要求。

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

        执行:

more /etc/rsyslog.conf

        查看是否设置了下列项:

kern.warning;*.err;authpriv.none @loghost

*.info;mail.none;authpriv.none;cron.none @loghost

*.emerg @loghost

local7.* @loghost

        配置专门的日志服务器,加强日志信息的异地同步备份,若未设置,则低于安全要求。

        3)设置history时间戳:在问题定位时,我们有时需要查看history命令记录,看是否有删除/移

        动文件、修改配置等误操作,为history命令添上时间记录,可便于分析、定位问题。

        执行:

vim ~/.bash_profile

        export HISTTIMEFORMAT="%F %T “

        export HISTTIMEFORMAT=“%F %T ‘whoami’"

4.资源控制

        1)登录超时:帐号与口令-检查登录超时设置

        使用命令

vi /etc/profile

        修改配置文件,添加“TMOUT=”行开头的注释,建议设置为“TMOUT=180”,

        即超时时间为3分钟,值为空或值低于180,则低于安全要求。

        2)root远程登录限制:对SSH服务进行安全检查

        使用命令

cat /etc/ssh/sshd_config

        查看配置文件

                A.检查是否允许root直接登录

                        检查“PermitRootLogin ”的值是否为no

                B.检查SSH使用的协议版本

                        检查“Protocol”的值

                        使用命令

vi /etc/ssh/sshd_config

                        编辑配置文件

                a.不允许root直接登录

                        设置“PermitRootLogin ”的值为no

                b.修改SSH使用的协议版本

                        设置“Protocol”的版本为2

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

                执行:

find  / -name  .netrc

                检查系统中是否有.netrc文件,

                执行:

find  / -name  .rhosts 

                检查系统中是否有.rhosts文件,若返回值包含以上条件,则低于安全要求

                等级保护基本要求:7.1.3.7 主机:资源控制(A3),a)应通过设定终端接入方式、网络地址范围等条件限制终端登录。

        4)更改SSH服务端口

        配置操作  /etc/ssh/sshd_config

5.入侵防范

        1)关闭不必要的服务

                使用命令

who -r

                查看当前init级别

                使用命令

chkconfig --list <服务名>

                查看所有服务的状态

                若有不必要的系统在当前级别下为on,则低于安全要求(需要手工检查)                

                使用命令

chkconfig --level <init级别> <服务名> on|off|reset

                设置服务在个init级别下开机是否启动

服务器被入侵后应急响应流程:

  1. 准备相关的⼯具,查后⻔等⼯具
  2. 初步判断事件类型, 事件等级。
  3. 抑制范围,隔离使受害⾯不继续扩⼤
  4. 查找原因,封堵攻击源。
  5. 业务恢复正常⽔平.
  6. 总结,报告,并修复、监控

以上是关于服务器的安全基线加固及应急响应总结的主要内容,如果未能解决你的问题,请参考以下文章

应急响应Tomcat安全加固

Windows学习总结(22)——Windows基线检查加固脚本

Windows学习总结(22)——Windows基线检查加固脚本

网络安全处理应急响应的简单方法

Windows应急响应和系统加固——Windows历年高危漏洞介绍和分析

Windwos应急响应和系统加固——Windwos操作系统版本介绍