CentOS Linux 服务器系统安全设置
查看linux版本
命令 | 描述 |
---|---|
uname -a | 可显示电脑以及操作系统的相关信息 |
cat /proc/version | 说明正在运行的内核版本 |
cat /etc/issue | 显示的是发行版本信息 |
lsb_release -a | 适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb |
风险分类:合规基线检测-Centos7系统基线合规检测
检测项说明:
按照CIS-Linux Centos7最新基线标准进行系统层面基线检测
加固建议:
参见“风险监测项目列表”
风险分类:账号-系统账户安全
检测项说明:
密码策略合规检测会检测如下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
风险分类:系统-基线策略
检测项说明:
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)
风险监测项目列表
检查项 | 加固建议 |
---|---|
禁止转发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 |
禁止root直接登录 | 注意:在修改此项之前,请务必创建一个可登陆账号;在/etc/ssh/sshd_config中PermitRootLogin的值:yes设置为no |
默认登录端口检测 | 在/etc/ssh/sshd_config中取消Port 22注释符号#,并修改22为其它值 |
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前注释符,同时设置输入密码时间间隔秒数 |
设置用户密码最小长度 | 在/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 设置强制密码失效时间,建议值365 |
检查/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 |
密码最长使用时间 | 建议: 在/etc/login.defs 设置密码最长使用时间,建议值1095 |
密码修改最小间隔时间 | 建议: 在/etc/login.defs 设置密码修改最小间隔时间,建议值7 |
设置有密码账户不活动最大时间 | 建议: 使用如下命令设置有密码账户不活动最大时间值:useradd -D -f 1095,建议值1095天 |
port 当前值: 该项不存在 | 建议值: 设置为非22 建议 : 修改登录端口为非默认22端口 |
permitrootlogin 当前值: yes | 建议值: 设置为no 建议 : 没有必要使用root用户通过SSH远程登录,普通用户可以通过su或sudo(推荐)获得root级别的访问权 |