一.简介

源码地址

日期:2017/9/1

介绍:安全加固脚本,会符合阿里云基线检查。有幂等性,可重复执行

效果图:

二.使用

适用:centos6/7

语言:中文

注意:脚本是符合阿里云基线检查的配置,请查看条目后再执行,也可以修改脚本选择需要的项目执行

下载

wget https://raw.githubusercontent.com/goodboy23/shell/master/jobs/ali_baseline.sh

执行

bash ali_baseline.sh

三.基线检查条目

Centos7

  1. #开启地址空间布局随机化
  2. #它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,从而降低进程被成功入侵的风险
  3. sysctl -w kernel.randomize_va_space=2
  4. #禁止SSH空密码用户登录
  5. #编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no
  6. PermitEmptyPasswords no
  7. #检查密码重用是否受限制
  8. #在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,在末尾添加
  9. remember=5
  10. #设置密码失效时间
  11. #使用非密码登陆方式如密钥对,请忽略此项。在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如 PASS_MAX_DAYS 90。需同时执行命令设置root密码失效时间
  12. chage --maxdays 90 root
  13. #设置密码修改最小间隔时间
  14. #在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7: PASS_MIN_DAYS 7 需同时执行命令为root用户设置
  15. chage --mindays 7 root
  16. #确保密码到期警告天数为7或更多
  17. #在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7: PASS_WARN_AGE 7 同时执行命令使root用户设置生效
  18. chage --warndays 7 root
  19. #确保SSH MaxAuthTries设置为3到6之间
  20. #在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6
  21. MaxAuthTries 4
  22. #SSHD强制使用V2安全协议
  23. #编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数
  24. Protocol 2
  25. #设置SSH空闲超时退出时间
  26. #编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3
  27. ClientAliveCountMax 2
  28. #确保rsyslog服务已启用
  29. systemctl enable rsyslog
  30. systemctl start rsyslog
  31. #确保SSH LogLevel设置为INFO,记录登录和注销活动
  32. #编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释)
  33. LogLevel INFO
  34. #访问控制配置文件的权限设置
  35. chown root:root /etc/hosts.allow
  36. chown root:root /etc/hosts.deny
  37. chmod 644 /etc/hosts.deny
  38. chmod 644 /etc/hosts.allow
  39. #设置用户权限配置文件的权限
  40. chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
  41. chmod 0644 /etc/group
  42. chmod 0644 /etc/passwd
  43. chmod 0400 /etc/shadow
  44. chmod 0400 /etc/gshadow
  45. #除root以外其他UID为0的用户都应该删除,或者为其分配新的UID
  46. cat /etc/passwd | awk -F: '($3 == 0) { print $1 }'|grep -v '^root$'
  47. #密码复杂度检查
  48. #编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为9-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。
  49. minlen=10 minclass=3
  50. #检查系统空密码账户
  51. #为用户设置一个非空密码

Centos6

  1. #强制用户不重用最近使用的密码,降低密码猜测攻击风险
  2. #在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,在末尾加
  3. remember=5
  4. #设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险
  5. #编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3
  6. ClientAliveCountMax 2
  7. #设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。
  8. #在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6
  9. MaxAuthTries 4
  10. #设置密码修改最小间隔时间,限制密码更改过于频繁
  11. #在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7: PASS_MIN_DAYS 7 需同时执行命令为root用户设置
  12. chage --mindays 7 root
  13. #设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登陆方式(如密钥对)请忽略此项。
  14. #使用非密码登陆方式如密钥对,请忽略此项。在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如 PASS_MAX_DAYS 90。需同时执行命令设置root密码失效时间
  15. chage --maxdays 90 root
  16. #检查密码长度和密码是否使用多种字符类型
  17. #编辑/etc/pam.d/password-auth 和 /etc/pam.d/system-auth配置文件中包含password requisite pam_cracklib.so 这一行。增加配置minlen(密码最小长度)设置为9-32位,minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4
  18. password requisite pam_cracklib.so try_first_pass retry=3 minlen=11 minclass=3
  19. #确保SSH LogLevel设置为INFO,记录登录和注销活动
  20. #编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释)
  21. LogLevel INFO
  22. #除root以外其他UID为0的用户都应该删除,或者为其分配新的UID
  23. cat /etc/passwd | awk -F: '($3 == 0) { print $1 }'|grep -v '^root$'
  24. #它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,从而降低进程被成功入侵的风险
  25. sysctl -w kernel.randomize_va_space=2
  26. #设置用户权限配置文件的权限
  27. chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
  28. chmod 0644 /etc/group
  29. chmod 0644 /etc/passwd
  30. chmod 0400 /etc/shadow
  31. chmod 0400 /etc/gshadow
  32. #访问控制配置文件的权限设置
  33. chown root:root /etc/hosts.allow
  34. chown root:root /etc/hosts.deny
  35. chmod 644 /etc/hosts.deny
  36. chmod 644 /etc/hosts.allow
  37. #确保rsyslog服务已启用,记录日志用于审计
  38. service rsyslog start
  39. #SSHD强制使用V2安全协议
  40. #编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数
  41. Protocol 2
  42. #确保密码到期警告天数为7或更多
  43. #在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7: PASS_WARN_AGE 7 同时执行命令使root用户设置生效
  44. chage --warndays 7 root
  45. #禁止SSH空密码用户登录
  46. #编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no
  47. PermitEmptyPasswords no
  48. #检查系统空密码账户
  49. #为用户设置一个非空密码

shell脚本 阿里云基线检查一键配置的更多相关文章

  1. 阿里云Linux服务器,配置JDK,MySQL

    云服务器配置:低配 Linux CentOS 7.4 64位 选择空白镜像: 安装图形界面 yum groups install "MATE Desktop" yum groups ...

  2. nginx进行获取阿里云slb真实ip配置操作

    环境: 1.使用阿里云的slb进行配置nginx,nginx无法获取用户的真实ip解决方案 参考阿里云: https://help.aliyun.com/knowledge_detail/40535. ...

  3. 阿里云服务器Linux系统安装配置ElasticSearch搜索引擎

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...

  4. 阿里云ECS服务器CentOS7配置vsftps及其问题解决

    前言 之前只在虚拟机中配过FTP服务器,今天买了云服务器,发现安装vsftpd后就是连不上,通过搜索了很多资料,最后找到了解决办法,系统是CentOS7,服务器类型是ECS 阿里云安全组配置 首先进入 ...

  5. 阿里云https免费证书配置-包教会

      阿里云https免费证书配置-包教会-有需要请联系小编! 小编个人站点:https://www.itdog.site/ 小编微信号:wvqusrtg  

  6. 阿里云centos 安装和配置 DokuWiki

    安装 1) 添加虚拟主机:由于我的 阿里云CentOs服务器 安装了oneinstack的一键部署PHP.JAVA.Nginx等环境,所以域名配置很方便,照着文档一步一步做就可以了 cd /root/ ...

  7. Hadoop(一)阿里云hadoop集群配置

    集群配置 三台ECS云服务器 配置步骤 1.准备工作 1.1 创建/bigdata目录 mkdir /bigdatacd /bigdatamkdir /app 1.2修改主机名为node01.node ...

  8. 阿里云CentOS7系列三 -- 配置防火墙

    前面讲到了安装JDK以及Tomcat.但是大家会发现,当我们访问 http:// XXX.XXX.XXX.XXX:8080/80 时候,tomcat 猫并没有出现.原因就是没有设置防火墙. 再次介绍下 ...

  9. 阿里云linux centos 一键部署web环境--图文详解

    一.购买阿里云服务器ECS 1,登录阿里云,选择阿里云服务器ECS 2,创建实例 或 3,选好配置 4,完成配置 注:记住用户名和密码 二.一键配置linux环境 1,下载xshell,安装成功后,建 ...

随机推荐

  1. Spring Cloud Gateway实战之四:内置predicate小结

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. [bzoj5417]你的名字

    先考虑l=1,r=|s|的部分分,需要求出t每一个前缀的不是s子串的最长后缀,记作pp[k],有以下限制:1.pp[pos[k]]<len(pos[k]表示k的某一个结束位置),因为不能被匹配 ...

  3. [luogu4747]Intrinsic Interval

    有一个结论,答案一定是所有包含其合法区间中$l$最大且$r$最小的 证明比较容易,考虑两个合法区间有交,那么交必然合法,同时交也必然包含该区间,因此这个区间一定是合法的(取$l$最大的和$r$最小的两 ...

  4. 使用idea创建Kotlin项目

    1.打开idea 2.选择项目方式: 3.nest 4.创建文件名 4.finish 看这目录结构和java没什么区别 5.在src目录下新建一个Kotlin文件 fun main(args:} fu ...

  5. appScan安全软件的使用

    1.点击文件,新建 2.常规扫描 3.点击下一步 4.输入需要扫描的网站 5.下一步,如果有账号 密码可以使用记录. 6.选择缺省值,下一步 7.启动全面扫描.

  6. pechkin 导出https路径的图片

    使用Pechkin.Synchronized可以方便导出html为pdf,但是对于https路径的图片并不支持,仅支持http路径下的图片 解决方案:图片使用本地绝对路径(相对于服务器) 以下是我获取 ...

  7. git连接远程仓库

    1. 连接远程仓库 1.1. 创建仓库 在连接远程仓库之前,得先要确定你有一个远程仓库,到GitHub官网搞一个账户. 点右上角的加号然后"New repository"输入一个仓 ...

  8. 【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中

    问题描述 根据文档 https://docs.azure.cn/zh-cn/api-management/api-management-howto-log-event-hubs, 可以将Azure A ...

  9. CF1264D2 Beautiful Bracket Sequence (hard version)

    考虑\(D1\)的\(O(n^2)\),我们直接进行组合处理. 考虑在\(p\)这个位置,左边有\(l\)个(,右边有\(r\)个),左边有\(l\)个问号,右边有\(r\)个问号. 这个位置的贡献为 ...

  10. Windows下的Python多版本管理?

    虽然接触了好几年python,但一些细节没有注意.最近看网课,看到这个Windows系统下Python多版本管理的问题,记录下备忘. 假设现在windows环境中有python2,python3和an ...