|
| 1 | +#### :hammer_and_wrench: Ubuntu 系统安全加固工具 |
| 2 | + |
| 3 | +描述: 本工具集主要针对于 Ubuntu 22.04 、20.04 LTS 操作系统进行安全加固以及系统初始化操作。 |
| 4 | + |
| 5 | +:atom_symbol:**脚本说明:** |
| 6 | + |
| 7 | +```bash |
| 8 | +# Ubuntu 22.04 LTS |
| 9 | +# 温馨提示: 请以root用户权限下执行该脚本 |
| 10 | +./Ubuntu22.04-InitializeReinforce.sh |
| 11 | + __ __ _ _ _____ _ |
| 12 | + \ \ / / (_) (_)/ ____| | | |
| 13 | + \ \ /\ / /__ _ _ _ _| | __ ___ ___| | __ |
| 14 | + \ \/ \/ / _ \ | | | | | | |_ |/ _ \/ _ \ |/ / |
| 15 | + \ /\ / __/ | |_| | | |__| | __/ __/ < |
| 16 | + \/ \/ \___|_|\__, |_|\_____|\___|\___|_|\_\ |
| 17 | + __/ | |
| 18 | + |___/ |
| 19 | +====================================================================== |
| 20 | +@ Desc: Ubuntu 22.04 Security Reinforce and System initialization |
| 21 | +@ Mail bug reports: master@weiyigeek.top or pull request (pr) |
| 22 | +@ Author : WeiyiGeek |
| 23 | +@ Follow me on Blog : https://blog.weiyigeek.top/ |
| 24 | +@ Follow me on Wechat : https://weiyigeek.top/wechat.html?key=欢迎关注 |
| 25 | +@ Communication group : https://weiyigeek.top/visit.html |
| 26 | +====================================================================== |
| 27 | + |
| 28 | +Usage: ./Ubuntu22.04-InitializeReinforce.sh [--start ] [--network] [--function] [--clear] [--version] [--help] |
| 29 | +Option: |
| 30 | + --start Start System initialization and security reinforcement. |
| 31 | + --network Configure the system network and DNS resolution server. |
| 32 | + --function PCall the specified shell function. |
| 33 | + --clear Clear all system logs, cache and backup files. |
| 34 | + --version Print version and exit. |
| 35 | + --help Print help and exit. |
| 36 | + |
| 37 | +Mail bug reports or suggestions to <master@weiyigeek.top> or pull request (pr). |
| 38 | +current version : 1.0 |
| 39 | +``` |
| 40 | + |
| 41 | +<br/> |
| 42 | + |
| 43 | +:atom_symbol:**脚本目录:** |
| 44 | +描述: 为了方便后期维护以及大家pr,此处进行分类并做成了函数调用方式进行,每个函数都是可独立运行的。 |
| 45 | +```bash |
| 46 | +:~$ tree Ubuntu/ |
| 47 | +Ubuntu/ |
| 48 | +├── Ubuntu22.04-InitializeReinforce.sh |
| 49 | +├── config |
| 50 | +│ └── Ubuntu22.04.conf |
| 51 | +├── example |
| 52 | +│ └── 22.04 |
| 53 | +└── scripts |
| 54 | + ├── os-base.sh |
| 55 | + ├── os-clean.sh |
| 56 | + ├── os-exceptions.sh |
| 57 | + ├── os-info.sh |
| 58 | + ├── os-manual.sh |
| 59 | + ├── os-network.sh |
| 60 | + ├── os-optimize.sh |
| 61 | + ├── os-security.sh |
| 62 | + ├── os-service.sh |
| 63 | + └── os-software.sh |
| 64 | + |
| 65 | +4 directories, 12 files |
| 66 | +``` |
| 67 | + |
| 68 | + |
| 69 | +:atom_symbol:**脚本函数:** |
| 70 | + |
| 71 | +描述: 如下脚本将根据参数在 `Ubuntu22.04-InitializeReinforce.sh` 分别进行调用执行, 也可采用`--function `参数进行指定调用。 |
| 72 | + |
| 73 | +```bash |
| 74 | +❯ grep -r -n "函数名称" -A 1 * |
| 75 | +scripts/os-base.sh:26:# 函数名称: base_hostname |
| 76 | +scripts/os-base.sh-27-# 函数用途: 主机名称设置 |
| 77 | +-- |
| 78 | +scripts/os-base.sh:55:# 函数名称: ubuntu_mirror |
| 79 | +scripts/os-base.sh-56-# 函数用途: ubuntu 系统主机软件仓库镜像源 |
| 80 | +-- |
| 81 | +scripts/os-base.sh:126:# 函数名称: ubuntu_software |
| 82 | +scripts/os-base.sh-127-# 函数用途: ubuntu 系统主机内核版本升级以常规软件安装 |
| 83 | +-- |
| 84 | +scripts/os-base.sh:153:# 函数名称: base_timezone |
| 85 | +scripts/os-base.sh-154-# 函数用途: 主机时间同步校准与时区设置 |
| 86 | +-- |
| 87 | +scripts/os-base.sh:192:# 函数名称: base_banner |
| 88 | +scripts/os-base.sh-193-# 函数用途: 远程本地登陆主机信息展示 |
| 89 | +-- |
| 90 | +scripts/os-base.sh:345:# 函数名称: base_reboot |
| 91 | +scripts/os-base.sh-346-# 函数用途: 是否进行重启或者关闭服务器 |
| 92 | +-- |
| 93 | +scripts/os-clean.sh:27:# 函数名称: system_clean |
| 94 | +scripts/os-clean.sh-28-# 函数用途: 删除安全加固过程临时文件清理为基线镜像做准备 |
| 95 | +-- |
| 96 | +scripts/os-exceptions.sh:26:# 函数名称: problem_usercrond |
| 97 | +scripts/os-exceptions.sh-27-# 函数用途: 解决普通用户定时任务无法定时执行问题 |
| 98 | +-- |
| 99 | +scripts/os-exceptions.sh:45:# 函数名称: problem_multipath |
| 100 | +scripts/os-exceptions.sh-46-# 函数用途: 解决 ubuntu multipath add missing path 错误 |
| 101 | +-- |
| 102 | +scripts/os-network.sh:27:# 函数名称: net_config |
| 103 | +scripts/os-network.sh-28-# 函数用途: 主机IP地址与网关设置 |
| 104 | +-- |
| 105 | +scripts/os-network.sh:70:# 函数名称: net_dns |
| 106 | +scripts/os-network.sh-71-# 函数用途: 设置主机DNS解析服务器 |
| 107 | +-- |
| 108 | +scripts/os-optimize.sh:27:# 函数名称: optimize_kernel |
| 109 | +scripts/os-optimize.sh-28-# 函数用途: 系统内核参数的优化配置 |
| 110 | +-- |
| 111 | +scripts/os-optimize.sh:84:# 函数名称: resources_limits |
| 112 | +scripts/os-optimize.sh-85-# 函数用途: 系统资源文件打开句柄数优化配置 |
| 113 | +-- |
| 114 | +scripts/os-optimize.sh:115:# 函数名称: swap_partition |
| 115 | +scripts/os-optimize.sh-116-# 函数用途: 创建系统swap分区 |
| 116 | +-- |
| 117 | +scripts/os-security.sh:27:# 函数名称: sec_usercheck |
| 118 | +scripts/os-security.sh-28-# 函数用途: 用于锁定或者删除多余的系统账户 |
| 119 | +-- |
| 120 | +scripts/os-security.sh:65:# 函数名称: sec_userconfig |
| 121 | +scripts/os-security.sh-66-# 函数用途: 针对拥有ssh远程登陆权限的用户进行密码口令设置。 |
| 122 | +-- |
| 123 | +scripts/os-security.sh:131:# 函数名称: sec_passpolicy |
| 124 | +scripts/os-security.sh-132-# 函数用途: 用户密码复杂性策略设置 (密码过期周期0~90、到期前15天提示、密码长度至少12、复杂度设置至少有一个大小写、数字、特殊字符、密码三次不能一样、尝试次数为三次) |
| 125 | +-- |
| 126 | +scripts/os-security.sh:166:# 函数名称: sec_sshdpolicy |
| 127 | +scripts/os-security.sh-167-# 函数用途: 系统sshd服务安全策略设置 |
| 128 | +-- |
| 129 | +scripts/os-security.sh:194:# 函数名称: sec_loginpolicy |
| 130 | +scripts/os-security.sh-195-# 函数用途: 用户登陆安全策略设置 |
| 131 | +-- |
| 132 | +scripts/os-security.sh:230:# 函数名称: sec_historypolicy |
| 133 | +scripts/os-security.sh-231-# 函数用途: 用户终端执行的历史命令记录安全策略设置 |
| 134 | +-- |
| 135 | +scripts/os-security.sh:261:# 函数名称: sec_grubpolicy |
| 136 | +scripts/os-security.sh-262-# 函数用途: 系统 GRUB 安全设置防止物理接触从grub菜单中修改密码 |
| 137 | +-- |
| 138 | +scripts/os-security.sh:304:# 函数名称: sec_firewallpolicy |
| 139 | +scripts/os-security.sh-305-# 函数用途: 系统防火墙策略设置, 建议操作完成后重启计算机. |
| 140 | +-- |
| 141 | +scripts/os-security.sh:335:# 函数名称: sec_ctrlaltdel |
| 142 | +scripts/os-security.sh-336-# 函数用途: 禁用 ctrl+alt+del 组合键对系统重启 (必须要配置我曾入过坑) |
| 143 | +-- |
| 144 | +scripts/os-security.sh:355:# 函数名称: sec_recyclebin |
| 145 | +scripts/os-security.sh-356-# 函数用途: 设置文件删除回收站别名(防止误删文件)(必须要配置,我曾入过坑) |
| 146 | +-- |
| 147 | +scripts/os-security.sh:405:# 函数名称: sec_supolicy |
| 148 | +scripts/os-security.sh-406-# 函数用途: 切换用户日志记录和切换命令更改名称为SU(可选) |
| 149 | +-- |
| 150 | +scripts/os-security.sh:425:# 函数名称: sec_privilegepolicy |
| 151 | +scripts/os-security.sh-426-# 函数用途: 系统用户sudo权限与文件目录创建权限策略设置 |
| 152 | +-- |
| 153 | +scripts/os-service.sh:26:# 函数名称: svc_apport |
| 154 | +scripts/os-service.sh-27-# 函数用途: 禁用烦人的apport错误报告 |
| 155 | +-- |
| 156 | +scripts/os-service.sh:52:# 函数名称: svc_snapd |
| 157 | +scripts/os-service.sh-53-# 函数用途: 不使用snapd容器的环境下禁用或者卸载多余的snap软件及其服务 |
| 158 | +-- |
| 159 | +scripts/os-service.sh:75:# 函数名称: svc_cloud-init |
| 160 | +scripts/os-service.sh-76-# 函数用途: 非云的环境下禁用或者卸载多余的cloud-init软件及其服务 |
| 161 | +-- |
| 162 | +scripts/os-service.sh:101:# 函数名称: svc_debugshell |
| 163 | +scripts/os-service.sh-102-# 函数用途: 在系统启动时禁用debug-shell服务 |
| 164 | +-- |
| 165 | +scripts/os-software.sh:26:# 函数名称: install_chrony |
| 166 | +scripts/os-software.sh-27-# 函数用途: 安装配置 chrony 时间同步服务器 |
| 167 | +-- |
| 168 | +scripts/os-software.sh:79:# 函数名称: install_java |
| 169 | +scripts/os-software.sh-80-# 函数用途: 安装配置java环境 |
| 170 | +-- |
| 171 | +scripts/os-software.sh:110:## 函数名称: install_docker |
| 172 | +scripts/os-software.sh-111-## 函数用途: 在 Ubuntu 主机上安装最新版本的Docker |
| 173 | +-- |
| 174 | +scripts/os-software.sh:201:## 函数名称: install_cockercompose |
| 175 | +scripts/os-software.sh-202-## 函数用途: 在 Ubuntu 主机上安装最新版本的Dockercompose |
| 176 | +``` |
| 177 | +
|
| 178 | +
|
| 179 | +
|
| 180 | +:atom_symbol:**脚本使用:** |
| 181 | +
|
| 182 | +描述: 通常针对于才安装的服务器系统,针对ubuntu初始化可以在 `Ubuntu22.04.conf` 中进行相应配置,然后在执行该脚本。 |
| 183 | +
|
| 184 | +```bash |
| 185 | +# 执行权限赋予 |
| 186 | +chmod +x -R * |
| 187 | + |
| 188 | +# 开始初始化加固 |
| 189 | +Ubuntu22.04-InitializeReinforce.sh --start |
| 190 | +``` |
| 191 | +
|
| 192 | + |
| 193 | +
|
| 194 | +
|
| 195 | +
|
| 196 | +加固结果查看: |
| 197 | +```bash |
| 198 | +ssh -p 20221 ubuntu@10.10.99.236 |
| 199 | +su - root |
| 200 | +``` |
| 201 | +
|
| 202 | + |
| 203 | +
|
| 204 | +温馨提示:脚本中默认root密码为`R2022.weiyigeek.top`。 |
| 205 | +温馨提示: 防火墙策略只开放了80,443,22,20221等端口。 |
0 commit comments