一.简介

源码地址

日期: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. java miniui(datagrid) 取值赋值

    ... (本想放项目代码上来的 可是这放上去就看不了不知为何,下面是项目中的代码) // 获取时间设置到时间上,加载没有那个快,所以需要先加载完数据然后才能获取 function obtain(e) ...

  2. MySQL5.5.33对应的JDBC驱动包怎样使用?

    双击msi文件就会自动安装,然后找到安装路径下的jar,并把它加到类路径下,如手动编译和执行时javac -classpath c:\program files\...\mysql.jar;... m ...

  3. [loj574]黄金矿工

    记$dep_{x}$为1到$x$的边权和,当$x$上的矿工挖了$y$上的黄金时($y$在$x$子树内),显然$\sum_{e}c_{e}=dep_{y}-dep_{x}$ 由此,对于$u$上权值为$v ...

  4. [loj3339]美食家

    令$f[i][j]$表示第$i$个时刻走到点$j$的最小时间,暴力的$dp$复杂度为$o(tm)$ 如果没有限制,由于$w\le 5$,记录前5个时刻的状态即可求出当前状态,用矩阵乘法可优化到$o(n ...

  5. 3、使用ListOperations操作redis(List列表)

    文章来源:https://www.cnblogs.com/shiguotao-com/p/10560354.html 方法 c参数 s说明   List<V> range(K key, l ...

  6. CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全

    本文作者:王振威 - CODING 研发总监 CODING 创始团队成员之一,多年系统软件开发经验,擅长 Linux,Golang,Java,Ruby,Docker 等技术领域.近两年来一直在 COD ...

  7. iNeuOS工业互联网操作系统,分布式云端控制安全策略和增加实时日志功能

    目       录 1.      概述... 2 2.      平台演示... 2 3.      云端控制策略和应用过程... 2 3.1           云端控制策略... 2 3.2   ...

  8. 洛谷 P3781 - [SDOI2017]切树游戏(动态 DP+FWT)

    洛谷题面传送门 SDOI 2017 R2 D1 T3,nb tea %%% 讲个笑话,最近我在学动态 dp,wjz 在学 FWT,而我们刚好在同一天做到了这道题,而这道题刚好又是 FWT+动态 dp ...

  9. Python基础之流程控制while循环

    目录 1. 语法 2. while+break 3. while+continue 4. while+else 1. 语法 最简单的while循环如下: ''' while <条件>: & ...

  10. Hive-删除表(drop、truncate的区别)

    Hive删除操作主要分为几大类:删除数据(保留表).删除库表.删除分区.我将以下图为例清空iot_devicelocation中的数据,之后再删除表.库等. 解释: use xpu123;   #使用 ...