自从服务器搬到阿里云,阿里云倒是尽心尽责,态势感知天天提示网站被攻击。昨天看到安骑士提示“基线配置不当”,小白也不是很懂,索性就根据建议项和百度进行修复记录一下。
全文分为三部分文章源自亦枫博客-https://yflad.cn/1678.html
1、SSH登录基线检测,共5项;文章源自亦枫博客-https://yflad.cn/1678.html
2、密码策略合规检测,共3项;文章源自亦枫博客-https://yflad.cn/1678.html
3、Centos7系统基线合规检测,共39项。文章源自亦枫博客-https://yflad.cn/1678.html
小白不是很懂,欢迎指点文章源自亦枫博客-https://yflad.cn/1678.html
文章源自亦枫博客-https://yflad.cn/1678.html
文章源自亦枫博客-https://yflad.cn/1678.html
文章源自亦枫博客-https://yflad.cn/1678.html
1、SSH登录基线检测
SSH登录安全策略检测如下配置:文章源自亦枫博客-https://yflad.cn/1678.html
1.登录端口是否为默认22端口文章源自亦枫博客-https://yflad.cn/1678.html
2.root账号是否允许直接登录文章源自亦枫博客-https://yflad.cn/1678.html
3.是否使用不安全的SSH V1协议文章源自亦枫博客-https://yflad.cn/1678.html
4.是否使用不安全的rsh协议文章源自亦枫博客-https://yflad.cn/1678.html
5.是否运行基于主机身份验证的登录文章源自亦枫博客-https://yflad.cn/1678.html
文章源自亦枫博客-https://yflad.cn/1678.html
修复方案:文章源自亦枫博客-https://yflad.cn/1678.html
编辑sshd的配置文件[code]sshd_config[/code]文章源自亦枫博客-https://yflad.cn/1678.html
1.Port 22(默认是22,可自行修改sshd监听的端口号)文章源自亦枫博客-https://yflad.cn/1678.html
文章源自亦枫博客-https://yflad.cn/1678.html
2.PermitRootLogin yes(默认是yes,具体参数如下,可以根据自身需求选择,设置root能不能用ssh登录。这个选项尽量不要设成“yes”。)文章源自亦枫博客-https://yflad.cn/1678.html
参数类别 | 是否允许ssh登陆 | 登录方式 | 交互shell |
---|---|---|---|
yes | 允许 | 没有限制 | 没有限制 |
without-password | 允许 | 除密码以外 | 没有限制 |
forced-commands-only | 允许 | 仅允许使用密钥 | 仅允许已授权的命令 |
no | 不允许 | N/A | N/A |
3.Protocol(2)
4.IgnoreRhosts yes(默认是yes,设置验证的时候是否使用“rhosts”和“shosts”文件。)
5.HostbasedAuthentication(默认是no,yes是开启主机认证,no允许用户自己设置shosts和rhosts,该设置对主机认证中root用户的登陆有关键作用。)
2、密码策略合规检测
密码策略合规检测会检测如下Linux账户密码策略:
1.账号密码最大使用期限
2.密码修改最小间隔时间
3.密码最小长度
4.密码到期开始通知时间
文件名:login.defs
检测项目: 风险密码策略
PASS_MIN_LEN : 10(密码最小长度)
建议值: PASS_MIN_LEN 12
建议设置为12(如果因特殊场景需要用更少或更多的密码长度位数,可忽略该检测项)
PASS_WARN_AGE : 7(密码过期警告天数)
建议值: PASS_WARN_AGE 30
建议: 建议设置为30天
PASS_MAX_DAYS : 99999(密码最长过期天数)
建议值: PASS_MAX_DAYS 90
建议: 建议每90天更换一次密码
PASS_MAX_DAYS : 99999(密码最长过期天数)
建议值: PASS_MAX_DAYS 90
建议: 建议每90天更换一次密码
3、Centos7系统基线合规检测
按照CIS-Linux Centos7最新基线标准进行系统层面基线检测
检查项: 系统crontab权限设置
加固建议:
依次执行:
rm -f /etc/cron.deny
rm -f /etc/at.deny
touch /etc/cron.allow
touch /etc/at.allow
chmod 0600 /etc/cron.allow
chmod 0600 /etc/at.allow
检查项: 禁止转发ICMP重定向报文
加固建议: 执行sysctl -w net.ipv4.conf.all.send_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.send_redirects=0,不存在则添加
检查项: 禁止转发ICMP重定向报文
加固建议: 执行sysctl -w net.ipv4.conf.default.send_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.send_redirects=0,不存在则添加
检查项: 禁止包含源路由的ip包
加固建议: 执行sysctl -w net.ipv4.conf.all.accept_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.accept_redirects=0,不存在则添加
检查项: 禁止包含源路由的ip包
加固建议: 执行sysctl -w net.ipv4.conf.default.accept_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.accept_redirects=0,不存在则添加
检查项: 禁止转发安全ICMP重定向报文
加固建议: 执行sysctl -w net.ipv4.conf.all.secure_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.secure_redirects=0,不存在则添加
检查项: 禁止转发安全ICMP重定向报文
加固建议: 执行sysctl -w net.ipv4.conf.default.secure_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.secure_redirects=0,不存在则添加
检查项: 启用反转地址路径过滤
加固建议: 执行sysctl -w net.ipv4.conf.all.rp_filter=1
查看/etc/sysctl.conf中是否存在net.ipv4.conf.all.rp_filter=1,不存在则添加
检查项: 启用反转地址路径过滤
加固建议: 执行sysctl -w net.ipv4.conf.default.rp_filter=1
查看/etc/sysctl.conf中是否存在net.ipv4.conf.default.rp_filter=1,不存在则添加
检查项: 禁止ipv6路由广播
加固建议: 执行sysctl -w net.ipv6.conf.all.accept_ra=0
查看/etc/sysctl.conf中是否存在net.ipv6.conf.all.accept_ra=0,不存在则添加
检查项: 禁止ipv6路由广播
加固建议: 执行sysctl -w net.ipv6.conf.default.accept_ra=0
查看/etc/sysctl.conf中是否存在net.ipv6.conf.default.accept_ra=0,不存在则添加
检查项: 禁止ipv6路由重定向
加固建议: 执行sysctl -w net.ipv6.conf.all.accept_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv6.conf.all.accept_redirects=0,不存在则添加
检查项: 禁止ipv6路由重定向
加固建议: 执行sysctl -w net.ipv6.conf.default.accept_redirects=0
查看/etc/sysctl.conf中是否存在net.ipv6.conf.default.accept_redirects=0,不存在则添加
检查项: 密码授权新密码与老密码不能重复
加固建议: 在/etc/pam.d/password-auth
添加:password sufficient pam_unix.so remember=3
remember的值表示此次设置密码与过去3次不同
检查项: 系统授权新密码与老密码不能重复
加固建议: 在/etc/pam.d/system-auth
添加:password sufficient pam_unix.so remember=3
remember的值表示此次设置密码与过去3次不同
检查项: rsyslog日志文件权限配置
加固建议: 在/etc/rsyslog.conf
添加:$FileCreateMode 0640
检查项: SSHD强制使用V2安全协议
加固建议: 在/etc/ssh/sshd_config
取消Protocol注释符号#
检查项: SSHD仅记录ssh用户登录活动
加固建议: 在/etc/ssh/sshd_config
取消LogLevel INFO注释符号#
检查项: SSHD仅记录ssh用户登录活动
加固建议: 在/etc/ssh/sshd_config
取消MaxAuthTries注释符号#,设置自定义最大密码尝试失败次数
检查项: 清理主机远程登录历史主机记录
加固建议: 在/etc/ssh/sshd_config
取消IgnoreRhosts yes注释符号#
检查项: 禁止主机认证登录
加固建议: 在/etc/ssh/sshd_config
取消HostbasedAuthentication no注释符号#
检查项: 禁止空密码用户登录
加固建议: 在/etc/ssh/sshd_config
取消PermitEmptyPasswords no注释符号#
检查项: 禁止用户修改环境变量
加固建议: 在/etc/ssh/sshd_config
取消PermitUserEnvironment no注释符号#
检查项: 设置输入密码间隔时间
加固建议: 在/etc/ssh/sshd_config
取消LoginGraceTime前注释符,同时设置输入密码时间间隔秒数
PS:设置用户身份验证过程的时间限制。如果这个时间过去了,并且用户还没有成功地进行认证,那么服务器关闭连接。将此值保留为默认值“ 2m ”,直到所有内容设置正确,以便您有足够的时间读取任何服务器消息。之后,你可以降低到一个合理的价值。我已经把它设定为“ 20s ”。
检查项: 设置用户密码最小长度
加固建议: 在/etc/security/pwquality.conf
取消minlen注释符号#,同时设置最小密码长度建议10位以上
检查项: 设置用户密码数字位数
加固建议: 在/etc/security/pwquality.conf
取消dcredit注释符号#,同时设置为负数建议-1最少包含1位数字
检查项: 设置用户密码大写字母位数
加固建议: 在/etc/security/pwquality.conf
取消ucredit注释符号#,同时设置为负数建议-1最少包含1位大写字母
检查项: 设置用户密码小写字母位数
加固建议: 在/etc/security/pwquality.conf
取消lcredit注释符号#,同时设置为负数建议-1最少包含1位小写字母
检查项: 设置用户密码特殊字符位数
加固建议: 在/etc/security/pwquality.conf
取消ocredit注释符号#,同时设置为负数建议-1最少包含1位特殊字符
检查项: 强制密码失效时间
加固建议: 在/etc/login.defs
修改 [code]PASS_MAX_DAYS[/code] 的默认值
设置强制密码失效时间,建议值365
检查项: 密码修改最小间隔时间
加固建议: 在/etc/login.defs
修改 [code]PASS_MIN_DAYS[/code] 的默认值
设置密码修改最小间隔时间,建议值7
检查项: 设置有密码账户不活动最大时间
加固建议: 使用如下命令设置有密码账户不活动最大时间值:useradd -D -f 90,建议值90
检查项: 检查/boot/grub2/grub.cfg文件ACL属性
加固建议: 执行:chmod 0600 /boot/grub2/grub.cfg
检查项: 检查/etc/crontab文件ACL属性
加固建议: 执行:chmod 0600 /etc/crontab
检查项: 检查/etc/cron.hourly文件ACL属性
加固建议: 执行:chmod 0600 /etc/cron.hourly
检查项: 检查/etc/cron.daily文件ACL属性
加固建议: 执行:chmod 0600 /etc/cron.daily
检查项: 检查/etc/cron.weekly 文件ACL属性
加固建议: 执行:chmod 0600 /etc/cron.weekly
检查项: 检查/etc/cron.monthly 文件ACL属性
加固建议: 执行:chmod 0600 /etc/cron.monthly
检查项: 检查/etc/cron.d 文件ACL属性
加固建议: 执行:chmod 0600 /etc/cron.d
百度了文件ACL属性,对这个不是很了解。也只能按照提示的命令执行了。
湖南省长沙市 3F
贵站文章写得很好!
B1
@ 钟水洲博客 感谢支持!
河北省石家庄市 2F
centos真的有好多地方都需要加固检测。
B1
@ 夏日博客 嗯嗯,像我这种小站也只是照轱辘画瓢
江苏省常州市 1F
多谢整理 :bq: :bq: :bq: