一.简介

源码地址

日期:2017/9/1

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

效果图:

二.使用

适用:centos6/7

语言:中文

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

下载

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

执行

bash ali_baseline.sh

三.基线检查条目

Centos7

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

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
ClientAliveCountMax 2 #设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。
#在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6
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
cat /etc/passwd | awk -F: '($3 == 0) { print $1 }'|grep -v '^root$' #它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,从而降低进程被成功入侵的风险
sysctl -w kernel.randomize_va_space=2 #设置用户权限配置文件的权限
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 #访问控制配置文件的权限设置
chown root:root /etc/hosts.allow
chown root:root /etc/hosts.deny
chmod 644 /etc/hosts.deny
chmod 644 /etc/hosts.allow #确保rsyslog服务已启用,记录日志用于审计
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 #检查系统空密码账户
#为用户设置一个非空密码

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. SpringCloud升级之路2020.0.x版-38. 实现自定义 WebClient 的 NamedContextFactory

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 实现 WeClient 的 NamedContextFactory 我们要实现的是不同微服 ...

  2. [cf1479D]Odd Mineral Resource

    先考虑判定是否有解,注意到无解即每一个数都出现偶数次,根据异或的性质,只需要随机$V_{i}$,假设$u$到$v$路径上所有节点构成集合$S$,若$\bigoplus_{x\in S,l\le a_{ ...

  3. 解决 IDEA 2021.2.3 新建maven项目只有两个archetype项目模板的问题

    最近把我的 IDEA 版本更新到 2021.2.3 了,发生了一个比较有意思的问题,做个小小的记录 思路分析 在新的 IDEA 中配置完Maven之后,想要创建Maven项目的时候没有自动加载arch ...

  4. python-django-分页处理

    每个模型都有一个管理器,Manager 通过分页可以先加载一部分的数据内容,然后避免大量的查询带来的等待时间 应用场景是,排行榜,前十条或者 for i in range(100): ...: ... ...

  5. 毕业设计之ansible_quan_bbs设置

    ansible创建连接: 客户端(管理节点) 可能需要安装包: yum install -y libselinux-python 实现ssh免密码登陆管理的服务器 [apps@anza ~]$ sud ...

  6. linux sort 命令详解(转载)

    转载:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html#3374576 sort是在Linux里非常常用的一个命令,管排序的 ...

  7. C++/Python冒泡排序与选择排序算法详解

    冒泡排序 冒泡排序算法又称交换排序算法,是从观察水中气泡变化构思而成,原理是从第一个元素开始比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较,就仿佛气泡逐渐从水底逐渐冒升到水面一样. ...

  8. Docker Swarm的命令

    初始化swarm manager并制定网卡地址docker swarm init --advertise-addr 192.168.10.117 强制删除集群docker swarm leave -- ...

  9. linux vi和vim编辑器

    所有的Linux系统都会内建vi文本编辑器,vim具有程序编辑的能力,可以看作是vi的增强版本 三种常见模式 正常模式 以vim打开一个文档直接进入的模式,快捷键可以使用. 1.这个模式可以使用上下左 ...

  10. admire, admit

    admire 当别人admire你时,小心掉进泥潭(mire).词源:to wonder. wonderful夸人,awful骂人,awesome夸人.admiral与admire词源不同,碰巧长得像 ...