Ubuntu 系统安全加固指南
1. 项目目录结构及介绍
本项目旨在为Ubuntu系统提供一套安全加固的脚本和配置文件。以下是项目的目录结构:
.
├── .github
├── action-shellcheck
├── config
├── logo
├── misc
├── packer
├── scripts
├── tests
├── .gitattributes
├── .gitignore
├── .pre-commit-config.yaml
├── LICENSE
├── README.adoc
├── SECURITY.md
├── Vagrantfile
├── checkScore.sh
├── createPartitions.sh
├── renovate.json
├── runTests.sh
├── systemd.adoc
├── ubuntu.cfg
├── ubuntu.sh
.github: 存放GitHub Actions相关配置文件。action-shellcheck: 用于检查Shell脚本语法错误的GitHub Action配置。config: 配置文件目录。logo: 项目徽标文件。misc: 杂项文件,包括一些辅助脚本和配置。packer: 包含用于创建虚拟机的Packer模板。scripts: 包含项目的所有主要脚本文件。tests: 包含测试脚本和配置。.gitattributes: Git属性配置文件。.gitignore: Git忽略文件配置。.pre-commit-config.yaml: pre-commit钩子配置文件,用于在提交前执行一些检查。LICENSE: 项目许可证文件。README.adoc: 项目说明文件。SECURITY.md: 安全相关的信息。Vagrantfile: Vagrant配置文件,用于创建和配置虚拟机环境。checkScore.sh: 检查系统安全得分。createPartitions.sh: 创建系统分区的脚本。renovate.json: Renovate配置文件,用于自动更新依赖。runTests.sh: 运行测试脚本的脚本。systemd.adoc: 系统d相关的文档。ubuntu.cfg: Ubuntu系统的配置文件。ubuntu.sh: 主脚本文件,用于执行安全加固。
2. 项目的启动文件介绍
项目的启动文件是ubuntu.sh。这个脚本包含了调用其他脚本和配置文件的逻辑,用于执行以下操作:
- 设置系统权限和基本配置。
- 配置内核参数以增强安全性。
- 设置防火墙规则。
- 禁用不必要或不安全的网络协议和文件系统。
- 配置systemd相关参数。
- 设置日志和审计相关配置。
用户需要根据项目提供的ubuntu.cfg文件进行配置,然后执行ubuntu.sh脚本来启动安全加固过程。
3. 项目的配置文件介绍
项目的核心配置文件是ubuntu.cfg。这个文件包含了以下配置选项:
FW_ADMIN=
'
127.0.0.1
'
SSH_GRPS=
'
sudo
'
SSH_PORT=
'
22
'
SYSCTL_CONF=
'
./misc/sysctl.conf
'
AUDITD_MODE=
'
1
'
AUDITD_RULES=
'
./misc/audit-base.rules ./misc/audit-aggressive.rules ./misc/audit-docker.rules
'
LOGROTATE_CONF=
'
./misc/logrotate.conf
'
NTPSERVERPOOL=
'
0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org pool.ntp.org
'
TIMEDATECTL=
'
'
VERBOSE=
'
N
'
AUTOFILL=
'
N
'
ADMINEMAIL=
"
root@localhost
"
KEEP_SNAPD=
'
Y
'
CHANGEME=
'
'
FW_ADMIN: 允许通过SSH连接的IP地址列表。SSH_GRPS: 允许通过SSH登录的系统用户组。SSH_PORT: SSH服务监听的端口号。SYSCTL_CONF: 系统控制参数配置文件路径。AUDITD_MODE: 审计守护程序的失败模式。AUDITD_RULES: 审计规则文件路径。LOGROTATE_CONF: 日志轮转配置文件路径。NTPSERVERPOOL: NTP服务器池地址。TIMEDATECTL: 时区设置(留空使用默认)。VERBOSE: 是否输出详细信息。AUTOFILL: 是否自动填充配置。ADMINEMAIL: 管理员邮箱地址。KEEP_SNAPD: 是否保留snapd包。CHANGEME: 用于确认用户已阅读配置文件的标记。
用户需要根据自己的需求修改这些配置选项,以确保脚本在执行时使用正确的设置。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



