0x0
0x1 --Centos7 基线检查190621
0x2 --Centos6 基线检查190627
0x3 --Ubuntu安全基线检查190621
0x3.5 --SSH登录安全策略、账户-密码
0x4 --Windows基线检查(按照CIS-Linux Windows 2008 R2最新基线标准进行系统层面基线检测)
0x5 --CIS 各种基线附件
0x1 Centos7 基线检查
描述
强制用户不重用最近使用的密码,降低密码猜测攻击风险
加固建议
在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改,只在末尾加了remember=5。
描述
确保SSH LogLevel设置为INFO,记录登录和注销活动
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释):
LogLevel INFO
描述
设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险
加固建议
编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。
ClientAliveInterval 600
ClientAliveCountMax 2
描述
SSHD强制使用V2安全协议
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数:
Protocol 2
操作时建议做好记录或备份
描述
设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。
加固建议
在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,建议为4:
MaxAuthTries 4
描述
除root以外其他UID为0的用户都应该删除,或者为其分配新的UID
加固建议
除root以外其他UID为0的用户(查看命令cat /etc/passwd | awk -F: ‘($3 == 0) { print $1 }‘|grep -v ‘^root$‘)都应该删除,或者为其分配新的UID
描述
设置密码修改最小间隔时间,限制密码更改过于频繁
加固建议
在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7:
PASS_MIN_DAYS 7
需同时执行命令为root用户设置:
描述
设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登陆方式(如密钥对)请忽略此项。
加固建议
使用非密码登陆方式如密钥对,请忽略此项。在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如:
PASS_MAX_DAYS 90
需同时执行命令设置root密码失效时间:
描述
检查密码长度和密码是否使用多种字符类型
加固建议
编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为9-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。如:
minlen=10
minclass=3
描述
它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,从而降低进程被成功入侵的风险
加固建议
执行命令: sysctl -w kernel.randomize_va_space=2
描述
设置用户权限配置文件的权限
加固建议
执行以下5条命令
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
chmod 0644 /etc/group
chmod 0644 /etc/passwd
chmod 0400 /etc/shadow
chmod 0400 /etc/gshadow
描述
访问控制配置文件的权限设置
加固建议
运行以下4条命令:
chown root:root /etc/hosts.allow
chown root:root /etc/hosts.deny
chmod 644 /etc/hosts.deny
chmod 644 /etc/hosts.allow
描述
确保rsyslog服务已启用,记录日志用于审计
加固建议
运行以下命令启用rsyslog服务:
systemctl enable rsyslog
systemctl start rsyslog
描述
确保密码到期警告天数为7或更多
加固建议
在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7:
PASS_WARN_AGE 7
同时执行命令使root用户设置生效:
描述
禁止SSH空密码用户登录
加固建议
编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no:
PermitEmptyPasswords no
描述
检查系统空密码账户
加固建议
为用户设置一个非空密码,或者执行passwd -l <username>锁定用户
0x2 Centos6 基线检查
描述
强制用户不重用最近使用的密码,降低密码猜测攻击风险
加固建议
在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改,只在末尾加了remember=5。
描述
设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险
加固建议
编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。
ClientAliveInterval 600
ClientAliveCountMax 2
描述
设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。
加固建议
在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,建议为4:
MaxAuthTries 4
描述
设置密码修改最小间隔时间,限制密码更改过于频繁
加固建议
在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7:
PASS_MIN_DAYS 7
需同时执行命令为root用户设置:
chage --mindays 7 root
描述
设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登陆方式(如密钥对)请忽略此项。
加固建议
使用非密码登陆方式如密钥对,请忽略此项。在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如:
PASS_MAX_DAYS 90
需同时执行命令设置root密码失效时间:
chage --maxdays 90 root
描述
检查密码长度和密码是否使用多种字符类型
加固建议
编辑/etc/pam.d/password-auth 和 /etc/pam.d/system-auth配置文件中包含password requisite pam_cracklib.so 这一行。增加配置minlen(密码最小长度)设置为9-32位,minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。如
password requisite pam_cracklib.so try_first_pass retry=3 minlen=11 minclass=3
描述
确保SSH LogLevel设置为INFO,记录登录和注销活动
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释):
LogLevel INFO
描述
除root以外其他UID为0的用户都应该删除,或者为其分配新的UID
加固建议
除root以外其他UID为0的用户(查看命令cat /etc/passwd | awk -F: ‘($3 == 0) { print $1 }‘|grep -v ‘^root$‘)都应该删除,或者为其分配新的UID
描述
它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,从而降低进程被成功入侵的风险
加固建议
执行命令: sysctl -w kernel.randomize_va_space=2
描述
设置用户权限配置文件的权限
加固建议
执行以下5条命令
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
chmod 0644 /etc/group
chmod 0644 /etc/passwd
chmod 0400 /etc/shadow
chmod 0400 /etc/gshadow
描述
访问控制配置文件的权限设置
加固建议
运行以下4条命令:
chown root:root /etc/hosts.allow
chown root:root /etc/hosts.deny
chmod 644 /etc/hosts.deny
chmod 644 /etc/hosts.allow
描述
确保rsyslog服务已启用,记录日志用于审计
加固建议
运行以下命令启用 rsyslog :
chkconfig rsyslog on
service rsyslog start
描述
SSHD强制使用V2安全协议
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数:
Protocol 2
描述
确保密码到期警告天数为7或更多
加固建议
在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7:
PASS_WARN_AGE 7
同时执行命令使root用户设置生效:
chage --warndays 7 root
描述
禁止SSH空密码用户登录
加固建议
编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no:
PermitEmptyPasswords no
描述
检查系统空密码账户
加固建议
为用户设置一个非空密码,或者执行passwd -l <username>锁定用户
0x3 Ubuntu安全基线检查190621
描述
设置用户权限配置文件的权限
加固建议
执行以下5条命令
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
chmod 0644 /etc/group
chmod 0644 /etc/passwd
chmod 0400 /etc/shadow
chmod 0400 /etc/gshadow
描述
设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险
加固建议
编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。
ClientAliveInterval 600
ClientAliveCountMax 2
描述
设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。
加固建议
在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,建议为4:
MaxAuthTries 4
描述
检查密码长度和密码是否使用多种字符类型
加固建议
1、安装PAM的cracklib模块,执行命令:
apt-get update&&apt-get install libpam-cracklib
2、编辑/etc/pam.d/common-password,在password requisite pam_cracklib.so开头的这一行配置minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中的3类或4类)设置为3或4,即在行末尾加上参数minclass=3;在password [success=1 default=ignore] pam_unix.so开头的这一行增加配置minlen(密码最小长度)设置为9-32位,建议为9,即在行末尾加上参数minlen=9
描述
设置密码修改最小间隔时间,限制密码更改过于频繁
加固建议
在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7:
PASS_MIN_DAYS 7
需同时执行命令为root用户设置:
描述
设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登陆方式(如密钥对)请忽略此项。
加固建议
使用非密码登陆方式如密钥对,请忽略此项。在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如:
PASS_MAX_DAYS 90
需同时执行命令设置root密码失效时间:
描述
强制用户不重用最近使用的密码,降低密码猜测攻击风险
加固建议
编辑/etc/pam.d/common-password,在password [success=1 default=ignore] pam_unix.so开头的这一行增加配置remember设置为5-24之间,建议为5,即在行末尾加上参数remember=5
描述
除root以外其他UID为0的用户都应该删除,或者为其分配新的UID
加固建议
除root以外其他UID为0的用户(查看命令cat /etc/passwd | awk -F: ‘($3 == 0) { print $1 }‘|grep -v ‘^root$‘)都应该删除,或者为其分配新的UID
描述
它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,从而降低进程被成功入侵的风险
加固建议
执行命令: sysctl -w kernel.randomize_va_space=2
描述
检查系统空密码账户
加固建议
为用户设置一个非空密码,或者执行passwd -l <username>锁定用户
描述
访问控制配置文件的权限设置
加固建议
运行以下4条命令:
chown root:root /etc/hosts.allow
chown root:root /etc/hosts.deny
chmod 644 /etc/hosts.deny
chmod 644 /etc/hosts.allow
描述
确保SSH LogLevel设置为INFO,记录登录和注销活动
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释):
LogLevel INFO
描述
SSHD强制使用V2安全协议
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数:
Protocol 2
描述
确保密码到期警告天数为7或更多
加固建议
在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7:
PASS_WARN_AGE 7
同时执行命令使root用户设置生效:
描述
禁止SSH空密码用户登录
加固建议
编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no:
PermitEmptyPasswords no
描述
确保rsyslog服务已启用,记录日志用于审计
加固建议
运行以下命令启用rsyslog服务:
service rsyslog start
--SSH登录安全策略检测如下配置:
1.登录端口是否为默认22端口。
2.root账号是否允许直接登录。
3.是否使用不安全的SSH V1协议。
4.是否使用不安全的rsh协议。
5.是否运行基于主机身份验证的登录。
修复方案: 编辑 /etc/ssh/sshd_config 1.Port(非22)。 2.PermitRootLogin(no)。 3.Protocol(2)。 4.IgnoreRhosts(yes)。 5.HostbasedAuthentication(no)。
--账户-密码
密码策略合规检测会检测如下Linux账户密码策略: 1.账号密码最大使用天数。 2.密码修改最小间隔天数。 3.账号不活动最长天数。
加固建议: 1.在/etc/login.defs 里面修改 PASS_MAX_DAYS 1095。 2.在/etc/login.defs 里面修改 PASS_MIN_DAYS 7。 3.执行useradd -D -f 1095。
0x4 Windows基线检查(按照CIS-Linux Windows 2008 R2最新基线标准进行系统层面基线检测)
检查项目: ‘交互式登录:不显示最后的用户名‘设置为‘已启用‘
加固建议: 在GP(组策略)中将以下路径中的值设置为:已启用\n计算机配置\\Windows 设置\\安全设置\\本地策略\\安全选项\\交互式登录: 不显示最后的用户名
设置空闲会话断开时间 | 访问控制 在管理工具打开本地安全策略,打开路径:安全设置\本地策略\安全选项。将Microsoft网络服务器中的"暂停会话之前所需的空闲时间数量"设置为:5-30之间,建议值为15;将"登陆时间过期后断开与客户端的连接"设置为:已启用。
设置密码使用期限策略 | 身份鉴别 在管理工具打开本地安全策略,打开路径:安全设置\帐户策略\密码策略,将密码最长使用期限设置为30-180之间,建议值为90,将密码最短使用期限设置为1-14之间,建议值为7.
配置安全选项账户策略 | 身份鉴别 在管理工具打开本地安全策略,打开路径:安全设置\本地策略\安全选项。将"账户:来宾账户状态"设置为:已禁用;将"账户:使用空密码的本地账户只允许控制台登陆"设置为:启用。
密码复杂性配置 | 身份鉴别 在管理工具打开本地安全策略,打开路径:安全设置\帐户策略\密码策略,将密码必须符合复杂性要求设置为已启用,将密码最小长度设置为8以上。
匿名账户访问控制 | 访问控制 在管理工具打开本地安全策略,打开路径:安全设置\本地策略\安全选项。将网络访问中“Everyone权限应用于匿名用户“设置为:已禁用,将“不允许SAM帐户的匿名枚举“设置为:已启用,将“不允许SAM帐户和共享的匿名枚举”设置为:已启用,将”允许匿名SID/名称转换“设置为:已禁用。
配置账户锁定策略 | 身份鉴别 在管理工具打开本地安全策略,打开路径:安全设置\帐户策略\账户锁定策略。将账户锁定阈值设置为3-8之间,建议值为5,输错5次密码锁定账户;然后将账户锁定时间和重置账户锁定计数器设置为10-30之间,建议值为15,账户锁定时间为15分钟。
应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计 | 安全审计 在管理工具打开本地安全策略,打开路径:安全设置\本地策略\审核策略,将全部审核策略配置为:成功,失败。包括审核策略更改、审核对象访问、审核进程跟踪、审核目录服务访问、审核账户登陆事件、审核特权使用、审核系统事件、审核账户管理、审核登陆事件共九项。
注册表自启动项 | 服务配置 检查项注册表路径HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon的Userinit中可疑启动项 加固建议
检查注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon的Userinit中的危险启动项并删除,注意不要删除系统默认启动项C:\Windows\system32\Userinit.exe
基线检查 https://helpcdn.aliyun.com/document_detail/59003.html
0x5 CIS各种基线检查
https://files.cnblogs.com/files/qtong/CIS-%E5%9F%BA%E7%BA%BF%E6%A3%80%E6%9F%A5-sqlserver%26oracle%26apache%26mongo.zip
https://learn.cisecurity.org/benchmarks
--漏洞扫描举例:
GnuTLS是一个免费的用于实现SSL、TLS和DTLS协议的安全通信库。 GnuTLS存在栈缓冲区溢出的漏洞,允许远程攻击者可利用该漏洞提交特殊的请求使链接此库的应用程序崩溃。
请直接在漏洞处理页面,选择对应服务器和漏洞,生成修复命令后,登录到服务器上运行即可。
www.securityfocus.com
软件: 2.8.5-14.el6_5
命中: gnutls version less than 0:2.12.23-21.el6
路径: /usr/lib64/libgnutls-extra.so.26
生成 命令 yum update gnutls
服务器软件漏洞修复最佳实践https://help.aliyun.com/knowledge_detail/56730.html?spm=5176.2020520154.0.0.3ab679d67R9lUa
基线检查 https://helpcdn.aliyun.com/document_detail/59003.html