JShielder
JShielder - Linux 服务器自动化加固脚本
JSHielder 是一款开源 Bash 脚本,旨在帮助系统管理员和开发人员加固部署 Web 应用或服务的 Linux 服务器。该工具可自动安装托管 Web 应用所需的全部软件包,并在用户少量交互下完成 Linux 服务器加固。新添加的脚本遵循 CIS 基准指南,为 Linux 系统建立安全配置态势。
该工具是一个 Bash 脚本,可自动加固 Linux 服务器安全性,遵循的步骤包括:
- 配置主机名
- 重新配置时区
- 更新整个系统
- 创建一个新的管理员用户,以便在无需使用 root 进行远程连接的情况下安全地管理服务器。
- 帮助用户生成安全的 RSA 密钥,使远程访问服务器仅能从本地 PC 进行,无需传统密码。
- 配置、优化并加固 SSH 服务器(部分设置遵循 CIS 基准)
- 配置 IPTABLES 规则,保护服务器免受常见攻击
- 禁用未使用的文件系统和网络协议
- 通过安装和配置 fail2ban 保护服务器免受暴力破解攻击
- 安装并配置 Artillery 作为蜜罐、监控、阻断和警报工具
- 安装 PortSentry
- 安装、配置并优化 MySQL
- 安装 Apache Web 服务器
- 安装、配置并加固 PHP
- 通过配置文件以及安装 ModSecurity 模块(含 OWASP ModSecurity 核心规则集 CRS3)、ModEvasive、Qos 和 SpamHaus 来加固 Apache
- 通过安装 ModSecurity NginX 模块及 OWASP ModSecurity 核心规则集 CRS3 来加固 NginX
- 安装 RootKit Hunter
- 加固 Root 主目录和 GRUB 配置文件
- 安装 Unhide 以帮助检测恶意隐藏进程
- 安装 Tiger(安全审计和入侵防御系统)
- 限制对 Apache 配置文件的访问
- 禁用编译器
- 创建每日系统更新计划任务
- 通过 sysctl 配置文件进行内核加固(已调整)
- /tmp 目录加固
- PSAD IDS 安装
- 启用进程审计
- 启用无人值守升级
- 针对未授权访问的 MOTD 和横幅
- 可选:禁用 USB 支持以提高安全性
- 配置严格的默认 UMASK
- 配置并启用 Auditd
- 按照 CIS 基准配置 Auditd 规则
- 安装 Sysstat
- 安装 ArpWatch
- 按照 CIS 基准进行额外加固步骤
- 加固 Cron
- 自动化设置 GRUB 引导加载程序密码的过程
- 加固启动设置
- 为关键系统文件设置安全文件权限
新增!!
- 使用 ModSecurity 及 OWASP ModSecurity 核心规则集 CRS3 的 LEMP 部署
已添加基于 CIS 基准的 JShielder 脚本
运行工具
./jshielder.sh
以 root 用户身份运行
问题
遇到问题?请在 GitHub 上为 JShielder 开启一个新 Issue。
支持发行版
- Ubuntu Server 16.04LTS
- Ubuntu Server 18.04LTS
更新日志
v2.4 添加了使用 ModSecurity 及 OWASP ModSecurity 核心规则集 CRS3 的 LEMP 部署
v2.3 针对 LAMP 部署增加了更多遵循部分 CIS 基准项目的加固步骤
v2.2.1 移除了 Ubuntu 16.04 上的 suhosing 安装,修复了 MySQL 配置、GRUB 引导加载程序设置函数,服务器 IP 现在通过 ip route 获取,不依赖接口命名
v2.2 新增了遵循 CIS 基准指南的加固选项
v2.1 加固了 SSH 配置,调整了内核安全配置,修复了 iptables 规则在启动时不加载的问题。添加了 auditd、sysstat、arpwatch 的安装。
v2.0 更多部署选项、选择菜单、PHP Suhosin 安装、更清晰的代码
v1.0 - 新代码
由 Jason Soto 开发
https://www.jasonsoto.com
https://github.com/jsitech
Twitter = @JsiTech